com.android.dx.dex.code.Dops Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of builder Show documentation
Show all versions of builder Show documentation
Library to build Android applications.
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.dx.dex.code;
import com.android.dx.dex.DexOptions;
import com.android.dx.dex.code.form.Form10t;
import com.android.dx.dex.code.form.Form10x;
import com.android.dx.dex.code.form.Form11n;
import com.android.dx.dex.code.form.Form11x;
import com.android.dx.dex.code.form.Form12x;
import com.android.dx.dex.code.form.Form20t;
import com.android.dx.dex.code.form.Form21c;
import com.android.dx.dex.code.form.Form21h;
import com.android.dx.dex.code.form.Form21s;
import com.android.dx.dex.code.form.Form21t;
import com.android.dx.dex.code.form.Form22b;
import com.android.dx.dex.code.form.Form22c;
import com.android.dx.dex.code.form.Form22s;
import com.android.dx.dex.code.form.Form22t;
import com.android.dx.dex.code.form.Form22x;
import com.android.dx.dex.code.form.Form23x;
import com.android.dx.dex.code.form.Form30t;
import com.android.dx.dex.code.form.Form31c;
import com.android.dx.dex.code.form.Form31i;
import com.android.dx.dex.code.form.Form31t;
import com.android.dx.dex.code.form.Form32x;
import com.android.dx.dex.code.form.Form35c;
import com.android.dx.dex.code.form.Form3rc;
import com.android.dx.dex.code.form.Form51l;
import com.android.dx.dex.code.form.SpecialFormat;
import com.android.dx.io.Opcodes;
/**
* Standard instances of {@link Dop} and utility methods for getting
* them.
*/
public final class Dops {
/** {@code non-null;} array containing all the standard instances */
private static final Dop[] DOPS;
/**
* pseudo-opcode used for nonstandard formatted "instructions"
* (which are mostly not actually instructions, though they do
* appear in instruction lists). TODO: Retire the usage of this
* constant.
*/
public static final Dop SPECIAL_FORMAT =
new Dop(Opcodes.SPECIAL_FORMAT, Opcodes.SPECIAL_FORMAT,
Opcodes.NO_NEXT, SpecialFormat.THE_ONE, false);
// BEGIN(dops); GENERATED AUTOMATICALLY BY opcode-gen
public static final Dop NOP =
new Dop(Opcodes.NOP, Opcodes.NOP,
Opcodes.NO_NEXT, Form10x.THE_ONE, false);
public static final Dop MOVE =
new Dop(Opcodes.MOVE, Opcodes.MOVE,
Opcodes.MOVE_FROM16, Form12x.THE_ONE, true);
public static final Dop MOVE_FROM16 =
new Dop(Opcodes.MOVE_FROM16, Opcodes.MOVE,
Opcodes.MOVE_16, Form22x.THE_ONE, true);
public static final Dop MOVE_16 =
new Dop(Opcodes.MOVE_16, Opcodes.MOVE,
Opcodes.NO_NEXT, Form32x.THE_ONE, true);
public static final Dop MOVE_WIDE =
new Dop(Opcodes.MOVE_WIDE, Opcodes.MOVE_WIDE,
Opcodes.MOVE_WIDE_FROM16, Form12x.THE_ONE, true);
public static final Dop MOVE_WIDE_FROM16 =
new Dop(Opcodes.MOVE_WIDE_FROM16, Opcodes.MOVE_WIDE,
Opcodes.MOVE_WIDE_16, Form22x.THE_ONE, true);
public static final Dop MOVE_WIDE_16 =
new Dop(Opcodes.MOVE_WIDE_16, Opcodes.MOVE_WIDE,
Opcodes.NO_NEXT, Form32x.THE_ONE, true);
public static final Dop MOVE_OBJECT =
new Dop(Opcodes.MOVE_OBJECT, Opcodes.MOVE_OBJECT,
Opcodes.MOVE_OBJECT_FROM16, Form12x.THE_ONE, true);
public static final Dop MOVE_OBJECT_FROM16 =
new Dop(Opcodes.MOVE_OBJECT_FROM16, Opcodes.MOVE_OBJECT,
Opcodes.MOVE_OBJECT_16, Form22x.THE_ONE, true);
public static final Dop MOVE_OBJECT_16 =
new Dop(Opcodes.MOVE_OBJECT_16, Opcodes.MOVE_OBJECT,
Opcodes.NO_NEXT, Form32x.THE_ONE, true);
public static final Dop MOVE_RESULT =
new Dop(Opcodes.MOVE_RESULT, Opcodes.MOVE_RESULT,
Opcodes.NO_NEXT, Form11x.THE_ONE, true);
public static final Dop MOVE_RESULT_WIDE =
new Dop(Opcodes.MOVE_RESULT_WIDE, Opcodes.MOVE_RESULT_WIDE,
Opcodes.NO_NEXT, Form11x.THE_ONE, true);
public static final Dop MOVE_RESULT_OBJECT =
new Dop(Opcodes.MOVE_RESULT_OBJECT, Opcodes.MOVE_RESULT_OBJECT,
Opcodes.NO_NEXT, Form11x.THE_ONE, true);
public static final Dop MOVE_EXCEPTION =
new Dop(Opcodes.MOVE_EXCEPTION, Opcodes.MOVE_EXCEPTION,
Opcodes.NO_NEXT, Form11x.THE_ONE, true);
public static final Dop RETURN_VOID =
new Dop(Opcodes.RETURN_VOID, Opcodes.RETURN_VOID,
Opcodes.NO_NEXT, Form10x.THE_ONE, false);
public static final Dop RETURN =
new Dop(Opcodes.RETURN, Opcodes.RETURN,
Opcodes.NO_NEXT, Form11x.THE_ONE, false);
public static final Dop RETURN_WIDE =
new Dop(Opcodes.RETURN_WIDE, Opcodes.RETURN_WIDE,
Opcodes.NO_NEXT, Form11x.THE_ONE, false);
public static final Dop RETURN_OBJECT =
new Dop(Opcodes.RETURN_OBJECT, Opcodes.RETURN_OBJECT,
Opcodes.NO_NEXT, Form11x.THE_ONE, false);
public static final Dop CONST_4 =
new Dop(Opcodes.CONST_4, Opcodes.CONST,
Opcodes.CONST_16, Form11n.THE_ONE, true);
public static final Dop CONST_16 =
new Dop(Opcodes.CONST_16, Opcodes.CONST,
Opcodes.CONST_HIGH16, Form21s.THE_ONE, true);
public static final Dop CONST =
new Dop(Opcodes.CONST, Opcodes.CONST,
Opcodes.NO_NEXT, Form31i.THE_ONE, true);
public static final Dop CONST_HIGH16 =
new Dop(Opcodes.CONST_HIGH16, Opcodes.CONST,
Opcodes.CONST, Form21h.THE_ONE, true);
public static final Dop CONST_WIDE_16 =
new Dop(Opcodes.CONST_WIDE_16, Opcodes.CONST_WIDE,
Opcodes.CONST_WIDE_HIGH16, Form21s.THE_ONE, true);
public static final Dop CONST_WIDE_32 =
new Dop(Opcodes.CONST_WIDE_32, Opcodes.CONST_WIDE,
Opcodes.CONST_WIDE, Form31i.THE_ONE, true);
public static final Dop CONST_WIDE =
new Dop(Opcodes.CONST_WIDE, Opcodes.CONST_WIDE,
Opcodes.NO_NEXT, Form51l.THE_ONE, true);
public static final Dop CONST_WIDE_HIGH16 =
new Dop(Opcodes.CONST_WIDE_HIGH16, Opcodes.CONST_WIDE,
Opcodes.CONST_WIDE_32, Form21h.THE_ONE, true);
public static final Dop CONST_STRING =
new Dop(Opcodes.CONST_STRING, Opcodes.CONST_STRING,
Opcodes.CONST_STRING_JUMBO, Form21c.THE_ONE, true);
public static final Dop CONST_STRING_JUMBO =
new Dop(Opcodes.CONST_STRING_JUMBO, Opcodes.CONST_STRING,
Opcodes.NO_NEXT, Form31c.THE_ONE, true);
public static final Dop CONST_CLASS =
new Dop(Opcodes.CONST_CLASS, Opcodes.CONST_CLASS,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop MONITOR_ENTER =
new Dop(Opcodes.MONITOR_ENTER, Opcodes.MONITOR_ENTER,
Opcodes.NO_NEXT, Form11x.THE_ONE, false);
public static final Dop MONITOR_EXIT =
new Dop(Opcodes.MONITOR_EXIT, Opcodes.MONITOR_EXIT,
Opcodes.NO_NEXT, Form11x.THE_ONE, false);
public static final Dop CHECK_CAST =
new Dop(Opcodes.CHECK_CAST, Opcodes.CHECK_CAST,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop INSTANCE_OF =
new Dop(Opcodes.INSTANCE_OF, Opcodes.INSTANCE_OF,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop ARRAY_LENGTH =
new Dop(Opcodes.ARRAY_LENGTH, Opcodes.ARRAY_LENGTH,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop NEW_INSTANCE =
new Dop(Opcodes.NEW_INSTANCE, Opcodes.NEW_INSTANCE,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop NEW_ARRAY =
new Dop(Opcodes.NEW_ARRAY, Opcodes.NEW_ARRAY,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop FILLED_NEW_ARRAY =
new Dop(Opcodes.FILLED_NEW_ARRAY, Opcodes.FILLED_NEW_ARRAY,
Opcodes.FILLED_NEW_ARRAY_RANGE, Form35c.THE_ONE, false);
public static final Dop FILLED_NEW_ARRAY_RANGE =
new Dop(Opcodes.FILLED_NEW_ARRAY_RANGE, Opcodes.FILLED_NEW_ARRAY,
Opcodes.NO_NEXT, Form3rc.THE_ONE, false);
public static final Dop FILL_ARRAY_DATA =
new Dop(Opcodes.FILL_ARRAY_DATA, Opcodes.FILL_ARRAY_DATA,
Opcodes.NO_NEXT, Form31t.THE_ONE, false);
public static final Dop THROW =
new Dop(Opcodes.THROW, Opcodes.THROW,
Opcodes.NO_NEXT, Form11x.THE_ONE, false);
public static final Dop GOTO =
new Dop(Opcodes.GOTO, Opcodes.GOTO,
Opcodes.GOTO_16, Form10t.THE_ONE, false);
public static final Dop GOTO_16 =
new Dop(Opcodes.GOTO_16, Opcodes.GOTO,
Opcodes.GOTO_32, Form20t.THE_ONE, false);
public static final Dop GOTO_32 =
new Dop(Opcodes.GOTO_32, Opcodes.GOTO,
Opcodes.NO_NEXT, Form30t.THE_ONE, false);
public static final Dop PACKED_SWITCH =
new Dop(Opcodes.PACKED_SWITCH, Opcodes.PACKED_SWITCH,
Opcodes.NO_NEXT, Form31t.THE_ONE, false);
public static final Dop SPARSE_SWITCH =
new Dop(Opcodes.SPARSE_SWITCH, Opcodes.SPARSE_SWITCH,
Opcodes.NO_NEXT, Form31t.THE_ONE, false);
public static final Dop CMPL_FLOAT =
new Dop(Opcodes.CMPL_FLOAT, Opcodes.CMPL_FLOAT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop CMPG_FLOAT =
new Dop(Opcodes.CMPG_FLOAT, Opcodes.CMPG_FLOAT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop CMPL_DOUBLE =
new Dop(Opcodes.CMPL_DOUBLE, Opcodes.CMPL_DOUBLE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop CMPG_DOUBLE =
new Dop(Opcodes.CMPG_DOUBLE, Opcodes.CMPG_DOUBLE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop CMP_LONG =
new Dop(Opcodes.CMP_LONG, Opcodes.CMP_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop IF_EQ =
new Dop(Opcodes.IF_EQ, Opcodes.IF_EQ,
Opcodes.NO_NEXT, Form22t.THE_ONE, false);
public static final Dop IF_NE =
new Dop(Opcodes.IF_NE, Opcodes.IF_NE,
Opcodes.NO_NEXT, Form22t.THE_ONE, false);
public static final Dop IF_LT =
new Dop(Opcodes.IF_LT, Opcodes.IF_LT,
Opcodes.NO_NEXT, Form22t.THE_ONE, false);
public static final Dop IF_GE =
new Dop(Opcodes.IF_GE, Opcodes.IF_GE,
Opcodes.NO_NEXT, Form22t.THE_ONE, false);
public static final Dop IF_GT =
new Dop(Opcodes.IF_GT, Opcodes.IF_GT,
Opcodes.NO_NEXT, Form22t.THE_ONE, false);
public static final Dop IF_LE =
new Dop(Opcodes.IF_LE, Opcodes.IF_LE,
Opcodes.NO_NEXT, Form22t.THE_ONE, false);
public static final Dop IF_EQZ =
new Dop(Opcodes.IF_EQZ, Opcodes.IF_EQZ,
Opcodes.NO_NEXT, Form21t.THE_ONE, false);
public static final Dop IF_NEZ =
new Dop(Opcodes.IF_NEZ, Opcodes.IF_NEZ,
Opcodes.NO_NEXT, Form21t.THE_ONE, false);
public static final Dop IF_LTZ =
new Dop(Opcodes.IF_LTZ, Opcodes.IF_LTZ,
Opcodes.NO_NEXT, Form21t.THE_ONE, false);
public static final Dop IF_GEZ =
new Dop(Opcodes.IF_GEZ, Opcodes.IF_GEZ,
Opcodes.NO_NEXT, Form21t.THE_ONE, false);
public static final Dop IF_GTZ =
new Dop(Opcodes.IF_GTZ, Opcodes.IF_GTZ,
Opcodes.NO_NEXT, Form21t.THE_ONE, false);
public static final Dop IF_LEZ =
new Dop(Opcodes.IF_LEZ, Opcodes.IF_LEZ,
Opcodes.NO_NEXT, Form21t.THE_ONE, false);
public static final Dop AGET =
new Dop(Opcodes.AGET, Opcodes.AGET,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop AGET_WIDE =
new Dop(Opcodes.AGET_WIDE, Opcodes.AGET_WIDE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop AGET_OBJECT =
new Dop(Opcodes.AGET_OBJECT, Opcodes.AGET_OBJECT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop AGET_BOOLEAN =
new Dop(Opcodes.AGET_BOOLEAN, Opcodes.AGET_BOOLEAN,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop AGET_BYTE =
new Dop(Opcodes.AGET_BYTE, Opcodes.AGET_BYTE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop AGET_CHAR =
new Dop(Opcodes.AGET_CHAR, Opcodes.AGET_CHAR,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop AGET_SHORT =
new Dop(Opcodes.AGET_SHORT, Opcodes.AGET_SHORT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop APUT =
new Dop(Opcodes.APUT, Opcodes.APUT,
Opcodes.NO_NEXT, Form23x.THE_ONE, false);
public static final Dop APUT_WIDE =
new Dop(Opcodes.APUT_WIDE, Opcodes.APUT_WIDE,
Opcodes.NO_NEXT, Form23x.THE_ONE, false);
public static final Dop APUT_OBJECT =
new Dop(Opcodes.APUT_OBJECT, Opcodes.APUT_OBJECT,
Opcodes.NO_NEXT, Form23x.THE_ONE, false);
public static final Dop APUT_BOOLEAN =
new Dop(Opcodes.APUT_BOOLEAN, Opcodes.APUT_BOOLEAN,
Opcodes.NO_NEXT, Form23x.THE_ONE, false);
public static final Dop APUT_BYTE =
new Dop(Opcodes.APUT_BYTE, Opcodes.APUT_BYTE,
Opcodes.NO_NEXT, Form23x.THE_ONE, false);
public static final Dop APUT_CHAR =
new Dop(Opcodes.APUT_CHAR, Opcodes.APUT_CHAR,
Opcodes.NO_NEXT, Form23x.THE_ONE, false);
public static final Dop APUT_SHORT =
new Dop(Opcodes.APUT_SHORT, Opcodes.APUT_SHORT,
Opcodes.NO_NEXT, Form23x.THE_ONE, false);
public static final Dop IGET =
new Dop(Opcodes.IGET, Opcodes.IGET,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop IGET_WIDE =
new Dop(Opcodes.IGET_WIDE, Opcodes.IGET_WIDE,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop IGET_OBJECT =
new Dop(Opcodes.IGET_OBJECT, Opcodes.IGET_OBJECT,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop IGET_BOOLEAN =
new Dop(Opcodes.IGET_BOOLEAN, Opcodes.IGET_BOOLEAN,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop IGET_BYTE =
new Dop(Opcodes.IGET_BYTE, Opcodes.IGET_BYTE,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop IGET_CHAR =
new Dop(Opcodes.IGET_CHAR, Opcodes.IGET_CHAR,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop IGET_SHORT =
new Dop(Opcodes.IGET_SHORT, Opcodes.IGET_SHORT,
Opcodes.NO_NEXT, Form22c.THE_ONE, true);
public static final Dop IPUT =
new Dop(Opcodes.IPUT, Opcodes.IPUT,
Opcodes.NO_NEXT, Form22c.THE_ONE, false);
public static final Dop IPUT_WIDE =
new Dop(Opcodes.IPUT_WIDE, Opcodes.IPUT_WIDE,
Opcodes.NO_NEXT, Form22c.THE_ONE, false);
public static final Dop IPUT_OBJECT =
new Dop(Opcodes.IPUT_OBJECT, Opcodes.IPUT_OBJECT,
Opcodes.NO_NEXT, Form22c.THE_ONE, false);
public static final Dop IPUT_BOOLEAN =
new Dop(Opcodes.IPUT_BOOLEAN, Opcodes.IPUT_BOOLEAN,
Opcodes.NO_NEXT, Form22c.THE_ONE, false);
public static final Dop IPUT_BYTE =
new Dop(Opcodes.IPUT_BYTE, Opcodes.IPUT_BYTE,
Opcodes.NO_NEXT, Form22c.THE_ONE, false);
public static final Dop IPUT_CHAR =
new Dop(Opcodes.IPUT_CHAR, Opcodes.IPUT_CHAR,
Opcodes.NO_NEXT, Form22c.THE_ONE, false);
public static final Dop IPUT_SHORT =
new Dop(Opcodes.IPUT_SHORT, Opcodes.IPUT_SHORT,
Opcodes.NO_NEXT, Form22c.THE_ONE, false);
public static final Dop SGET =
new Dop(Opcodes.SGET, Opcodes.SGET,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop SGET_WIDE =
new Dop(Opcodes.SGET_WIDE, Opcodes.SGET_WIDE,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop SGET_OBJECT =
new Dop(Opcodes.SGET_OBJECT, Opcodes.SGET_OBJECT,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop SGET_BOOLEAN =
new Dop(Opcodes.SGET_BOOLEAN, Opcodes.SGET_BOOLEAN,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop SGET_BYTE =
new Dop(Opcodes.SGET_BYTE, Opcodes.SGET_BYTE,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop SGET_CHAR =
new Dop(Opcodes.SGET_CHAR, Opcodes.SGET_CHAR,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop SGET_SHORT =
new Dop(Opcodes.SGET_SHORT, Opcodes.SGET_SHORT,
Opcodes.NO_NEXT, Form21c.THE_ONE, true);
public static final Dop SPUT =
new Dop(Opcodes.SPUT, Opcodes.SPUT,
Opcodes.NO_NEXT, Form21c.THE_ONE, false);
public static final Dop SPUT_WIDE =
new Dop(Opcodes.SPUT_WIDE, Opcodes.SPUT_WIDE,
Opcodes.NO_NEXT, Form21c.THE_ONE, false);
public static final Dop SPUT_OBJECT =
new Dop(Opcodes.SPUT_OBJECT, Opcodes.SPUT_OBJECT,
Opcodes.NO_NEXT, Form21c.THE_ONE, false);
public static final Dop SPUT_BOOLEAN =
new Dop(Opcodes.SPUT_BOOLEAN, Opcodes.SPUT_BOOLEAN,
Opcodes.NO_NEXT, Form21c.THE_ONE, false);
public static final Dop SPUT_BYTE =
new Dop(Opcodes.SPUT_BYTE, Opcodes.SPUT_BYTE,
Opcodes.NO_NEXT, Form21c.THE_ONE, false);
public static final Dop SPUT_CHAR =
new Dop(Opcodes.SPUT_CHAR, Opcodes.SPUT_CHAR,
Opcodes.NO_NEXT, Form21c.THE_ONE, false);
public static final Dop SPUT_SHORT =
new Dop(Opcodes.SPUT_SHORT, Opcodes.SPUT_SHORT,
Opcodes.NO_NEXT, Form21c.THE_ONE, false);
public static final Dop INVOKE_VIRTUAL =
new Dop(Opcodes.INVOKE_VIRTUAL, Opcodes.INVOKE_VIRTUAL,
Opcodes.INVOKE_VIRTUAL_RANGE, Form35c.THE_ONE, false);
public static final Dop INVOKE_SUPER =
new Dop(Opcodes.INVOKE_SUPER, Opcodes.INVOKE_SUPER,
Opcodes.INVOKE_SUPER_RANGE, Form35c.THE_ONE, false);
public static final Dop INVOKE_DIRECT =
new Dop(Opcodes.INVOKE_DIRECT, Opcodes.INVOKE_DIRECT,
Opcodes.INVOKE_DIRECT_RANGE, Form35c.THE_ONE, false);
public static final Dop INVOKE_STATIC =
new Dop(Opcodes.INVOKE_STATIC, Opcodes.INVOKE_STATIC,
Opcodes.INVOKE_STATIC_RANGE, Form35c.THE_ONE, false);
public static final Dop INVOKE_INTERFACE =
new Dop(Opcodes.INVOKE_INTERFACE, Opcodes.INVOKE_INTERFACE,
Opcodes.INVOKE_INTERFACE_RANGE, Form35c.THE_ONE, false);
public static final Dop INVOKE_VIRTUAL_RANGE =
new Dop(Opcodes.INVOKE_VIRTUAL_RANGE, Opcodes.INVOKE_VIRTUAL,
Opcodes.NO_NEXT, Form3rc.THE_ONE, false);
public static final Dop INVOKE_SUPER_RANGE =
new Dop(Opcodes.INVOKE_SUPER_RANGE, Opcodes.INVOKE_SUPER,
Opcodes.NO_NEXT, Form3rc.THE_ONE, false);
public static final Dop INVOKE_DIRECT_RANGE =
new Dop(Opcodes.INVOKE_DIRECT_RANGE, Opcodes.INVOKE_DIRECT,
Opcodes.NO_NEXT, Form3rc.THE_ONE, false);
public static final Dop INVOKE_STATIC_RANGE =
new Dop(Opcodes.INVOKE_STATIC_RANGE, Opcodes.INVOKE_STATIC,
Opcodes.NO_NEXT, Form3rc.THE_ONE, false);
public static final Dop INVOKE_INTERFACE_RANGE =
new Dop(Opcodes.INVOKE_INTERFACE_RANGE, Opcodes.INVOKE_INTERFACE,
Opcodes.NO_NEXT, Form3rc.THE_ONE, false);
public static final Dop NEG_INT =
new Dop(Opcodes.NEG_INT, Opcodes.NEG_INT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop NOT_INT =
new Dop(Opcodes.NOT_INT, Opcodes.NOT_INT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop NEG_LONG =
new Dop(Opcodes.NEG_LONG, Opcodes.NEG_LONG,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop NOT_LONG =
new Dop(Opcodes.NOT_LONG, Opcodes.NOT_LONG,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop NEG_FLOAT =
new Dop(Opcodes.NEG_FLOAT, Opcodes.NEG_FLOAT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop NEG_DOUBLE =
new Dop(Opcodes.NEG_DOUBLE, Opcodes.NEG_DOUBLE,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop INT_TO_LONG =
new Dop(Opcodes.INT_TO_LONG, Opcodes.INT_TO_LONG,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop INT_TO_FLOAT =
new Dop(Opcodes.INT_TO_FLOAT, Opcodes.INT_TO_FLOAT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop INT_TO_DOUBLE =
new Dop(Opcodes.INT_TO_DOUBLE, Opcodes.INT_TO_DOUBLE,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop LONG_TO_INT =
new Dop(Opcodes.LONG_TO_INT, Opcodes.LONG_TO_INT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop LONG_TO_FLOAT =
new Dop(Opcodes.LONG_TO_FLOAT, Opcodes.LONG_TO_FLOAT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop LONG_TO_DOUBLE =
new Dop(Opcodes.LONG_TO_DOUBLE, Opcodes.LONG_TO_DOUBLE,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop FLOAT_TO_INT =
new Dop(Opcodes.FLOAT_TO_INT, Opcodes.FLOAT_TO_INT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop FLOAT_TO_LONG =
new Dop(Opcodes.FLOAT_TO_LONG, Opcodes.FLOAT_TO_LONG,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop FLOAT_TO_DOUBLE =
new Dop(Opcodes.FLOAT_TO_DOUBLE, Opcodes.FLOAT_TO_DOUBLE,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop DOUBLE_TO_INT =
new Dop(Opcodes.DOUBLE_TO_INT, Opcodes.DOUBLE_TO_INT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop DOUBLE_TO_LONG =
new Dop(Opcodes.DOUBLE_TO_LONG, Opcodes.DOUBLE_TO_LONG,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop DOUBLE_TO_FLOAT =
new Dop(Opcodes.DOUBLE_TO_FLOAT, Opcodes.DOUBLE_TO_FLOAT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop INT_TO_BYTE =
new Dop(Opcodes.INT_TO_BYTE, Opcodes.INT_TO_BYTE,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop INT_TO_CHAR =
new Dop(Opcodes.INT_TO_CHAR, Opcodes.INT_TO_CHAR,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop INT_TO_SHORT =
new Dop(Opcodes.INT_TO_SHORT, Opcodes.INT_TO_SHORT,
Opcodes.NO_NEXT, Form12x.THE_ONE, true);
public static final Dop ADD_INT =
new Dop(Opcodes.ADD_INT, Opcodes.ADD_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop SUB_INT =
new Dop(Opcodes.SUB_INT, Opcodes.SUB_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop MUL_INT =
new Dop(Opcodes.MUL_INT, Opcodes.MUL_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop DIV_INT =
new Dop(Opcodes.DIV_INT, Opcodes.DIV_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop REM_INT =
new Dop(Opcodes.REM_INT, Opcodes.REM_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop AND_INT =
new Dop(Opcodes.AND_INT, Opcodes.AND_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop OR_INT =
new Dop(Opcodes.OR_INT, Opcodes.OR_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop XOR_INT =
new Dop(Opcodes.XOR_INT, Opcodes.XOR_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop SHL_INT =
new Dop(Opcodes.SHL_INT, Opcodes.SHL_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop SHR_INT =
new Dop(Opcodes.SHR_INT, Opcodes.SHR_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop USHR_INT =
new Dop(Opcodes.USHR_INT, Opcodes.USHR_INT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop ADD_LONG =
new Dop(Opcodes.ADD_LONG, Opcodes.ADD_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop SUB_LONG =
new Dop(Opcodes.SUB_LONG, Opcodes.SUB_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop MUL_LONG =
new Dop(Opcodes.MUL_LONG, Opcodes.MUL_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop DIV_LONG =
new Dop(Opcodes.DIV_LONG, Opcodes.DIV_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop REM_LONG =
new Dop(Opcodes.REM_LONG, Opcodes.REM_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop AND_LONG =
new Dop(Opcodes.AND_LONG, Opcodes.AND_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop OR_LONG =
new Dop(Opcodes.OR_LONG, Opcodes.OR_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop XOR_LONG =
new Dop(Opcodes.XOR_LONG, Opcodes.XOR_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop SHL_LONG =
new Dop(Opcodes.SHL_LONG, Opcodes.SHL_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop SHR_LONG =
new Dop(Opcodes.SHR_LONG, Opcodes.SHR_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop USHR_LONG =
new Dop(Opcodes.USHR_LONG, Opcodes.USHR_LONG,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop ADD_FLOAT =
new Dop(Opcodes.ADD_FLOAT, Opcodes.ADD_FLOAT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop SUB_FLOAT =
new Dop(Opcodes.SUB_FLOAT, Opcodes.SUB_FLOAT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop MUL_FLOAT =
new Dop(Opcodes.MUL_FLOAT, Opcodes.MUL_FLOAT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop DIV_FLOAT =
new Dop(Opcodes.DIV_FLOAT, Opcodes.DIV_FLOAT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop REM_FLOAT =
new Dop(Opcodes.REM_FLOAT, Opcodes.REM_FLOAT,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop ADD_DOUBLE =
new Dop(Opcodes.ADD_DOUBLE, Opcodes.ADD_DOUBLE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop SUB_DOUBLE =
new Dop(Opcodes.SUB_DOUBLE, Opcodes.SUB_DOUBLE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop MUL_DOUBLE =
new Dop(Opcodes.MUL_DOUBLE, Opcodes.MUL_DOUBLE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop DIV_DOUBLE =
new Dop(Opcodes.DIV_DOUBLE, Opcodes.DIV_DOUBLE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop REM_DOUBLE =
new Dop(Opcodes.REM_DOUBLE, Opcodes.REM_DOUBLE,
Opcodes.NO_NEXT, Form23x.THE_ONE, true);
public static final Dop ADD_INT_2ADDR =
new Dop(Opcodes.ADD_INT_2ADDR, Opcodes.ADD_INT,
Opcodes.ADD_INT, Form12x.THE_ONE, true);
public static final Dop SUB_INT_2ADDR =
new Dop(Opcodes.SUB_INT_2ADDR, Opcodes.SUB_INT,
Opcodes.SUB_INT, Form12x.THE_ONE, true);
public static final Dop MUL_INT_2ADDR =
new Dop(Opcodes.MUL_INT_2ADDR, Opcodes.MUL_INT,
Opcodes.MUL_INT, Form12x.THE_ONE, true);
public static final Dop DIV_INT_2ADDR =
new Dop(Opcodes.DIV_INT_2ADDR, Opcodes.DIV_INT,
Opcodes.DIV_INT, Form12x.THE_ONE, true);
public static final Dop REM_INT_2ADDR =
new Dop(Opcodes.REM_INT_2ADDR, Opcodes.REM_INT,
Opcodes.REM_INT, Form12x.THE_ONE, true);
public static final Dop AND_INT_2ADDR =
new Dop(Opcodes.AND_INT_2ADDR, Opcodes.AND_INT,
Opcodes.AND_INT, Form12x.THE_ONE, true);
public static final Dop OR_INT_2ADDR =
new Dop(Opcodes.OR_INT_2ADDR, Opcodes.OR_INT,
Opcodes.OR_INT, Form12x.THE_ONE, true);
public static final Dop XOR_INT_2ADDR =
new Dop(Opcodes.XOR_INT_2ADDR, Opcodes.XOR_INT,
Opcodes.XOR_INT, Form12x.THE_ONE, true);
public static final Dop SHL_INT_2ADDR =
new Dop(Opcodes.SHL_INT_2ADDR, Opcodes.SHL_INT,
Opcodes.SHL_INT, Form12x.THE_ONE, true);
public static final Dop SHR_INT_2ADDR =
new Dop(Opcodes.SHR_INT_2ADDR, Opcodes.SHR_INT,
Opcodes.SHR_INT, Form12x.THE_ONE, true);
public static final Dop USHR_INT_2ADDR =
new Dop(Opcodes.USHR_INT_2ADDR, Opcodes.USHR_INT,
Opcodes.USHR_INT, Form12x.THE_ONE, true);
public static final Dop ADD_LONG_2ADDR =
new Dop(Opcodes.ADD_LONG_2ADDR, Opcodes.ADD_LONG,
Opcodes.ADD_LONG, Form12x.THE_ONE, true);
public static final Dop SUB_LONG_2ADDR =
new Dop(Opcodes.SUB_LONG_2ADDR, Opcodes.SUB_LONG,
Opcodes.SUB_LONG, Form12x.THE_ONE, true);
public static final Dop MUL_LONG_2ADDR =
new Dop(Opcodes.MUL_LONG_2ADDR, Opcodes.MUL_LONG,
Opcodes.MUL_LONG, Form12x.THE_ONE, true);
public static final Dop DIV_LONG_2ADDR =
new Dop(Opcodes.DIV_LONG_2ADDR, Opcodes.DIV_LONG,
Opcodes.DIV_LONG, Form12x.THE_ONE, true);
public static final Dop REM_LONG_2ADDR =
new Dop(Opcodes.REM_LONG_2ADDR, Opcodes.REM_LONG,
Opcodes.REM_LONG, Form12x.THE_ONE, true);
public static final Dop AND_LONG_2ADDR =
new Dop(Opcodes.AND_LONG_2ADDR, Opcodes.AND_LONG,
Opcodes.AND_LONG, Form12x.THE_ONE, true);
public static final Dop OR_LONG_2ADDR =
new Dop(Opcodes.OR_LONG_2ADDR, Opcodes.OR_LONG,
Opcodes.OR_LONG, Form12x.THE_ONE, true);
public static final Dop XOR_LONG_2ADDR =
new Dop(Opcodes.XOR_LONG_2ADDR, Opcodes.XOR_LONG,
Opcodes.XOR_LONG, Form12x.THE_ONE, true);
public static final Dop SHL_LONG_2ADDR =
new Dop(Opcodes.SHL_LONG_2ADDR, Opcodes.SHL_LONG,
Opcodes.SHL_LONG, Form12x.THE_ONE, true);
public static final Dop SHR_LONG_2ADDR =
new Dop(Opcodes.SHR_LONG_2ADDR, Opcodes.SHR_LONG,
Opcodes.SHR_LONG, Form12x.THE_ONE, true);
public static final Dop USHR_LONG_2ADDR =
new Dop(Opcodes.USHR_LONG_2ADDR, Opcodes.USHR_LONG,
Opcodes.USHR_LONG, Form12x.THE_ONE, true);
public static final Dop ADD_FLOAT_2ADDR =
new Dop(Opcodes.ADD_FLOAT_2ADDR, Opcodes.ADD_FLOAT,
Opcodes.ADD_FLOAT, Form12x.THE_ONE, true);
public static final Dop SUB_FLOAT_2ADDR =
new Dop(Opcodes.SUB_FLOAT_2ADDR, Opcodes.SUB_FLOAT,
Opcodes.SUB_FLOAT, Form12x.THE_ONE, true);
public static final Dop MUL_FLOAT_2ADDR =
new Dop(Opcodes.MUL_FLOAT_2ADDR, Opcodes.MUL_FLOAT,
Opcodes.MUL_FLOAT, Form12x.THE_ONE, true);
public static final Dop DIV_FLOAT_2ADDR =
new Dop(Opcodes.DIV_FLOAT_2ADDR, Opcodes.DIV_FLOAT,
Opcodes.DIV_FLOAT, Form12x.THE_ONE, true);
public static final Dop REM_FLOAT_2ADDR =
new Dop(Opcodes.REM_FLOAT_2ADDR, Opcodes.REM_FLOAT,
Opcodes.REM_FLOAT, Form12x.THE_ONE, true);
public static final Dop ADD_DOUBLE_2ADDR =
new Dop(Opcodes.ADD_DOUBLE_2ADDR, Opcodes.ADD_DOUBLE,
Opcodes.ADD_DOUBLE, Form12x.THE_ONE, true);
public static final Dop SUB_DOUBLE_2ADDR =
new Dop(Opcodes.SUB_DOUBLE_2ADDR, Opcodes.SUB_DOUBLE,
Opcodes.SUB_DOUBLE, Form12x.THE_ONE, true);
public static final Dop MUL_DOUBLE_2ADDR =
new Dop(Opcodes.MUL_DOUBLE_2ADDR, Opcodes.MUL_DOUBLE,
Opcodes.MUL_DOUBLE, Form12x.THE_ONE, true);
public static final Dop DIV_DOUBLE_2ADDR =
new Dop(Opcodes.DIV_DOUBLE_2ADDR, Opcodes.DIV_DOUBLE,
Opcodes.DIV_DOUBLE, Form12x.THE_ONE, true);
public static final Dop REM_DOUBLE_2ADDR =
new Dop(Opcodes.REM_DOUBLE_2ADDR, Opcodes.REM_DOUBLE,
Opcodes.REM_DOUBLE, Form12x.THE_ONE, true);
public static final Dop ADD_INT_LIT16 =
new Dop(Opcodes.ADD_INT_LIT16, Opcodes.ADD_INT,
Opcodes.NO_NEXT, Form22s.THE_ONE, true);
public static final Dop RSUB_INT =
new Dop(Opcodes.RSUB_INT, Opcodes.RSUB_INT,
Opcodes.NO_NEXT, Form22s.THE_ONE, true);
public static final Dop MUL_INT_LIT16 =
new Dop(Opcodes.MUL_INT_LIT16, Opcodes.MUL_INT,
Opcodes.NO_NEXT, Form22s.THE_ONE, true);
public static final Dop DIV_INT_LIT16 =
new Dop(Opcodes.DIV_INT_LIT16, Opcodes.DIV_INT,
Opcodes.NO_NEXT, Form22s.THE_ONE, true);
public static final Dop REM_INT_LIT16 =
new Dop(Opcodes.REM_INT_LIT16, Opcodes.REM_INT,
Opcodes.NO_NEXT, Form22s.THE_ONE, true);
public static final Dop AND_INT_LIT16 =
new Dop(Opcodes.AND_INT_LIT16, Opcodes.AND_INT,
Opcodes.NO_NEXT, Form22s.THE_ONE, true);
public static final Dop OR_INT_LIT16 =
new Dop(Opcodes.OR_INT_LIT16, Opcodes.OR_INT,
Opcodes.NO_NEXT, Form22s.THE_ONE, true);
public static final Dop XOR_INT_LIT16 =
new Dop(Opcodes.XOR_INT_LIT16, Opcodes.XOR_INT,
Opcodes.NO_NEXT, Form22s.THE_ONE, true);
public static final Dop ADD_INT_LIT8 =
new Dop(Opcodes.ADD_INT_LIT8, Opcodes.ADD_INT,
Opcodes.ADD_INT_LIT16, Form22b.THE_ONE, true);
public static final Dop RSUB_INT_LIT8 =
new Dop(Opcodes.RSUB_INT_LIT8, Opcodes.RSUB_INT,
Opcodes.RSUB_INT, Form22b.THE_ONE, true);
public static final Dop MUL_INT_LIT8 =
new Dop(Opcodes.MUL_INT_LIT8, Opcodes.MUL_INT,
Opcodes.MUL_INT_LIT16, Form22b.THE_ONE, true);
public static final Dop DIV_INT_LIT8 =
new Dop(Opcodes.DIV_INT_LIT8, Opcodes.DIV_INT,
Opcodes.DIV_INT_LIT16, Form22b.THE_ONE, true);
public static final Dop REM_INT_LIT8 =
new Dop(Opcodes.REM_INT_LIT8, Opcodes.REM_INT,
Opcodes.REM_INT_LIT16, Form22b.THE_ONE, true);
public static final Dop AND_INT_LIT8 =
new Dop(Opcodes.AND_INT_LIT8, Opcodes.AND_INT,
Opcodes.AND_INT_LIT16, Form22b.THE_ONE, true);
public static final Dop OR_INT_LIT8 =
new Dop(Opcodes.OR_INT_LIT8, Opcodes.OR_INT,
Opcodes.OR_INT_LIT16, Form22b.THE_ONE, true);
public static final Dop XOR_INT_LIT8 =
new Dop(Opcodes.XOR_INT_LIT8, Opcodes.XOR_INT,
Opcodes.XOR_INT_LIT16, Form22b.THE_ONE, true);
public static final Dop SHL_INT_LIT8 =
new Dop(Opcodes.SHL_INT_LIT8, Opcodes.SHL_INT,
Opcodes.NO_NEXT, Form22b.THE_ONE, true);
public static final Dop SHR_INT_LIT8 =
new Dop(Opcodes.SHR_INT_LIT8, Opcodes.SHR_INT,
Opcodes.NO_NEXT, Form22b.THE_ONE, true);
public static final Dop USHR_INT_LIT8 =
new Dop(Opcodes.USHR_INT_LIT8, Opcodes.USHR_INT,
Opcodes.NO_NEXT, Form22b.THE_ONE, true);
// END(dops)
// Static initialization.
static {
DOPS = new Dop[Opcodes.MAX_VALUE - Opcodes.MIN_VALUE + 1];
set(SPECIAL_FORMAT);
// BEGIN(dops-init); GENERATED AUTOMATICALLY BY opcode-gen
set(NOP);
set(MOVE);
set(MOVE_FROM16);
set(MOVE_16);
set(MOVE_WIDE);
set(MOVE_WIDE_FROM16);
set(MOVE_WIDE_16);
set(MOVE_OBJECT);
set(MOVE_OBJECT_FROM16);
set(MOVE_OBJECT_16);
set(MOVE_RESULT);
set(MOVE_RESULT_WIDE);
set(MOVE_RESULT_OBJECT);
set(MOVE_EXCEPTION);
set(RETURN_VOID);
set(RETURN);
set(RETURN_WIDE);
set(RETURN_OBJECT);
set(CONST_4);
set(CONST_16);
set(CONST);
set(CONST_HIGH16);
set(CONST_WIDE_16);
set(CONST_WIDE_32);
set(CONST_WIDE);
set(CONST_WIDE_HIGH16);
set(CONST_STRING);
set(CONST_STRING_JUMBO);
set(CONST_CLASS);
set(MONITOR_ENTER);
set(MONITOR_EXIT);
set(CHECK_CAST);
set(INSTANCE_OF);
set(ARRAY_LENGTH);
set(NEW_INSTANCE);
set(NEW_ARRAY);
set(FILLED_NEW_ARRAY);
set(FILLED_NEW_ARRAY_RANGE);
set(FILL_ARRAY_DATA);
set(THROW);
set(GOTO);
set(GOTO_16);
set(GOTO_32);
set(PACKED_SWITCH);
set(SPARSE_SWITCH);
set(CMPL_FLOAT);
set(CMPG_FLOAT);
set(CMPL_DOUBLE);
set(CMPG_DOUBLE);
set(CMP_LONG);
set(IF_EQ);
set(IF_NE);
set(IF_LT);
set(IF_GE);
set(IF_GT);
set(IF_LE);
set(IF_EQZ);
set(IF_NEZ);
set(IF_LTZ);
set(IF_GEZ);
set(IF_GTZ);
set(IF_LEZ);
set(AGET);
set(AGET_WIDE);
set(AGET_OBJECT);
set(AGET_BOOLEAN);
set(AGET_BYTE);
set(AGET_CHAR);
set(AGET_SHORT);
set(APUT);
set(APUT_WIDE);
set(APUT_OBJECT);
set(APUT_BOOLEAN);
set(APUT_BYTE);
set(APUT_CHAR);
set(APUT_SHORT);
set(IGET);
set(IGET_WIDE);
set(IGET_OBJECT);
set(IGET_BOOLEAN);
set(IGET_BYTE);
set(IGET_CHAR);
set(IGET_SHORT);
set(IPUT);
set(IPUT_WIDE);
set(IPUT_OBJECT);
set(IPUT_BOOLEAN);
set(IPUT_BYTE);
set(IPUT_CHAR);
set(IPUT_SHORT);
set(SGET);
set(SGET_WIDE);
set(SGET_OBJECT);
set(SGET_BOOLEAN);
set(SGET_BYTE);
set(SGET_CHAR);
set(SGET_SHORT);
set(SPUT);
set(SPUT_WIDE);
set(SPUT_OBJECT);
set(SPUT_BOOLEAN);
set(SPUT_BYTE);
set(SPUT_CHAR);
set(SPUT_SHORT);
set(INVOKE_VIRTUAL);
set(INVOKE_SUPER);
set(INVOKE_DIRECT);
set(INVOKE_STATIC);
set(INVOKE_INTERFACE);
set(INVOKE_VIRTUAL_RANGE);
set(INVOKE_SUPER_RANGE);
set(INVOKE_DIRECT_RANGE);
set(INVOKE_STATIC_RANGE);
set(INVOKE_INTERFACE_RANGE);
set(NEG_INT);
set(NOT_INT);
set(NEG_LONG);
set(NOT_LONG);
set(NEG_FLOAT);
set(NEG_DOUBLE);
set(INT_TO_LONG);
set(INT_TO_FLOAT);
set(INT_TO_DOUBLE);
set(LONG_TO_INT);
set(LONG_TO_FLOAT);
set(LONG_TO_DOUBLE);
set(FLOAT_TO_INT);
set(FLOAT_TO_LONG);
set(FLOAT_TO_DOUBLE);
set(DOUBLE_TO_INT);
set(DOUBLE_TO_LONG);
set(DOUBLE_TO_FLOAT);
set(INT_TO_BYTE);
set(INT_TO_CHAR);
set(INT_TO_SHORT);
set(ADD_INT);
set(SUB_INT);
set(MUL_INT);
set(DIV_INT);
set(REM_INT);
set(AND_INT);
set(OR_INT);
set(XOR_INT);
set(SHL_INT);
set(SHR_INT);
set(USHR_INT);
set(ADD_LONG);
set(SUB_LONG);
set(MUL_LONG);
set(DIV_LONG);
set(REM_LONG);
set(AND_LONG);
set(OR_LONG);
set(XOR_LONG);
set(SHL_LONG);
set(SHR_LONG);
set(USHR_LONG);
set(ADD_FLOAT);
set(SUB_FLOAT);
set(MUL_FLOAT);
set(DIV_FLOAT);
set(REM_FLOAT);
set(ADD_DOUBLE);
set(SUB_DOUBLE);
set(MUL_DOUBLE);
set(DIV_DOUBLE);
set(REM_DOUBLE);
set(ADD_INT_2ADDR);
set(SUB_INT_2ADDR);
set(MUL_INT_2ADDR);
set(DIV_INT_2ADDR);
set(REM_INT_2ADDR);
set(AND_INT_2ADDR);
set(OR_INT_2ADDR);
set(XOR_INT_2ADDR);
set(SHL_INT_2ADDR);
set(SHR_INT_2ADDR);
set(USHR_INT_2ADDR);
set(ADD_LONG_2ADDR);
set(SUB_LONG_2ADDR);
set(MUL_LONG_2ADDR);
set(DIV_LONG_2ADDR);
set(REM_LONG_2ADDR);
set(AND_LONG_2ADDR);
set(OR_LONG_2ADDR);
set(XOR_LONG_2ADDR);
set(SHL_LONG_2ADDR);
set(SHR_LONG_2ADDR);
set(USHR_LONG_2ADDR);
set(ADD_FLOAT_2ADDR);
set(SUB_FLOAT_2ADDR);
set(MUL_FLOAT_2ADDR);
set(DIV_FLOAT_2ADDR);
set(REM_FLOAT_2ADDR);
set(ADD_DOUBLE_2ADDR);
set(SUB_DOUBLE_2ADDR);
set(MUL_DOUBLE_2ADDR);
set(DIV_DOUBLE_2ADDR);
set(REM_DOUBLE_2ADDR);
set(ADD_INT_LIT16);
set(RSUB_INT);
set(MUL_INT_LIT16);
set(DIV_INT_LIT16);
set(REM_INT_LIT16);
set(AND_INT_LIT16);
set(OR_INT_LIT16);
set(XOR_INT_LIT16);
set(ADD_INT_LIT8);
set(RSUB_INT_LIT8);
set(MUL_INT_LIT8);
set(DIV_INT_LIT8);
set(REM_INT_LIT8);
set(AND_INT_LIT8);
set(OR_INT_LIT8);
set(XOR_INT_LIT8);
set(SHL_INT_LIT8);
set(SHR_INT_LIT8);
set(USHR_INT_LIT8);
// END(dops-init)
}
/**
* This class is uninstantiable.
*/
private Dops() {
// This space intentionally left blank.
}
/**
* Gets the {@link Dop} for the given opcode value.
*
* @param opcode {@code Opcodes.MIN_VALUE..Opcodes.MAX_VALUE;} the
* opcode value
* @return {@code non-null;} the associated opcode instance
*/
public static Dop get(int opcode) {
int idx = opcode - Opcodes.MIN_VALUE;
try {
Dop result = DOPS[idx];
if (result != null) {
return result;
}
} catch (ArrayIndexOutOfBoundsException ex) {
// Fall through.
}
throw new IllegalArgumentException("bogus opcode");
}
/**
* Gets the next {@link Dop} in the instruction fitting chain after the
* given instance, if any.
*
* @param opcode {@code non-null;} the opcode
* @param options {@code non-null;} options, used to determine
* which opcodes are potentially off-limits
* @return {@code null-ok;} the next opcode in the same family, in the
* chain of opcodes to try, or {@code null} if the given opcode is
* the last in its chain
*/
public static Dop getNextOrNull(Dop opcode, DexOptions options) {
int nextOpcode = opcode.getNextOpcode();
if (nextOpcode == Opcodes.NO_NEXT) {
return null;
}
opcode = get(nextOpcode);
return opcode;
}
/**
* Puts the given opcode into the table of all ops.
*
* @param opcode {@code non-null;} the opcode
*/
private static void set(Dop opcode) {
int idx = opcode.getOpcode() - Opcodes.MIN_VALUE;
DOPS[idx] = opcode;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy