Java-machine opcodes as data types(JAVA_COD.rfi):
Class: Machine OpCodes representation, Status: Complete, Last change: 18.05.2023 21:12:40
type
TOpKind enum u1 of (
aaload = 0x32,
aastore = 0x53,
aconst_null = 0x01,
aload = 0x19,
aload_0 = 0x2a, aload_1 = 0x2b, aload_2 = 0x2c, aload_3 = 0x2d,
anewarray = 0xbd,
areturn = 0xb0,
arraylength = 0xbe,
astore = 0x3a,
astore_0 = 0x4b, astore_1 = 0x4c, astore_2 = 0x4d, astore_3 = 0x4e,
athrow = 0xbf,
baload = 0x33,
bastore = 0x54,
bipush = 0x10,
caload = 0x34,
castore = 0x55,
checkcast = 0xc0,
d2f = 0x90, d2i = 0x8e, d2l = 0x8f,
dadd = 0x63,
daload = 0x31, dastore = 0x52,
dcmpg = 0x98, dcmpl = 0x97,
dconst_0 = 0xe, dconst_1 = 0xf,
ddiv = 0x6f,
dload = 0x18,
dload_0 = 0x26, dload_1 = 0x27, dload_2 = 0x28, dload_3 = 0x29,
dmul = 0x6b,
dneg = 0x77,
drem = 0x73,
dreturn = 0xaf,
dstore = 0x39,
dstore_0 = 0x47, dstore_1 = 0x48, dstore_2 = 0x49, dstore_3 = 0x4a,
dsub = 0x67,
dup = 0x59, dup_x1 = 0x5a, dup_x2 = 0x5b,
dup2 = 0x5c, dup2_x1 = 0x5d, dup2_x2 = 0x5e,
f2d = 0x8d, f2i = 0x8b, f2l = 0x8c,
fadd = 0x62,
faload = 0x30,
fastore = 0x51,
fcmpg = 0x96, fcmpl = 0x95,
fconst_0 = 0xb, fconst_1 = 0xc, fconst_2 = 0xd,
fdiv = 0x6e,
fload = 0x17,
fload_0 = 0x22, fload_1 = 0x23, fload_2 = 0x24, fload_3 = 0x25,
fmul = 0x6a,
fneg = 0x76,
frem = 0x72,
freturn = 0xae,
fstore = 0x38,
fstore_0 = 0x43, fstore_1 = 0x44, fstore_2 = 0x45, fstore_3 = 0x46,
fsub = 0x66,
getfield = 0xb4,
getstatic = 0xb2,
goto = 0xa7, goto_w = 0xc8,
i2b = 0x91, i2c = 0x92, i2d = 0x87, i2f = 0x86,
i2l = 0x85, i2s = 0x93,
iadd = 0x60, iaload = 0x2e, iand = 0x7e, iastore = 0x4f,
iconst_m1 = 0x2, iconst_0 = 0x3, iconst_1 = 0x4,
iconst_2 = 0x5, iconst_3 = 0x6, iconst_4 = 0x7, iconst_5 = 0x8,
idiv = 0x6c,
if_acmpeq = 0xa5, if_acmpne = 0xa6,
if_icmpeq = 0x9f, if_icmpne = 0xa0, if_icmplt = 0xa1,
if_icmpge = 0xa2, if_icmpgt = 0xa3, if_icmple = 0xa4,
ifeq = 0x99, ifne = 0x9a, iflt = 0x9b,
ifge = 0x9c, ifgt = 0x9d, ifle = 0x9e,
ifnonnull = 0xc7, ifnull = 0xc6,
iinc = 0x84,
iload = 0x15,
iload_0 = 0x1a, iload_1 = 0x1b, iload_2 = 0x1c, iload_3 = 0x1d,
imul = 0x68,
ineg = 0x74,
instanceof = 0xc1,
invokedynamic = 0xba,
invokeinterface = 0xb9,
invokespecial = 0xb7,
invokestatic = 0xb8,
invokevirtual = 0xb6,
ior = 0x80,
irem = 0x70,
ireturn = 0xac,
ishl = 0x78, ishr = 0x7a,
istore = 0x36,
istore_0 = 0x3b, istore_1 = 0x3c, istore_2 = 0x3d, istore_3 = 0x3e,
isub = 0x64,
iushr = 0x7c,
ixor = 0x82,
jsr = 0xa8, jsr_w = 0xc9,
l2d = 0x8a, l2f = 0x89, l2i = 0x88,
ladd = 0x61,
laload = 0x2f,
land = 0x7f,
lastore = 0x50,
lcmp = 0x94,
lconst_0 = 0x9, lconst_1 = 0xa,
ldc = 0x12, ldc_w = 0x13,
ldc2_w = 0x14,
ldiv = 0x6d,
lload = 0x16,
lload_0 = 0x1e, lload_1 = 0x1f, lload_2 = 0x20, lload_3 = 0x21,
lmul = 0x69, lneg = 0x75,
lookupswitch = 0xab,
lor = 0x81,
lrem = 0x71,
lreturn = 0xad,
lshl = 0x79,
lshr = 0x7b,
lstore = 0x37,
lstore_0 = 0x3f, lstore_1 = 0x40, lstore_2 = 0x41, lstore_3 = 0x42,
lsub = 0x65,
lushr = 0x7d,
lxor = 0x83,
monitorenter = 0xc2,
monitorexit = 0xc3,
multianewarray = 0xc5,
new = 0xbb,
newarray = 0xbc,
nop = 0x0,
pop = 0x57,
pop2 = 0x58,
putfield = 0xb5,
putstatic = 0xb3,
ret = 0xa9,
return = 0xb1,
saload = 0x35,
sastore = 0x56,
sipush = 0x11,
swap = 0x5f,
tableswitch = 0xaa,
wide = 0xc4
)
TIntSIRec struc
u1 locndx
sint c
ends
TIntIRec struc
u2 locndx
int c
ends
TInterfaceCallRec struc
TIMethRefNdx hMethod
u1 nargs
u1 O
ends
TDynamicCallRec struc
TDMethRefNdx hMethod
u2 O //Zero bytes
ends
TPadZeroes(BaseA) align 4 at @:BaseA;
jmpofs2(OpcOfs) num-(2):displ=(HEX(@+@:OpcOfs,4))
jmpofs4(OpcOfs) num-(4):displ=(HEX(@+@:OpcOfs,8))
TLookupRec(OpcOfs) struc
u4 val
jmpofs4(@:OpcOfs) ofs
ends
TLookupSwitchRec(BaseA) struc
TPadZeroes(@:BaseA) Pad
jmpofs4(&@-1-@:BaseA) Deft
u4 npairs
array[@.npairs]of TLookupRec(&@@-1-@@:BaseA) pair
ends
TMultiANewArrayRec struc
TClassNDX ArrayClass
u1 Dim
ends
TArrayKind enum u1 of (T_BOOLEAN = 4, T_CHAR = 5, T_FLOAT = 6,
T_DOUBLE = 7, T_BYTE = 8, T_SHORT = 9, T_INT = 10, T_LONG = 11)
TTableSwitchRec(BaseA) struc
TPadZeroes(@:BaseA) Pad
jmpofs4(&@-1-@:BaseA) Deft
u4 low
u4 high
array[@.high-@.low+1]of jmpofs4(&@@-1-@@:BaseA) JmpTbl
ends
TWideOp struc %modifies index
TOpKind K
case @.K of
iload, fload, aload, lload, dload,
istore, fstore, astore, lstore, dstore,
ret: u2
iinc: TIntIRec
endc Op
ends
TOp struc
TOpKind K
case @.K of
aload,astore,
bipush,dload,dstore,fload,fstore,
iload,istore,lload,lstore,ret: u1
anewarray,checkcast,instanceof: TClassNDX
getfield,getstatic,putfield,putstatic: TFldRefNdx
invokespecial,invokestatic,invokevirtual: TMethRefNdx
ldc: TConstNDX1
ldc_w,ldc2_w: TConstNDX
new: TClassNDX
goto,if_acmpeq,if_acmpne,
if_icmpeq, if_icmpne, if_icmplt,
if_icmpge, if_icmpgt, if_icmple,
ifeq, ifne, iflt, ifge, ifgt, ifle,
ifnonnull, ifnull,
jsr: jmpofs2(&@@-&@@:@)
goto_w,jsr_w: jmpofs4(&@@-&@@:@)
iinc: TIntSIRec
invokeinterface: TInterfaceCallRec
invokedynamic: TDynamicCallRec
lookupswitch: TLookupSwitchRec(&@@:@)
tableswitch: TTableSwitchRec(&@@:@)
multianewarray: TMultiANewArrayRec
newarray: TArrayKind
sipush: int
wide: TWideOp
endc Arg
ends: displ=(@.K,' ',@.Arg)
TOpSeries(Sz) array of TOp:[@:Size=@:Sz]: displ=('(',
ShowArray(@,(NL,HEX(&@-&@:@,4),': ',valname(@.K),' ',@.Arg)),NL,')')
Other specifications.
FlexT home page,
Author`s home page.