Disassembling some more Dalvik
This commit is contained in:
parent
e243a69199
commit
442efe1151
@ -42,22 +42,18 @@
|
||||
{ "add-float", 0xa6, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "add-float/2addr", 0xc6, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "add-int", 0x90, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
#if 1 /* XXX implement correctly */
|
||||
{ "add-int/2addr", 0xb0, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
#endif
|
||||
{ "add-int/lit8", 0xd8, OP1F, OP_REGISTER, OP_REGISTER, OP_U8 },
|
||||
{ "add-int/lit8", 0xd8, OP1F, OP_REG8, OP_REG8, OP_U8 },
|
||||
{ "add-int/lit16", 0xd0, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "add-long", 0x9b, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
#if 1 /* XXX implement correctly */
|
||||
{ "add-long/2addr", 0xbb, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
#endif
|
||||
{ "aget", 0x44, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aget-boolean", 0x47, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aget-byte", 0x48, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aget-char", 0x49, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aget-object", 0x46, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aget-short", 0x4a, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aget-wide", 0x45, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "add-long/2addr", 0xbb, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "aget", 0x44, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aget-boolean", 0x47, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aget-byte", 0x48, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aget-char", 0x49, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aget-object", 0x46, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aget-short", 0x4a, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aget-wide", 0x45, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "and-int", 0x95, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
#if 1 /* XXX implement correctly */
|
||||
{ "and-int/2addr", 0xb5, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
@ -68,22 +64,22 @@
|
||||
#if 1 /* XXX implement correctly */
|
||||
{ "and-long/2addr", 0xc0, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
#endif
|
||||
{ "aput", 0x4b, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aput-boolean", 0x4e, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aput-byte", 0x4f, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aput-char", 0x50, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aput-object", 0x4d, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aput-short", 0x51, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aput-wide", 0x4c, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "aput", 0x4b, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aput-boolean", 0x4e, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aput-byte", 0x4f, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aput-char", 0x50, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aput-object", 0x4d, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aput-short", 0x51, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "aput-wide", 0x4c, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
#if 1 /* XXX implement correctly */
|
||||
{ "array-length", 0x21, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "check-cast", 0x1f, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
#endif
|
||||
{ "cmp-long", 0x31, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "cmpg-double", 0x30, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "cmpg-float", 0x2e, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "cmpl-double", 0x2f, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "cmpl-float", 0x2d, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
{ "cmp-long", 0x31, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "cmpg-double", 0x30, OP1F, OP_REG8, OP_REGISTER, OP_REGISTER },
|
||||
{ "cmpg-float", 0x2e, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "cmpl-double", 0x2f, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "cmpl-float", 0x2d, OP1F, OP_REG8, OP_REG8, OP_REG8 },
|
||||
{ "const", 0x14, OP1F, OP_REGISTER, OP_U32, AOT_NONE },
|
||||
{ "const/4", 0x12, OP1F, OP_REG4, OP_U4, AOT_NONE },
|
||||
{ "const/16", 0x13, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
@ -122,30 +118,29 @@
|
||||
{ "goto", 0x28, OP1F, OP_U8, AOT_NONE, AOT_NONE },
|
||||
{ "goto/16", 0x2900, OP2F, OP_U16, AOT_NONE, AOT_NONE },
|
||||
{ "if-eq", 0x32, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "if-eqz", 0x38, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "if-eqz", 0x38, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "if-ge", 0x35, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "if-gez", 0x3b, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "if-gez", 0x3b, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "if-gt", 0x36, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "if-gtz", 0x3c, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "if-gtz", 0x3c, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "if-le", 0x37, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "if-lez", 0x3d, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "if-lez", 0x3d, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "if-lt", 0x34, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "if-ltz", 0x3a, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "if-ltz", 0x3a, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "if-ne", 0x33, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "if-nez", 0x39, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
#if 1 /* XXX really implement */
|
||||
{ "iget", 0x52, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iget-boolean", 0x55, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iget-byte", 0x56, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iget-char", 0x57, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iget-object", 0x54, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iget-short", 0x58, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iget-wide", 0x53, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "int-to-byte", 0x8d, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "int-to-char", 0x8e, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "int-to-float", 0x82, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "int-to-long", 0x81, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "int-to-short", 0x8f, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "iget", 0x52, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iget-boolean", 0x55, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iget-byte", 0x56, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iget-char", 0x57, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iget-object", 0x54, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iget-short", 0x58, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iget-wide", 0x53, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "int-to-byte", 0x8d, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "int-to-char", 0x8e, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "int-to-float", 0x82, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "int-to-long", 0x81, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "int-to-short", 0x8f, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "invoke-direct", 0x70, OP1F, OP_U8, OP_U16, OP_U16 },
|
||||
{ "invoke-direct/range",0x76, OP1F, OP_U8, OP_U16, OP_U16 },
|
||||
{ "invoke-interface", 0x72, OP1F, OP_U8, OP_U16, OP_U16 },
|
||||
@ -158,17 +153,16 @@
|
||||
{ "invoke-virtual", 0x6e, OP1F, OP_U8, OP_U16, OP_U16 },
|
||||
{ "invoke-virtual/range",
|
||||
0x74, OP1F, OP_U8, OP_U16, OP_U16 },
|
||||
{ "iput", 0x59, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iput-boolean", 0x5c, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iput-byte", 0x5d, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iput-char", 0x5e, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iput-object", 0x5b, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iput-short", 0x5f, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "iput-wide", 0x5a, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "long-to-double", 0x86, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "long-to-float", 0x85, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "long-to-int", 0x84, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
#endif
|
||||
{ "iput", 0x59, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iput-boolean", 0x5c, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iput-byte", 0x5d, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iput-char", 0x5e, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iput-object", 0x5b, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iput-short", 0x5f, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "iput-wide", 0x5a, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "long-to-double", 0x86, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "long-to-float", 0x85, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "long-to-int", 0x84, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
{ "monitor-enter", 0x1d, OP1F, OP_REGISTER, AOT_NONE, AOT_NONE },
|
||||
{ "monitor-exit", 0x1e, OP1F, OP_REGISTER, AOT_NONE, AOT_NONE },
|
||||
{ "move", 0x01, OP1F, OP_REG4, OP_REG4, AOT_NONE },
|
||||
@ -180,9 +174,9 @@
|
||||
{ "move-object/16", 0x09, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "move-object/from16", 0x08, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
#endif
|
||||
{ "move-result", 0x0a, OP1F, OP_REGISTER, AOT_NONE, AOT_NONE },
|
||||
{ "move-result-object", 0x0c, OP1F, OP_REGISTER, AOT_NONE, AOT_NONE },
|
||||
{ "move-result-wide", 0x0b, OP1F, OP_REGISTER, AOT_NONE, AOT_NONE },
|
||||
{ "move-result", 0x0a, OP1F, OP_REG8, AOT_NONE, AOT_NONE },
|
||||
{ "move-result-object", 0x0c, OP1F, OP_REG8, AOT_NONE, AOT_NONE },
|
||||
{ "move-result-wide", 0x0b, OP1F, OP_REG8, AOT_NONE, AOT_NONE },
|
||||
#if 1 /* XXX really implement */
|
||||
{ "move-wide", 0x04, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
#endif
|
||||
@ -205,8 +199,8 @@
|
||||
{ "neg-float", 0x7f, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "neg-int", 0x7b, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "neg-long", 0x7d, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
{ "new-array", 0x23, OP1F, OP_v0, OP_REGISTER, OP_U16 },
|
||||
{ "new-instance", 0x22, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "new-array", 0x23, OP1F, OP_REG4, OP_REG4, OP_U16 },
|
||||
{ "new-instance", 0x22, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
#endif
|
||||
{ "nop", 0x0000, OP2F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||
#if 1 /* XXX really implement */
|
||||
@ -243,13 +237,13 @@
|
||||
{ "return-void", 0x0e00, OP2F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||
{ "return-void", 0x0e, OP1F, OP_U8, AOT_NONE, AOT_NONE },
|
||||
{ "return-wide", 0x10, OP1F, OP_REGISTER, AOT_NONE, AOT_NONE },
|
||||
{ "sget", 0x60, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "sget-boolean", 0x63, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "sget-byte", 0x64, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "sget-char", 0x65, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "sget-object", 0x62, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "sget-short", 0x66, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "sget-wide", 0x61, OP1F, OP_REGISTER, OP_U16, AOT_NONE },
|
||||
{ "sget", 0x60, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "sget-boolean", 0x63, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "sget-byte", 0x64, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "sget-char", 0x65, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "sget-object", 0x62, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "sget-short", 0x66, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "sget-wide", 0x61, OP1F, OP_REG8, OP_U16, AOT_NONE },
|
||||
{ "shl-int", 0x98, OP1F, OP_REGISTER, OP_REGISTER, OP_REGISTER },
|
||||
#if 1 /* XXX implement correctly */
|
||||
{ "shl-int/2addr", 0xb8, OP1F, OP_v0, OP_REGISTER, AOT_NONE },
|
||||
|
Loading…
Reference in New Issue
Block a user