/*
* Copyright (c) 2009-2012 Panxiaobo
*
* 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.googlecode.dex2jar;
/**
* dex2jar dex instruction set. This is different from the <b>dalvik instruction</b>
*
* @author <a href="mailto:pxb1988@gmail.com">Panxiaobo</a>
* @version $Rev$
*/
public abstract interface DexOpcodes {
int ACC_PUBLIC = 0x0001; // class, field, method
int ACC_PRIVATE = 0x0002; // class, field, method
int ACC_PROTECTED = 0x0004; // class, field, method
int ACC_STATIC = 0x0008; // field, method
int ACC_FINAL = 0x0010; // class, field, method
// int ACC_SUPER = 0x0020; // class
int ACC_SYNCHRONIZED = 0x0020; // method
int ACC_VOLATILE = 0x0040; // field
int ACC_BRIDGE = 0x0040; // method
int ACC_VARARGS = 0x0080; // method
int ACC_TRANSIENT = 0x0080; // field
int ACC_NATIVE = 0x0100; // method
int ACC_INTERFACE = 0x0200; // class
int ACC_ABSTRACT = 0x0400; // class, method
int ACC_STRICT = 0x0800; // method
int ACC_SYNTHETIC = 0x1000; // class, field, method
int ACC_ANNOTATION = 0x2000; // class
int ACC_ENUM = 0x4000; // class(?) field inner
int ACC_CONSTRUCTOR = 0x10000;// constructor method (class or instance initializer)
int ACC_DECLARED_SYNCHRONIZED = 0x20000;
int TYPE_SINGLE = 0;
int TYPE_WIDE = 1;
int TYPE_OBJECT = 2;
int TYPE_BOOLEAN = 3;
int TYPE_BYTE = 4;
int TYPE_CHAR = 5;
int TYPE_SHORT = 6;
int TYPE_INT = 7;
int TYPE_FLOAT = 8;
int TYPE_LONG = 9;
int TYPE_DOUBLE = 10;
int OP_NOP = 0x000000;
int OP_MOVE = 0x000001;
int OP_MOVE_RESULT = 0x00000a;
int OP_MOVE_EXCEPTION = 0x00000d;
int OP_RETURN_VOID = 0x00000e;
int OP_RETURN = 0x00000f;
int OP_CONST = 0x000014;
int OP_CONST_STRING = 0x00001a;
int OP_CONST_CLASS = 0x00001c;
int OP_MONITOR_ENTER = 0x00001d;
int OP_MONITOR_EXIT = 0x00001e;
int OP_CHECK_CAST = 0x00001f;
int OP_INSTANCE_OF = 0x000020;
int OP_ARRAY_LENGTH = 0x000021;
int OP_NEW_INSTANCE = 0x000022;
int OP_NEW_ARRAY = 0x000023;
int OP_FILLED_NEW_ARRAY = 0x000024;
int OP_FILL_ARRAY_DATA = 0x000026;
int OP_THROW = 0x000027;
int OP_GOTO = 0x000028;
int OP_PACKED_SWITCH = 0x00002b;
int OP_SPARSE_SWITCH = 0x00002c;
int OP_CMPL = 0xff002f;
int OP_CMPG = 0xff0030;
int OP_CMP = 0xff0031;
int OP_IF_EQ = 0x000032;
int OP_IF_NE = 0x000033;
int OP_IF_LT = 0x000034;
int OP_IF_GE = 0x000035;
int OP_IF_GT = 0x000036;
int OP_IF_LE = 0x000037;
int OP_IF_EQZ = 0x000038;
int OP_IF_NEZ = 0x000039;
int OP_IF_LTZ = 0x00003a;
int OP_IF_GEZ = 0x00003b;
int OP_IF_GTZ = 0x00003c;
int OP_IF_LEZ = 0x00003d;
int OP_AGET = 0x000044;
int OP_APUT = 0x00004b;
int OP_IGET = 0x000052;
int OP_IPUT = 0x000059;
int OP_SGET = 0x000060;
int OP_SPUT = 0x000067;
int OP_INVOKE_VIRTUAL = 0x00006e;
int OP_INVOKE_SUPER = 0x00006f;
int OP_INVOKE_DIRECT = 0x000070;
int OP_INVOKE_STATIC = 0x000071;
int OP_INVOKE_INTERFACE = 0x000072;
int OP_NEG = 0xff007b;
int OP_NOT = 0xff007c;
int OP_X_TO_Y = 0xff0081;
int OP_ADD = 0xff0090;
int OP_SUB = 0xff0091;
int OP_MUL = 0xff0092;
int OP_DIV = 0xff0093;
int OP_REM = 0xff0094;
int OP_AND = 0xff0095;
int OP_OR = 0xff0096;
int OP_XOR = 0xff0097;
int OP_SHL = 0xff0098;
int OP_SHR = 0xff0099;
int OP_USHR = 0xff009a;
int OP_ADD_INT_LIT_X = 0xff00d8;
int OP_RSUB_INT_LIT_X = 0xff00d9;
int OP_MUL_INT_LIT_X = 0xff00da;
int OP_DIV_INT_LIT_X = 0xff00db;
int OP_REM_INT_LIT_X = 0xff00dc;
int OP_AND_INT_LIT_X = 0xff00dd;
int OP_OR_INT_LIT_X = 0xff00de;
int OP_XOR_INT_LIT_X = 0xff00df;
int OP_SHL_INT_LIT_X = 0xff00e0;
int OP_SHR_INT_LIT_X = 0xff00e1;
int OP_USHR_INT_LIT_X = 0xff00e2;
}