summaryrefslogtreecommitdiff
path: root/src/arch/dalvik/instruction.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2012-08-03 07:52:52 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2012-08-03 07:52:52 (GMT)
commit7d2b7ca95966c2d687526cd75a96d1ea67d3f503 (patch)
tree256999a2e94c05f0769e415043e8c348279e5789 /src/arch/dalvik/instruction.c
parent8e1f2335773a9025cd46d45a33261725707af3ba (diff)
Supported all kinds of add/sub/mul opcodes.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@254 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/dalvik/instruction.c')
-rw-r--r--src/arch/dalvik/instruction.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/arch/dalvik/instruction.c b/src/arch/dalvik/instruction.c
index 7949225..49b5573 100644
--- a/src/arch/dalvik/instruction.c
+++ b/src/arch/dalvik/instruction.c
@@ -205,6 +205,8 @@ static dalvik_instruction _instructions[DOP_COUNT] = {
[DOP_USHR_INT] = { 0x9a, "ushr-int" },
+ [DOP_ADD_LONG] = { 0x9b, "add-long" },
+ [DOP_SUB_LONG] = { 0x9c, "sub-long" },
[DOP_MUL_LONG] = { 0x9d, "mul-long" },
[DOP_DIV_LONG] = { 0x9e, "div-long" },
@@ -212,26 +214,36 @@ static dalvik_instruction _instructions[DOP_COUNT] = {
[DOP_SHL_LONG] = { 0xa3, "shl-long" },
[DOP_SHR_LONG] = { 0xa4, "shr-long" },
[DOP_USHR_LONG] = { 0xa5, "ushr-long" },
+ [DOP_ADD_FLOAT] = { 0xa6, "add-float" },
- [DOP_ADD_INT_2ADDR] = { 0xb0, "add-int/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_ADD_DOUBLE] = { 0xab, "add-double" },
+ [DOP_ADD_INT_2ADDR] = { 0xb0, "add-int/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_SUB_INT_2ADDR] = { 0xb1, "sub-int/2addr", dalvik_decomp_instr_arithm_2addr },
[DOP_MUL_INT_2ADDR] = { 0xb2, "mul-int/2addr", dalvik_decomp_instr_arithm_2addr },
[DOP_DIV_INT_2ADDR] = { 0xb3, "div-int/2addr", dalvik_decomp_instr_arithm_2addr },
[DOP_REM_INT_2ADDR] = { 0xb4, "rem-int/2addr", dalvik_decomp_instr_arithm_2addr },
[DOP_AND_INT_2ADDR] = { 0xb5, "and-int/2addr", dalvik_decomp_instr_arithm_2addr },
[DOP_OR_INT_2ADDR] = { 0xb6, "or-int/2addr", dalvik_decomp_instr_arithm_2addr },
[DOP_XOR_INT_2ADDR] = { 0xb7, "xor-int/2addr", dalvik_decomp_instr_arithm_2addr },
- [DOP_SHL_INT_2ADDR] = { 0xb8, "shl-int/2addr" },
- [DOP_SHR_INT_2ADDR] = { 0xb9, "shr-int/2addr" },
- [DOP_USHR_INT_2ADDR] = { 0xba, "ushr-int/2addr" },
- [DOP_ADD_LONG_2ADDR] = { 0xbb, "add-long/2addr" },
-
- [DOP_SHL_LONG_2ADDR] = { 0xc3, "shl-long/2addr" },
- [DOP_SHR_LONG_2ADDR] = { 0xc4, "shr-long/2addr" },
- [DOP_USHR_LONG_2ADDR] = { 0xc5, "ushr-long/2addr" },
-
+ [DOP_SHL_INT_2ADDR] = { 0xb8, "shl-int/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_SHR_INT_2ADDR] = { 0xb9, "shr-int/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_USHR_INT_2ADDR] = { 0xba, "ushr-int/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_ADD_LONG_2ADDR] = { 0xbb, "add-long/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_SUB_LONG_2ADDR] = { 0xbc, "sub-long/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_MUL_LONG_2ADDR] = { 0xbd, "mul-long/2addr", dalvik_decomp_instr_arithm_2addr },
+
+ [DOP_SHL_LONG_2ADDR] = { 0xc3, "shl-long/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_SHR_LONG_2ADDR] = { 0xc4, "shr-long/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_USHR_LONG_2ADDR] = { 0xc5, "ushr-long/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_ADD_FLOAT_2ADDR] = { 0xc6, "add-float/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_SUB_FLOAT_2ADDR] = { 0xc7, "sub-float/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_MUL_FLOAT_2ADDR] = { 0xc8, "mul-float/2addr", dalvik_decomp_instr_arithm_2addr },
+
+ [DOP_ADD_DOUBLE_2ADDR] = { 0xcb, "add-double/2addr", dalvik_decomp_instr_arithm_2addr },
+ [DOP_SUB_DOUBLE_2ADDR] = { 0xcc, "sub-double/2addr", dalvik_decomp_instr_arithm_2addr },
[DOP_MUL_DOUBLE_2ADDR] = { 0xcd, "mul-double/2addr", dalvik_decomp_instr_arithm_2addr },
[DOP_ADD_INT_LIT16] = { 0xd0, "add-int/lit16", dalvik_decomp_instr_arithm_lit },