diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2012-11-11 18:08:20 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2012-11-11 18:08:20 (GMT) |
commit | 2e5d98e2367a90e5b258c30dc68e5981d1f63339 (patch) | |
tree | b4ed9410b619af8f80585c27aba29d89b4543783 /src/arch/dalvik/processor.c | |
parent | 85be5ab140bb90ca69e20323eb49999d8520af13 (diff) |
Registered the remaining instructions for a full Dalvik opcodes support.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@281 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/dalvik/processor.c')
-rw-r--r-- | src/arch/dalvik/processor.c | 77 |
1 files changed, 46 insertions, 31 deletions
diff --git a/src/arch/dalvik/processor.c b/src/arch/dalvik/processor.c index fbba5e2..be1e2e5 100644 --- a/src/arch/dalvik/processor.c +++ b/src/arch/dalvik/processor.c @@ -261,13 +261,13 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc [DOP_NOP] = dalvik_read_instr_nop, [DOP_MOVE] = dalvik_read_instr_move, [DOP_MOVE_FROM_16] = dalvik_read_instr_move_from_16, - - + [DOP_MOVE_16] = dalvik_read_instr_move_16, + [DOP_MOVE_WIDE] = dalvik_read_instr_move_wide, [DOP_MOVE_WIDE_FROM_16] = dalvik_read_instr_move_wide_from_16, - + [DOP_MOVE_WIDE_16] = dalvik_read_instr_move_wide_16, [DOP_MOVE_OBJECT] = dalvik_read_instr_move_object, [DOP_MOVE_OBJECT_FROM_16] = dalvik_read_instr_move_object_from_16, - + [DOP_MOVE_OBJECT_16] = dalvik_read_instr_move_object_16, [DOP_MOVE_RESULT] = dalvik_read_instr_move_result, [DOP_MOVE_RESULT_WIDE] = dalvik_read_instr_move_result_wide, [DOP_MOVE_RESULT_OBJECT] = dalvik_read_instr_move_result_object, @@ -287,15 +287,17 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc [DOP_CONST_STRING] = dalvik_read_instr_const_string, [DOP_CONST_STRING_JUMBO] = dalvik_read_instr_const_string_jumbo, [DOP_CONST_CLASS] = dalvik_read_instr_const_class, - + [DOP_MONITOR_ENTER] = dalvik_read_instr_monitor_enter, + [DOP_MONITOR_EXIT] = dalvik_read_instr_monitor_exit, [DOP_CHECK_CAST] = dalvik_read_instr_check_cast, - + [DOP_INSTANCE_OF] = dalvik_read_instr_instance_of, [DOP_ARRAY_LENGTH] = dalvik_read_instr_array_length, [DOP_NEW_INSTANCE] = dalvik_read_instr_new_instance, [DOP_NEW_ARRAY] = dalvik_read_instr_new_array, - + [DOP_FILLED_NEW_ARRAY] = dalvik_read_instr_filled_new_array, + [DOP_FILLED_NEW_ARRAY_RANGE]= dalvik_read_instr_filled_new_array_range, [DOP_FILL_ARRAY_DATA] = dalvik_read_instr_fill_array_data, - + [DOP_THROW] = dalvik_read_instr_throw, [DOP_GOTO] = dalvik_read_instr_goto, [DOP_GOTO_16] = dalvik_read_instr_goto_16, [DOP_GOTO_32] = dalvik_read_instr_goto_32, @@ -318,10 +320,6 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc [DOP_IF_GEZ] = dalvik_read_instr_if_gez, [DOP_IF_GTZ] = dalvik_read_instr_if_gtz, [DOP_IF_LEZ] = dalvik_read_instr_if_lez, - - - - [DOP_AGET] = dalvik_read_instr_aget, [DOP_AGET_WIDE] = dalvik_read_instr_aget_wide, [DOP_AGET_OBJECT] = dalvik_read_instr_aget_object, @@ -374,8 +372,12 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc [DOP_INVOKE_DIRECT_RANGE] = dalvik_read_instr_invoke_direct_range, [DOP_INVOKE_STATIC_RANGE] = dalvik_read_instr_invoke_static_range, [DOP_INVOKE_INTERFACE_RANGE]= dalvik_read_instr_invoke_interface_range, - - + [DOP_NEG_INT] = dalvik_read_instr_neg_int, + [DOP_NOT_INT] = dalvik_read_instr_not_int, + [DOP_NEG_LONG] = dalvik_read_instr_neg_long, + [DOP_NOT_LONG] = dalvik_read_instr_not_long, + [DOP_NEG_FLOAT] = dalvik_read_instr_neg_float, + [DOP_NEG_DOUBLE] = dalvik_read_instr_neg_double, [DOP_TO_INT_LONG] = dalvik_read_instr_to_int_long, [DOP_TO_INT_FLOAT] = dalvik_read_instr_to_int_float, [DOP_TO_INT_DOUBLE] = dalvik_read_instr_to_int_double, @@ -402,19 +404,27 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc [DOP_SHL_INT] = dalvik_read_instr_shl_int, [DOP_SHR_INT] = dalvik_read_instr_shr_int, [DOP_USHR_INT] = dalvik_read_instr_ushr_int, - - - [DOP_ADD_LONG] = dalvik_read_instr_add_long, - [DOP_SUB_LONG] = dalvik_read_instr_sub_long, - [DOP_MUL_LONG] = dalvik_read_instr_mul_long, - [DOP_DIV_LONG] = dalvik_read_instr_div_long, - - - [DOP_SHL_LONG] = dalvik_read_instr_shl_long, - [DOP_SHR_LONG] = dalvik_read_instr_shr_long, - [DOP_USHR_LONG] = dalvik_read_instr_ushr_long, - - + [DOP_ADD_LONG] = dalvik_read_instr_add_long, + [DOP_SUB_LONG] = dalvik_read_instr_sub_long, + [DOP_MUL_LONG] = dalvik_read_instr_mul_long, + [DOP_DIV_LONG] = dalvik_read_instr_div_long, + [DOP_REM_LONG] = dalvik_read_instr_rem_long, + [DOP_AND_LONG] = dalvik_read_instr_and_long, + [DOP_OR_LONG] = dalvik_read_instr_or_long, + [DOP_XOR_LONG] = dalvik_read_instr_xor_long, + [DOP_SHL_LONG] = dalvik_read_instr_shl_long, + [DOP_SHR_LONG] = dalvik_read_instr_shr_long, + [DOP_USHR_LONG] = dalvik_read_instr_ushr_long, + [DOP_ADD_FLOAT] = dalvik_read_instr_add_float, + [DOP_SUB_FLOAT] = dalvik_read_instr_sub_float, + [DOP_MUL_FLOAT] = dalvik_read_instr_mul_float, + [DOP_DIV_FLOAT] = dalvik_read_instr_div_float, + [DOP_REM_FLOAT] = dalvik_read_instr_rem_float, + [DOP_ADD_DOUBLE] = dalvik_read_instr_add_double, + [DOP_SUB_DOUBLE] = dalvik_read_instr_sub_double, + [DOP_MUL_DOUBLE] = dalvik_read_instr_mul_double, + [DOP_DIV_DOUBLE] = dalvik_read_instr_div_double, + [DOP_REM_DOUBLE] = dalvik_read_instr_rem_double, [DOP_ADD_INT_2ADDR] = dalvik_read_instr_add_int_2addr, [DOP_SUB_INT_2ADDR] = dalvik_read_instr_sub_int_2addr, [DOP_MUL_INT_2ADDR] = dalvik_read_instr_mul_int_2addr, @@ -429,19 +439,24 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc [DOP_ADD_LONG_2ADDR] = dalvik_read_instr_add_long_2addr, [DOP_SUB_LONG_2ADDR] = dalvik_read_instr_sub_long_2addr, [DOP_MUL_LONG_2ADDR] = dalvik_read_instr_mul_long_2addr, - + [DOP_DIV_LONG_2ADDR] = dalvik_read_instr_div_long_2addr, + [DOP_REM_LONG_2ADDR] = dalvik_read_instr_rem_long_2addr, + [DOP_AND_LONG_2ADDR] = dalvik_read_instr_and_long_2addr, + [DOP_OR_LONG_2ADDR] = dalvik_read_instr_or_long_2addr, + [DOP_XOR_LONG_2ADDR] = dalvik_read_instr_xor_long_2addr, [DOP_SHL_LONG_2ADDR] = dalvik_read_instr_shl_long_2addr, [DOP_SHR_LONG_2ADDR] = dalvik_read_instr_shr_long_2addr, [DOP_USHR_LONG_2ADDR] = dalvik_read_instr_ushr_long_2addr, - [DOP_ADD_FLOAT_2ADDR] = dalvik_read_instr_add_float_2addr, [DOP_SUB_FLOAT_2ADDR] = dalvik_read_instr_sub_float_2addr, [DOP_MUL_FLOAT_2ADDR] = dalvik_read_instr_mul_float_2addr, - + [DOP_DIV_FLOAT_2ADDR] = dalvik_read_instr_div_float_2addr, + [DOP_REM_FLOAT_2ADDR] = dalvik_read_instr_rem_float_2addr, [DOP_ADD_DOUBLE_2ADDR] = dalvik_read_instr_add_double_2addr, [DOP_SUB_DOUBLE_2ADDR] = dalvik_read_instr_sub_double_2addr, [DOP_MUL_DOUBLE_2ADDR] = dalvik_read_instr_mul_double_2addr, - + [DOP_DIV_DOUBLE_2ADDR] = dalvik_read_instr_div_double_2addr, + [DOP_REM_DOUBLE_2ADDR] = dalvik_read_instr_rem_double_2addr, [DOP_ADD_INT_LIT16] = dalvik_read_instr_add_int_lit16, [DOP_RSUB_INT] = dalvik_read_instr_rsub_int, [DOP_MUL_INT_LIT16] = dalvik_read_instr_mul_int_lit16, |