From 674948ba5fc1f4e5cdfad8c43d1a35fb1a0880cf Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Wed, 28 Sep 2011 01:41:12 +0000 Subject: [PATCH] Supporting more operands --- src/arch/dalvik.ins | 428 ++++++++++++++++++++++---------------------- src/arch/i486.ins | 18 +- src/arch/i586.ins | 6 +- src/arch/mips.ins | 2 +- 4 files changed, 227 insertions(+), 227 deletions(-) diff --git a/src/arch/dalvik.ins b/src/arch/dalvik.ins index 1eb5933..6f46d8c 100644 --- a/src/arch/dalvik.ins +++ b/src/arch/dalvik.ins @@ -38,224 +38,224 @@ #define OP_U64 AO_IMMEDIATE(0, 64, 0) -{ "add-double", 0xab, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "add-double/2addr", 0xcb, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "add-float", 0xa6, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "add-float/2addr", 0xc6, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "add-int", 0x90, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "add-int/2addr", 0xb0, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "add-int/lit8", 0xd8, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "add-int/lit16", 0xd0, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "add-long", 0x9b, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "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_REG8, OP_REG8, OP_REG8 }, -{ "and-int/2addr", 0xb5, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "and-int/lit8", 0xdd, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "and-int/lit16", 0xd5, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "and-long", 0xa0, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "and-long/2addr", 0xc0, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "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 }, -{ "array-length", 0x21, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "check-cast", 0x1f, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "cmp-long", 0x31, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "cmpg-double", 0x30, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "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_REG8, OP_U32, AOT_NONE }, -{ "const/4", 0x12, OP1F, OP_REG4, OP_U4, AOT_NONE }, -{ "const/16", 0x13, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "const/high16", 0x15, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "const-class", 0x1c, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "const-string", 0x1a, OP1F, OP_REG8, OP_U16_STR, AOT_NONE }, -{ "const-wide", 0x18, OP1F, OP_REG8, OP_U64, AOT_NONE }, -{ "const-wide/16", 0x16, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "const-wide/32", 0x17, OP1F, OP_REG8, OP_U32, AOT_NONE }, -{ "div-double", 0xae, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "div-double/2addr", 0xce, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "div-float", 0xa9, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "div-float/2addr", 0xc9, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "div-int", 0x93, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "div-int/2addr", 0xb3, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "div-int/lit8", 0xdb, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "div-int/lit16", 0xd3, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "div-long", 0x9e, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "div-long/2addr", 0xbe, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "double-to-float", 0x8c, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "double-to-int", 0x8a, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "double-to-long", 0x8b, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "execute-inline", 0xee, OP1F, OP_U8, OP_U16, OP_U16 }, -{ "fill-array-data", 0x26, OP1F, OP_REG8, OP_U32, AOT_NONE }, -{ "filled-new-array", 0x24, OP1F, OP_REG8, OP_U32, AOT_NONE }, +{ "add-double", 0xab, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "add-double/2addr", 0xcb, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "add-float", 0xa6, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "add-float/2addr", 0xc6, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "add-int", 0x90, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "add-int/2addr", 0xb0, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "add-int/lit8", 0xd8, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "add-int/lit16", 0xd0, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "add-long", 0x9b, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "add-long/2addr", 0xbb, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "aget", 0x44, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aget-boolean", 0x47, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aget-byte", 0x48, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aget-char", 0x49, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aget-object", 0x46, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aget-short", 0x4a, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aget-wide", 0x45, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "and-int", 0x95, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "and-int/2addr", 0xb5, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "and-int/lit8", 0xdd, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "and-int/lit16", 0xd5, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "and-long", 0xa0, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "and-long/2addr", 0xc0, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "aput", 0x4b, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aput-boolean", 0x4e, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aput-byte", 0x4f, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aput-char", 0x50, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aput-object", 0x4d, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aput-short", 0x51, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "aput-wide", 0x4c, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "array-length", 0x21, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "check-cast", 0x1f, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "cmp-long", 0x31, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "cmpg-double", 0x30, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "cmpg-float", 0x2e, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "cmpl-double", 0x2f, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "cmpl-float", 0x2d, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "const", 0x14, OP1F, AO_2(OP_REG8, OP_U32) }, +{ "const/4", 0x12, OP1F, AO_2(OP_REG4, OP_U4) }, +{ "const/16", 0x13, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "const/high16", 0x15, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "const-class", 0x1c, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "const-string", 0x1a, OP1F, AO_2(OP_REG8, OP_U16_STR) }, +{ "const-wide", 0x18, OP1F, AO_2(OP_REG8, OP_U64) }, +{ "const-wide/16", 0x16, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "const-wide/32", 0x17, OP1F, AO_2(OP_REG8, OP_U32) }, +{ "div-double", 0xae, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "div-double/2addr", 0xce, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "div-float", 0xa9, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "div-float/2addr", 0xc9, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "div-int", 0x93, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "div-int/2addr", 0xb3, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "div-int/lit8", 0xdb, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "div-int/lit16", 0xd3, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "div-long", 0x9e, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "div-long/2addr", 0xbe, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "double-to-float", 0x8c, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "double-to-int", 0x8a, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "double-to-long", 0x8b, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "execute-inline", 0xee, OP1F, AO_3(OP_U8, OP_U16, OP_U16) }, +{ "fill-array-data", 0x26, OP1F, AO_2(OP_REG8, OP_U32) }, +{ "filled-new-array", 0x24, OP1F, AO_2(OP_REG8, OP_U32) }, { "filled-new-array-range", - 0x25, OP1F, OP_REG8, OP_U32, AOT_NONE }, -{ "float-to-double", 0x89, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "float-to-int", 0x8a, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "float-to-long", 0x88, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "goto", 0x28, OP1F, OP_U8, AOT_NONE, AOT_NONE }, -{ "goto/16", 0x2900, OP2F, OP_U16, AOT_NONE, AOT_NONE }, -{ "if-eq", 0x32, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "if-eqz", 0x38, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "if-ge", 0x35, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "if-gez", 0x3b, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "if-gt", 0x36, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "if-gtz", 0x3c, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "if-le", 0x37, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "if-lez", 0x3d, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "if-lt", 0x34, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "if-ltz", 0x3a, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "if-ne", 0x33, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "if-nez", 0x39, OP1F, OP_REG8, OP_U16, 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_FUNC, OP_U16 }, -{ "invoke-direct-empty",0xf0, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, -{ "invoke-direct/range",0x76, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, -{ "invoke-interface", 0x72, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, + 0x25, OP1F, AO_2(OP_REG8, OP_U32) }, +{ "float-to-double", 0x89, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "float-to-int", 0x8a, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "float-to-long", 0x88, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "goto", 0x28, OP1F, AO_1(OP_U8) }, +{ "goto/16", 0x2900, OP2F, AO_1(OP_U16) }, +{ "if-eq", 0x32, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "if-eqz", 0x38, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "if-ge", 0x35, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "if-gez", 0x3b, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "if-gt", 0x36, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "if-gtz", 0x3c, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "if-le", 0x37, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "if-lez", 0x3d, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "if-lt", 0x34, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "if-ltz", 0x3a, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "if-ne", 0x33, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "if-nez", 0x39, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "iget", 0x52, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iget-boolean", 0x55, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iget-byte", 0x56, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iget-char", 0x57, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iget-object", 0x54, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iget-short", 0x58, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iget-wide", 0x53, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "int-to-byte", 0x8d, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "int-to-char", 0x8e, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "int-to-float", 0x82, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "int-to-long", 0x81, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "int-to-short", 0x8f, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "invoke-direct", 0x70, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "invoke-direct-empty",0xf0, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "invoke-direct/range",0x76, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "invoke-interface", 0x72, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, { "invoke-interface-range", - 0x78, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, -{ "invoke-static", 0x71, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, -{ "invoke-static/range",0x77, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, -{ "invoke-super", 0x6f, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, -{ "invoke-super/range", 0x75, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, -{ "invoke-virtual", 0x6e, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, + 0x78, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "invoke-static", 0x71, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "invoke-static/range",0x77, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "invoke-super", 0x6f, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "invoke-super/range", 0x75, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "invoke-virtual", 0x6e, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, { "invoke-virtual/range", - 0x74, OP1F, OP_U8, OP_U16_FUNC, OP_U16 }, -{ "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_REG8, AOT_NONE, AOT_NONE }, -{ "monitor-exit", 0x1e, OP1F, OP_REG8, AOT_NONE, AOT_NONE }, -{ "move", 0x01, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "move/16", 0x03, OP1F, OP_REG16, OP_REG8, AOT_NONE }, -{ "move/from16", 0x02, OP1F, OP_REG8, OP_REG16, AOT_NONE }, -{ "move-exception", 0x0d, OP1F, OP_REG8, AOT_NONE, AOT_NONE }, -{ "move-object", 0x07, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "move-object/16", 0x09, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "move-object/from16", 0x08, OP1F, OP_REG4, OP_REG4, 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 }, -{ "move-wide", 0x04, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "move-wide/16", 0x06, OP1F, OP_REG8, OP_REG16, AOT_NONE }, -{ "move-wide/from16", 0x05, OP1F, OP_REG8, OP_REG16, AOT_NONE }, -{ "mul-double", 0xad, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "mul-double/2addr", 0xcd, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "mul-float", 0xa8, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "mul-float/2addr", 0xc8, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "mul-int", 0x92, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "mul-int/2addr", 0xb2, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "mul-int/lit8", 0xda, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "mul-int/lit16", 0xd2, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "mul-long", 0x9d, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "mul-long/2addr", 0xbd, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "neg-double", 0x80, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "neg-float", 0x7f, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "neg-int", 0x7b, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "neg-long", 0x7d, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "new-array", 0x23, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "new-instance", 0x22, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "nop", 0x0000, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, + 0x74, OP1F, AO_3(OP_U8, OP_U16_FUNC, OP_U16) }, +{ "iput", 0x59, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iput-boolean", 0x5c, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iput-byte", 0x5d, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iput-char", 0x5e, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iput-object", 0x5b, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iput-short", 0x5f, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "iput-wide", 0x5a, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "long-to-double", 0x86, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "long-to-float", 0x85, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "long-to-int", 0x84, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "monitor-enter", 0x1d, OP1F, AO_1(OP_REG8) }, +{ "monitor-exit", 0x1e, OP1F, AO_1(OP_REG8) }, +{ "move", 0x01, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "move/16", 0x03, OP1F, AO_2(OP_REG16, OP_REG8) }, +{ "move/from16", 0x02, OP1F, AO_2(OP_REG8, OP_REG16) }, +{ "move-exception", 0x0d, OP1F, AO_1(OP_REG8) }, +{ "move-object", 0x07, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "move-object/16", 0x09, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "move-object/from16", 0x08, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "move-result", 0x0a, OP1F, AO_1(OP_REG8) }, +{ "move-result-object", 0x0c, OP1F, AO_1(OP_REG8) }, +{ "move-result-wide", 0x0b, OP1F, AO_1(OP_REG8) }, +{ "move-wide", 0x04, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "move-wide/16", 0x06, OP1F, AO_2(OP_REG8, OP_REG16) }, +{ "move-wide/from16", 0x05, OP1F, AO_2(OP_REG8, OP_REG16) }, +{ "mul-double", 0xad, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "mul-double/2addr", 0xcd, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "mul-float", 0xa8, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "mul-float/2addr", 0xc8, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "mul-int", 0x92, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "mul-int/2addr", 0xb2, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "mul-int/lit8", 0xda, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "mul-int/lit16", 0xd2, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "mul-long", 0x9d, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "mul-long/2addr", 0xbd, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "neg-double", 0x80, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "neg-float", 0x7f, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "neg-int", 0x7b, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "neg-long", 0x7d, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "new-array", 0x23, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "new-instance", 0x22, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "nop", 0x0000, OP2F, AO_0() }, #if 1 /* XXX really implement */ -{ "not-int", 0x7c, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "not-long", 0x7e, OP1F, OP_REG4, OP_REG4, AOT_NONE }, +{ "not-int", 0x7c, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "not-long", 0x7e, OP1F, AO_2(OP_REG4, OP_REG4) }, #endif -{ "or-int", 0x96, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "or-int/2addr", 0xb6, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "or-int/lit8", 0xdb, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "or-int/lit16", 0xd6, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "or-long", 0xa1, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "or-long/2addr", 0xc1, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "rem-double", 0xaf, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "rem-double/2addr", 0xcf, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "rem-float", 0xaa, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "rem-float/2addr", 0xca, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "rem-int", 0x94, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "rem-int/2addr", 0xb4, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "rem-int/lit8", 0xdc, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "rem-int/lit16", 0xd4, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "rem-long", 0x9f, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "rem-long/2addr", 0xbf, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "return", 0x0f, OP1F, OP_REG8, AOT_NONE, AOT_NONE }, -{ "return-object", 0x11, OP1F, OP_REG8, AOT_NONE, AOT_NONE }, -{ "return-void", 0x0e00, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, -{ "return-wide", 0x10, OP1F, OP_REG8, AOT_NONE, 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_REG8, OP_REG8, OP_REG8 }, -{ "shl-int/2addr", 0xb8, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "shl-int/lit8", 0xe0, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "shl-long", 0xa3, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "shl-long/2addr", 0xc3, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "shr-int", 0x99, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "shr-int/2addr", 0xb9, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "shr-int/lit8", 0xe1, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "shr-long", 0xa4, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "shr-long/2addr", 0xc4, OP1F, OP_REG4, OP_REG4, AOT_NONE }, +{ "or-int", 0x96, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "or-int/2addr", 0xb6, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "or-int/lit8", 0xdb, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "or-int/lit16", 0xd6, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "or-long", 0xa1, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "or-long/2addr", 0xc1, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "rem-double", 0xaf, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "rem-double/2addr", 0xcf, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "rem-float", 0xaa, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "rem-float/2addr", 0xca, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "rem-int", 0x94, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "rem-int/2addr", 0xb4, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "rem-int/lit8", 0xdc, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "rem-int/lit16", 0xd4, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "rem-long", 0x9f, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "rem-long/2addr", 0xbf, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "return", 0x0f, OP1F, AO_1(OP_REG8) }, +{ "return-object", 0x11, OP1F, AO_1(OP_REG8) }, +{ "return-void", 0x0e00, OP2F, AO_0() }, +{ "return-wide", 0x10, OP1F, AO_1(OP_REG8) }, +{ "sget", 0x60, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sget-boolean", 0x63, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sget-byte", 0x64, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sget-char", 0x65, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sget-object", 0x62, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sget-short", 0x66, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sget-wide", 0x61, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "shl-int", 0x98, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "shl-int/2addr", 0xb8, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "shl-int/lit8", 0xe0, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "shl-long", 0xa3, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "shl-long/2addr", 0xc3, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "shr-int", 0x99, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "shr-int/2addr", 0xb9, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "shr-int/lit8", 0xe1, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "shr-long", 0xa4, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "shr-long/2addr", 0xc4, OP1F, AO_2(OP_REG4, OP_REG4) }, #if 1 /* XXX implement correctly */ -{ "sparse-switch", 0x2c, OP1F, OP_REG8, OP_U32, AOT_NONE }, +{ "sparse-switch", 0x2c, OP1F, AO_2(OP_REG8, OP_U32) }, #endif -{ "sput", 0x67, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "sput-boolean", 0x6a, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "sput-byte", 0x6b, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "sput-char", 0x6c, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "sput-object", 0x69, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "sput-short", 0x6d, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "sput-wide", 0x68, OP1F, OP_REG8, OP_U16, AOT_NONE }, -{ "sub-double", 0xac, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "sub-double/2addr", 0xcc, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "sub-float", 0xa7, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "sub-float/2addr", 0xc7, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "sub-int", 0x91, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "sub-int/2addr", 0xb1, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "sub-int/lit8", 0xd9, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "sub-int/lit16", 0xd1, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "sub-long", 0x9c, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "sub-long/2addr", 0xbc, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "throw", 0x27, OP1F, OP_REG8, AOT_NONE, AOT_NONE }, -{ "ushr-int", 0x9a, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "ushr-int/2addr", 0xba, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "ushr-int/lit8", 0xe2, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "ushr-long", 0xa5, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "ushr-long/2addr", 0xc5, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "xor-int", 0x97, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "xor-int/2addr", 0xb7, OP1F, OP_REG4, OP_REG4, AOT_NONE }, -{ "xor-int/lit8", 0xdf, OP1F, OP_REG8, OP_REG8, OP_U8 }, -{ "xor-int/lit16", 0xd7, OP1F, OP_REG4, OP_REG4, OP_U16 }, -{ "xor-long", 0xa2, OP1F, OP_REG8, OP_REG8, OP_REG8 }, -{ "xor-long/2addr", 0xc2, OP1F, OP_REG4, OP_REG4, AOT_NONE }, +{ "sput", 0x67, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sput-boolean", 0x6a, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sput-byte", 0x6b, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sput-char", 0x6c, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sput-object", 0x69, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sput-short", 0x6d, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sput-wide", 0x68, OP1F, AO_2(OP_REG8, OP_U16) }, +{ "sub-double", 0xac, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "sub-double/2addr", 0xcc, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "sub-float", 0xa7, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "sub-float/2addr", 0xc7, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "sub-int", 0x91, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "sub-int/2addr", 0xb1, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "sub-int/lit8", 0xd9, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "sub-int/lit16", 0xd1, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "sub-long", 0x9c, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "sub-long/2addr", 0xbc, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "throw", 0x27, OP1F, AO_1(OP_REG8) }, +{ "ushr-int", 0x9a, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "ushr-int/2addr", 0xba, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "ushr-int/lit8", 0xe2, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "ushr-long", 0xa5, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "ushr-long/2addr", 0xc5, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "xor-int", 0x97, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "xor-int/2addr", 0xb7, OP1F, AO_2(OP_REG4, OP_REG4) }, +{ "xor-int/lit8", 0xdf, OP1F, AO_3(OP_REG8, OP_REG8, OP_U8) }, +{ "xor-int/lit16", 0xd7, OP1F, AO_3(OP_REG4, OP_REG4, OP_U16) }, +{ "xor-long", 0xa2, OP1F, AO_3(OP_REG8, OP_REG8, OP_REG8) }, +{ "xor-long/2addr", 0xc2, OP1F, AO_2(OP_REG4, OP_REG4) }, diff --git a/src/arch/i486.ins b/src/arch/i486.ins index 3e78139..677f27f 100644 --- a/src/arch/i486.ins +++ b/src/arch/i486.ins @@ -17,13 +17,13 @@ /* instructions */ /* BSWAP 0x0fc8 +rd 2 */ -{ "bswap", 0x0fc8, OP2F, OP_eax, AOT_NONE, AOT_NONE }, -{ "bswap", 0x0fc9, OP2F, OP_ecx, AOT_NONE, AOT_NONE }, -{ "bswap", 0x0fca, OP2F, OP_edx, AOT_NONE, AOT_NONE }, -{ "bswap", 0x0fcb, OP2F, OP_ebx, AOT_NONE, AOT_NONE }, -{ "bswap", 0x0fcc, OP2F, OP_esp, AOT_NONE, AOT_NONE }, -{ "bswap", 0x0fcd, OP2F, OP_ebp, AOT_NONE, AOT_NONE }, -{ "bswap", 0x0fce, OP2F, OP_esi, AOT_NONE, AOT_NONE }, -{ "bswap", 0x0fcf, OP2F, OP_edi, AOT_NONE, AOT_NONE }, +{ "bswap", 0x0fc8, OP2F, AO_1(OP_eax) }, +{ "bswap", 0x0fc9, OP2F, AO_1(OP_ecx) }, +{ "bswap", 0x0fca, OP2F, AO_1(OP_edx) }, +{ "bswap", 0x0fcb, OP2F, AO_1(OP_ebx) }, +{ "bswap", 0x0fcc, OP2F, AO_1(OP_esp) }, +{ "bswap", 0x0fcd, OP2F, AO_1(OP_ebp) }, +{ "bswap", 0x0fce, OP2F, AO_1(OP_esi) }, +{ "bswap", 0x0fcf, OP2F, AO_1(OP_edi) }, /* CPUID 0x0fa2 2 */ -{ "cpuid", 0x0fa2, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, +{ "cpuid", 0x0fa2, OP2F, AO_0() }, diff --git a/src/arch/i586.ins b/src/arch/i586.ins index eb0a541..fe8a17d 100644 --- a/src/arch/i586.ins +++ b/src/arch/i586.ins @@ -17,8 +17,8 @@ /* instructions */ /* RDMSR 0x0f32 2 */ -{ "rdmsr", 0x0f32, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, +{ "rdmsr", 0x0f32, OP2F, AO_0() }, /* RDPMC 0x0f33 2 */ -{ "rdpmc", 0x0f33, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, +{ "rdpmc", 0x0f33, OP2F, AO_0() }, /* RDTSC 0x0f31 2 */ -{ "rdtsc", 0x0f31, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, +{ "rdtsc", 0x0f31, OP2F, AO_0() }, diff --git a/src/arch/mips.ins b/src/arch/mips.ins index b4a1636..f88918e 100644 --- a/src/arch/mips.ins +++ b/src/arch/mips.ins @@ -23,4 +23,4 @@ /* instructions */ -{ "nop", 0x00000000, OPNOP, AOT_NONE, AOT_NONE, AOT_NONE }, +{ "nop", 0x00000000, OPNOP, AO_0() },