summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--ChangeLog307
-rw-r--r--configure.ac1
-rw-r--r--plugins/ropgadgets/finder.c2
-rw-r--r--src/analysis/disass/area.c4
-rw-r--r--src/arch/arm/v7/processor.c5
-rw-r--r--src/arch/dalvik/Makefile.am2
-rw-r--r--src/arch/dalvik/instruction.c31
-rw-r--r--src/arch/dalvik/instruction.h3
-rw-r--r--src/arch/dalvik/opcodes/Makefile.am49
-rw-r--r--src/arch/dalvik/opcodes/add.c419
-rw-r--r--src/arch/dalvik/opcodes/aget.c302
-rw-r--r--src/arch/dalvik/opcodes/and.c263
-rw-r--r--src/arch/dalvik/opcodes/aput.c288
-rw-r--r--src/arch/dalvik/opcodes/array.c179
-rw-r--r--src/arch/dalvik/opcodes/check.c66
-rw-r--r--src/arch/dalvik/opcodes/cmp.c224
-rw-r--r--src/arch/dalvik/opcodes/const.c458
-rw-r--r--src/arch/dalvik/opcodes/div.c419
-rw-r--r--src/arch/dalvik/opcodes/goto.c140
-rw-r--r--src/arch/dalvik/opcodes/if.c473
-rw-r--r--src/arch/dalvik/opcodes/iget.c302
-rw-r--r--src/arch/dalvik/opcodes/instanceof.c68
-rw-r--r--src/arch/dalvik/opcodes/invoke.c399
-rw-r--r--src/arch/dalvik/opcodes/iput.c288
-rw-r--r--src/arch/dalvik/opcodes/monitor.c103
-rw-r--r--src/arch/dalvik/opcodes/move.c536
-rw-r--r--src/arch/dalvik/opcodes/mul.c419
-rw-r--r--src/arch/dalvik/opcodes/neg.c185
-rw-r--r--src/arch/dalvik/opcodes/new.c107
-rw-r--r--src/arch/dalvik/opcodes/nop.c66
-rw-r--r--src/arch/dalvik/opcodes/not.c107
-rw-r--r--src/arch/dalvik/opcodes/opcodes.h693
-rw-r--r--src/arch/dalvik/opcodes/or.c263
-rw-r--r--src/arch/dalvik/opcodes/rem.c419
-rw-r--r--src/arch/dalvik/opcodes/ret.c177
-rw-r--r--src/arch/dalvik/opcodes/rsub.c107
-rw-r--r--src/arch/dalvik/opcodes/sget.c302
-rw-r--r--src/arch/dalvik/opcodes/shl.c224
-rw-r--r--src/arch/dalvik/opcodes/shr.c224
-rw-r--r--src/arch/dalvik/opcodes/sput.c288
-rw-r--r--src/arch/dalvik/opcodes/sub.c341
-rw-r--r--src/arch/dalvik/opcodes/switch.c103
-rw-r--r--src/arch/dalvik/opcodes/throw.c66
-rw-r--r--src/arch/dalvik/opcodes/to.c614
-rw-r--r--src/arch/dalvik/opcodes/ushr.c224
-rw-r--r--src/arch/dalvik/opcodes/xor.c263
-rw-r--r--src/arch/dalvik/opdefs/Makefile.am268
-rw-r--r--src/arch/dalvik/opdefs/add_90.d30
-rw-r--r--src/arch/dalvik/opdefs/add_9b.d30
-rw-r--r--src/arch/dalvik/opdefs/add_a6.d30
-rw-r--r--src/arch/dalvik/opdefs/add_ab.d30
-rw-r--r--src/arch/dalvik/opdefs/add_b0.d30
-rw-r--r--src/arch/dalvik/opdefs/add_bb.d30
-rw-r--r--src/arch/dalvik/opdefs/add_c6.d30
-rw-r--r--src/arch/dalvik/opdefs/add_cb.d30
-rw-r--r--src/arch/dalvik/opdefs/add_d0.d30
-rw-r--r--src/arch/dalvik/opdefs/add_d8.d30
-rw-r--r--src/arch/dalvik/opdefs/aget_44.d30
-rw-r--r--src/arch/dalvik/opdefs/aget_45.d30
-rw-r--r--src/arch/dalvik/opdefs/aget_46.d30
-rw-r--r--src/arch/dalvik/opdefs/aget_47.d30
-rw-r--r--src/arch/dalvik/opdefs/aget_48.d30
-rw-r--r--src/arch/dalvik/opdefs/aget_49.d30
-rw-r--r--src/arch/dalvik/opdefs/aget_4a.d30
-rw-r--r--src/arch/dalvik/opdefs/and_95.d30
-rw-r--r--src/arch/dalvik/opdefs/and_a0.d30
-rw-r--r--src/arch/dalvik/opdefs/and_b5.d30
-rw-r--r--src/arch/dalvik/opdefs/and_c0.d30
-rw-r--r--src/arch/dalvik/opdefs/and_d5.d30
-rw-r--r--src/arch/dalvik/opdefs/and_dd.d30
-rw-r--r--src/arch/dalvik/opdefs/aput_4b.d30
-rw-r--r--src/arch/dalvik/opdefs/aput_4c.d30
-rw-r--r--src/arch/dalvik/opdefs/aput_4d.d30
-rw-r--r--src/arch/dalvik/opdefs/aput_4e.d30
-rw-r--r--src/arch/dalvik/opdefs/aput_4f.d30
-rw-r--r--src/arch/dalvik/opdefs/aput_50.d30
-rw-r--r--src/arch/dalvik/opdefs/aput_51.d30
-rw-r--r--src/arch/dalvik/opdefs/array_21.d30
-rw-r--r--src/arch/dalvik/opdefs/array_24.d30
-rw-r--r--src/arch/dalvik/opdefs/array_26.d30
-rw-r--r--src/arch/dalvik/opdefs/check_1f.d30
-rw-r--r--src/arch/dalvik/opdefs/cmp_31.d30
-rw-r--r--src/arch/dalvik/opdefs/cmpg_2e.d30
-rw-r--r--src/arch/dalvik/opdefs/cmpg_30.d30
-rw-r--r--src/arch/dalvik/opdefs/cmpl_2d.d30
-rw-r--r--src/arch/dalvik/opdefs/cmpl_2f.d30
-rw-r--r--src/arch/dalvik/opdefs/const_12.d30
-rw-r--r--src/arch/dalvik/opdefs/const_13.d30
-rw-r--r--src/arch/dalvik/opdefs/const_14.d30
-rw-r--r--src/arch/dalvik/opdefs/const_15.d30
-rw-r--r--src/arch/dalvik/opdefs/const_16.d30
-rw-r--r--src/arch/dalvik/opdefs/const_17.d30
-rw-r--r--src/arch/dalvik/opdefs/const_18.d30
-rw-r--r--src/arch/dalvik/opdefs/const_19.d30
-rw-r--r--src/arch/dalvik/opdefs/const_1a.d30
-rw-r--r--src/arch/dalvik/opdefs/const_1b.d30
-rw-r--r--src/arch/dalvik/opdefs/const_1c.d30
-rw-r--r--src/arch/dalvik/opdefs/div_93.d30
-rw-r--r--src/arch/dalvik/opdefs/div_9e.d30
-rw-r--r--src/arch/dalvik/opdefs/div_a9.d30
-rw-r--r--src/arch/dalvik/opdefs/div_ae.d30
-rw-r--r--src/arch/dalvik/opdefs/div_b3.d30
-rw-r--r--src/arch/dalvik/opdefs/div_be.d30
-rw-r--r--src/arch/dalvik/opdefs/div_c9.d30
-rw-r--r--src/arch/dalvik/opdefs/div_ce.d30
-rw-r--r--src/arch/dalvik/opdefs/div_d3.d30
-rw-r--r--src/arch/dalvik/opdefs/div_db.d30
-rw-r--r--src/arch/dalvik/opdefs/filled_25.d30
-rw-r--r--src/arch/dalvik/opdefs/goto_28.d30
-rw-r--r--src/arch/dalvik/opdefs/goto_29.d30
-rw-r--r--src/arch/dalvik/opdefs/goto_2a.d30
-rw-r--r--src/arch/dalvik/opdefs/if_32.d30
-rw-r--r--src/arch/dalvik/opdefs/if_33.d30
-rw-r--r--src/arch/dalvik/opdefs/if_34.d30
-rw-r--r--src/arch/dalvik/opdefs/if_35.d30
-rw-r--r--src/arch/dalvik/opdefs/if_36.d30
-rw-r--r--src/arch/dalvik/opdefs/if_37.d30
-rw-r--r--src/arch/dalvik/opdefs/if_38.d30
-rw-r--r--src/arch/dalvik/opdefs/if_39.d30
-rw-r--r--src/arch/dalvik/opdefs/if_3a.d30
-rw-r--r--src/arch/dalvik/opdefs/if_3b.d30
-rw-r--r--src/arch/dalvik/opdefs/if_3c.d30
-rw-r--r--src/arch/dalvik/opdefs/if_3d.d30
-rw-r--r--src/arch/dalvik/opdefs/iget_52.d30
-rw-r--r--src/arch/dalvik/opdefs/iget_53.d30
-rw-r--r--src/arch/dalvik/opdefs/iget_54.d30
-rw-r--r--src/arch/dalvik/opdefs/iget_55.d30
-rw-r--r--src/arch/dalvik/opdefs/iget_56.d30
-rw-r--r--src/arch/dalvik/opdefs/iget_57.d30
-rw-r--r--src/arch/dalvik/opdefs/iget_58.d30
-rw-r--r--src/arch/dalvik/opdefs/instanceof_20.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_6e.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_6f.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_70.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_71.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_72.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_74.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_75.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_76.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_77.d30
-rw-r--r--src/arch/dalvik/opdefs/invoke_78.d30
-rw-r--r--src/arch/dalvik/opdefs/iput_59.d30
-rw-r--r--src/arch/dalvik/opdefs/iput_5a.d30
-rw-r--r--src/arch/dalvik/opdefs/iput_5b.d30
-rw-r--r--src/arch/dalvik/opdefs/iput_5c.d30
-rw-r--r--src/arch/dalvik/opdefs/iput_5d.d30
-rw-r--r--src/arch/dalvik/opdefs/iput_5e.d30
-rw-r--r--src/arch/dalvik/opdefs/iput_5f.d30
-rw-r--r--src/arch/dalvik/opdefs/monitor_1d.d30
-rw-r--r--src/arch/dalvik/opdefs/monitor_1e.d30
-rw-r--r--src/arch/dalvik/opdefs/move_01.d30
-rw-r--r--src/arch/dalvik/opdefs/move_02.d30
-rw-r--r--src/arch/dalvik/opdefs/move_03.d30
-rw-r--r--src/arch/dalvik/opdefs/move_04.d30
-rw-r--r--src/arch/dalvik/opdefs/move_05.d30
-rw-r--r--src/arch/dalvik/opdefs/move_06.d30
-rw-r--r--src/arch/dalvik/opdefs/move_07.d30
-rw-r--r--src/arch/dalvik/opdefs/move_08.d30
-rw-r--r--src/arch/dalvik/opdefs/move_09.d30
-rw-r--r--src/arch/dalvik/opdefs/move_0a.d30
-rw-r--r--src/arch/dalvik/opdefs/move_0b.d30
-rw-r--r--src/arch/dalvik/opdefs/move_0c.d30
-rw-r--r--src/arch/dalvik/opdefs/move_0d.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_92.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_9d.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_a8.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_ad.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_b2.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_bd.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_c8.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_cd.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_d2.d30
-rw-r--r--src/arch/dalvik/opdefs/mul_da.d30
-rw-r--r--src/arch/dalvik/opdefs/neg_7b.d30
-rw-r--r--src/arch/dalvik/opdefs/neg_7d.d30
-rw-r--r--src/arch/dalvik/opdefs/neg_7f.d30
-rw-r--r--src/arch/dalvik/opdefs/neg_80.d30
-rw-r--r--src/arch/dalvik/opdefs/new_22.d30
-rw-r--r--src/arch/dalvik/opdefs/new_23.d30
-rw-r--r--src/arch/dalvik/opdefs/nop_00.d30
-rw-r--r--src/arch/dalvik/opdefs/not_7c.d30
-rw-r--r--src/arch/dalvik/opdefs/not_7e.d30
-rw-r--r--src/arch/dalvik/opdefs/or_96.d30
-rw-r--r--src/arch/dalvik/opdefs/or_a1.d30
-rw-r--r--src/arch/dalvik/opdefs/or_b6.d30
-rw-r--r--src/arch/dalvik/opdefs/or_c1.d30
-rw-r--r--src/arch/dalvik/opdefs/or_d6.d30
-rw-r--r--src/arch/dalvik/opdefs/or_de.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_94.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_9f.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_aa.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_af.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_b4.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_bf.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_ca.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_cf.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_d4.d30
-rw-r--r--src/arch/dalvik/opdefs/rem_dc.d30
-rw-r--r--src/arch/dalvik/opdefs/return_0e.d30
-rw-r--r--src/arch/dalvik/opdefs/return_0f.d30
-rw-r--r--src/arch/dalvik/opdefs/return_10.d30
-rw-r--r--src/arch/dalvik/opdefs/return_11.d30
-rw-r--r--src/arch/dalvik/opdefs/rsub_d1.d30
-rw-r--r--src/arch/dalvik/opdefs/rsub_d9.d30
-rw-r--r--src/arch/dalvik/opdefs/sget_60.d30
-rw-r--r--src/arch/dalvik/opdefs/sget_61.d30
-rw-r--r--src/arch/dalvik/opdefs/sget_62.d30
-rw-r--r--src/arch/dalvik/opdefs/sget_63.d30
-rw-r--r--src/arch/dalvik/opdefs/sget_64.d30
-rw-r--r--src/arch/dalvik/opdefs/sget_65.d30
-rw-r--r--src/arch/dalvik/opdefs/sget_66.d30
-rw-r--r--src/arch/dalvik/opdefs/shl_98.d30
-rw-r--r--src/arch/dalvik/opdefs/shl_a3.d30
-rw-r--r--src/arch/dalvik/opdefs/shl_b8.d30
-rw-r--r--src/arch/dalvik/opdefs/shl_c3.d30
-rw-r--r--src/arch/dalvik/opdefs/shl_e0.d30
-rw-r--r--src/arch/dalvik/opdefs/shr_99.d30
-rw-r--r--src/arch/dalvik/opdefs/shr_a4.d30
-rw-r--r--src/arch/dalvik/opdefs/shr_b9.d30
-rw-r--r--src/arch/dalvik/opdefs/shr_c4.d30
-rw-r--r--src/arch/dalvik/opdefs/shr_e1.d30
-rw-r--r--src/arch/dalvik/opdefs/sput_67.d30
-rw-r--r--src/arch/dalvik/opdefs/sput_68.d30
-rw-r--r--src/arch/dalvik/opdefs/sput_69.d30
-rw-r--r--src/arch/dalvik/opdefs/sput_6a.d30
-rw-r--r--src/arch/dalvik/opdefs/sput_6b.d30
-rw-r--r--src/arch/dalvik/opdefs/sput_6c.d30
-rw-r--r--src/arch/dalvik/opdefs/sput_6d.d30
-rw-r--r--src/arch/dalvik/opdefs/sub_91.d30
-rw-r--r--src/arch/dalvik/opdefs/sub_9c.d30
-rw-r--r--src/arch/dalvik/opdefs/sub_a7.d30
-rw-r--r--src/arch/dalvik/opdefs/sub_ac.d30
-rw-r--r--src/arch/dalvik/opdefs/sub_b1.d30
-rw-r--r--src/arch/dalvik/opdefs/sub_bc.d30
-rw-r--r--src/arch/dalvik/opdefs/sub_c7.d30
-rw-r--r--src/arch/dalvik/opdefs/sub_cc.d30
-rw-r--r--src/arch/dalvik/opdefs/switch_2b.d30
-rw-r--r--src/arch/dalvik/opdefs/switch_2c.d30
-rw-r--r--src/arch/dalvik/opdefs/throw_27.d30
-rw-r--r--src/arch/dalvik/opdefs/to_81.d30
-rw-r--r--src/arch/dalvik/opdefs/to_82.d30
-rw-r--r--src/arch/dalvik/opdefs/to_83.d30
-rw-r--r--src/arch/dalvik/opdefs/to_84.d30
-rw-r--r--src/arch/dalvik/opdefs/to_85.d30
-rw-r--r--src/arch/dalvik/opdefs/to_86.d30
-rw-r--r--src/arch/dalvik/opdefs/to_87.d30
-rw-r--r--src/arch/dalvik/opdefs/to_88.d30
-rw-r--r--src/arch/dalvik/opdefs/to_89.d30
-rw-r--r--src/arch/dalvik/opdefs/to_8a.d30
-rw-r--r--src/arch/dalvik/opdefs/to_8b.d30
-rw-r--r--src/arch/dalvik/opdefs/to_8c.d30
-rw-r--r--src/arch/dalvik/opdefs/to_8d.d30
-rw-r--r--src/arch/dalvik/opdefs/to_8e.d30
-rw-r--r--src/arch/dalvik/opdefs/to_8f.d30
-rw-r--r--src/arch/dalvik/opdefs/ushr_9a.d30
-rw-r--r--src/arch/dalvik/opdefs/ushr_a5.d30
-rw-r--r--src/arch/dalvik/opdefs/ushr_ba.d30
-rw-r--r--src/arch/dalvik/opdefs/ushr_c5.d30
-rw-r--r--src/arch/dalvik/opdefs/ushr_e2.d30
-rw-r--r--src/arch/dalvik/opdefs/xor_97.d30
-rw-r--r--src/arch/dalvik/opdefs/xor_a2.d30
-rw-r--r--src/arch/dalvik/opdefs/xor_b7.d30
-rw-r--r--src/arch/dalvik/opdefs/xor_c2.d30
-rw-r--r--src/arch/dalvik/opdefs/xor_d7.d30
-rw-r--r--src/arch/dalvik/opdefs/xor_df.d30
-rw-r--r--src/arch/dalvik/processor.c198
-rw-r--r--src/arch/dalvik/pseudo/fill.c32
-rw-r--r--src/arch/dalvik/pseudo/fill.h2
-rw-r--r--src/arch/dalvik/pseudo/switch.c35
-rw-r--r--src/arch/dalvik/pseudo/switch.h2
-rw-r--r--src/arch/processor-int.h2
-rw-r--r--src/arch/processor.c5
-rw-r--r--src/arch/processor.h2
-rw-r--r--src/format/dex/method.c2
-rw-r--r--src/glibext/gbufferline.c16
-rw-r--r--tools/d2c/d2c.mk2
277 files changed, 7297 insertions, 10333 deletions
diff --git a/.gitignore b/.gitignore
index 8461547..7581b5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -58,6 +58,7 @@ __pycache__
.gen/
fmk.done
src/arch/arm/v7/opcodes/
+src/arch/dalvik/opcodes/
# GLib
src/glibext/chrysamarshal.*
diff --git a/ChangeLog b/ChangeLog
index 8d049fc..d6d3e0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,310 @@
+16-02-01 Cyrille Bagard <nocbos@gmail.com>
+
+ * .gitignore:
+ Ignore all the opcodes generated by d2c for Dalvik.
+
+ * configure.ac:
+ Add the new Makefile from the 'src/arch/dalvik/opdefs' directory.
+
+ * plugins/ropgadgets/finder.c:
+ * src/analysis/disass/area.c:
+ * src/arch/arm/v7/processor.c:
+ Update code.
+
+ * src/arch/dalvik/Makefile.am:
+ Add the new directory 'opdefs' into SUBDIRS.
+
+ * src/arch/dalvik/instruction.c:
+ * src/arch/dalvik/instruction.h:
+ Remove useless functions and some internal accesses to the old table
+ called '_instructions'.
+
+ * src/arch/dalvik/opcodes/Makefile.am:
+ Update code.
+
+ * src/arch/dalvik/opcodes/add.c:
+ * src/arch/dalvik/opcodes/aget.c:
+ * src/arch/dalvik/opcodes/and.c:
+ * src/arch/dalvik/opcodes/aput.c:
+ * src/arch/dalvik/opcodes/array.c:
+ * src/arch/dalvik/opcodes/check.c:
+ * src/arch/dalvik/opcodes/cmp.c:
+ * src/arch/dalvik/opcodes/const.c:
+ * src/arch/dalvik/opcodes/div.c:
+ * src/arch/dalvik/opcodes/goto.c:
+ * src/arch/dalvik/opcodes/if.c:
+ * src/arch/dalvik/opcodes/iget.c:
+ * src/arch/dalvik/opcodes/instanceof.c:
+ * src/arch/dalvik/opcodes/invoke.c:
+ * src/arch/dalvik/opcodes/iput.c:
+ * src/arch/dalvik/opcodes/monitor.c:
+ * src/arch/dalvik/opcodes/move.c:
+ * src/arch/dalvik/opcodes/mul.c:
+ * src/arch/dalvik/opcodes/neg.c:
+ * src/arch/dalvik/opcodes/new.c:
+ * src/arch/dalvik/opcodes/nop.c:
+ * src/arch/dalvik/opcodes/not.c:
+ * src/arch/dalvik/opcodes/opcodes.h:
+ * src/arch/dalvik/opcodes/or.c:
+ * src/arch/dalvik/opcodes/rem.c:
+ * src/arch/dalvik/opcodes/ret.c:
+ * src/arch/dalvik/opcodes/rsub.c:
+ * src/arch/dalvik/opcodes/sget.c:
+ * src/arch/dalvik/opcodes/shl.c:
+ * src/arch/dalvik/opcodes/shr.c:
+ * src/arch/dalvik/opcodes/sput.c:
+ * src/arch/dalvik/opcodes/sub.c:
+ * src/arch/dalvik/opcodes/switch.c:
+ * src/arch/dalvik/opcodes/throw.c:
+ * src/arch/dalvik/opcodes/to.c:
+ * src/arch/dalvik/opcodes/ushr.c:
+ * src/arch/dalvik/opcodes/xor.c:
+ Deleted entries.
+
+ * src/arch/dalvik/opdefs/Makefile.am:
+ * src/arch/dalvik/opdefs/add_90.d:
+ * src/arch/dalvik/opdefs/add_9b.d:
+ * src/arch/dalvik/opdefs/add_a6.d:
+ * src/arch/dalvik/opdefs/add_ab.d:
+ * src/arch/dalvik/opdefs/add_b0.d:
+ * src/arch/dalvik/opdefs/add_bb.d:
+ * src/arch/dalvik/opdefs/add_c6.d:
+ * src/arch/dalvik/opdefs/add_cb.d:
+ * src/arch/dalvik/opdefs/add_d0.d:
+ * src/arch/dalvik/opdefs/add_d8.d:
+ * src/arch/dalvik/opdefs/aget_44.d:
+ * src/arch/dalvik/opdefs/aget_45.d:
+ * src/arch/dalvik/opdefs/aget_46.d:
+ * src/arch/dalvik/opdefs/aget_47.d:
+ * src/arch/dalvik/opdefs/aget_48.d:
+ * src/arch/dalvik/opdefs/aget_49.d:
+ * src/arch/dalvik/opdefs/aget_4a.d:
+ * src/arch/dalvik/opdefs/and_95.d:
+ * src/arch/dalvik/opdefs/and_a0.d:
+ * src/arch/dalvik/opdefs/and_b5.d:
+ * src/arch/dalvik/opdefs/and_c0.d:
+ * src/arch/dalvik/opdefs/and_d5.d:
+ * src/arch/dalvik/opdefs/and_dd.d:
+ * src/arch/dalvik/opdefs/aput_4b.d:
+ * src/arch/dalvik/opdefs/aput_4c.d:
+ * src/arch/dalvik/opdefs/aput_4d.d:
+ * src/arch/dalvik/opdefs/aput_4e.d:
+ * src/arch/dalvik/opdefs/aput_4f.d:
+ * src/arch/dalvik/opdefs/aput_50.d:
+ * src/arch/dalvik/opdefs/aput_51.d:
+ * src/arch/dalvik/opdefs/array_21.d:
+ * src/arch/dalvik/opdefs/array_24.d:
+ * src/arch/dalvik/opdefs/array_26.d:
+ * src/arch/dalvik/opdefs/check_1f.d:
+ * src/arch/dalvik/opdefs/cmp_31.d:
+ * src/arch/dalvik/opdefs/cmpg_2e.d:
+ * src/arch/dalvik/opdefs/cmpg_30.d:
+ * src/arch/dalvik/opdefs/cmpl_2d.d:
+ * src/arch/dalvik/opdefs/cmpl_2f.d:
+ * src/arch/dalvik/opdefs/const_12.d:
+ * src/arch/dalvik/opdefs/const_13.d:
+ * src/arch/dalvik/opdefs/const_14.d:
+ * src/arch/dalvik/opdefs/const_15.d:
+ * src/arch/dalvik/opdefs/const_16.d:
+ * src/arch/dalvik/opdefs/const_17.d:
+ * src/arch/dalvik/opdefs/const_18.d:
+ * src/arch/dalvik/opdefs/const_19.d:
+ * src/arch/dalvik/opdefs/const_1a.d:
+ * src/arch/dalvik/opdefs/const_1b.d:
+ * src/arch/dalvik/opdefs/const_1c.d:
+ * src/arch/dalvik/opdefs/div_93.d:
+ * src/arch/dalvik/opdefs/div_9e.d:
+ * src/arch/dalvik/opdefs/div_a9.d:
+ * src/arch/dalvik/opdefs/div_ae.d:
+ * src/arch/dalvik/opdefs/div_b3.d:
+ * src/arch/dalvik/opdefs/div_be.d:
+ * src/arch/dalvik/opdefs/div_c9.d:
+ * src/arch/dalvik/opdefs/div_ce.d:
+ * src/arch/dalvik/opdefs/div_d3.d:
+ * src/arch/dalvik/opdefs/div_db.d:
+ * src/arch/dalvik/opdefs/filled_25.d:
+ * src/arch/dalvik/opdefs/goto_28.d:
+ * src/arch/dalvik/opdefs/goto_29.d:
+ * src/arch/dalvik/opdefs/goto_2a.d:
+ * src/arch/dalvik/opdefs/if_32.d:
+ * src/arch/dalvik/opdefs/if_33.d:
+ * src/arch/dalvik/opdefs/if_34.d:
+ * src/arch/dalvik/opdefs/if_35.d:
+ * src/arch/dalvik/opdefs/if_36.d:
+ * src/arch/dalvik/opdefs/if_37.d:
+ * src/arch/dalvik/opdefs/if_38.d:
+ * src/arch/dalvik/opdefs/if_39.d:
+ * src/arch/dalvik/opdefs/if_3a.d:
+ * src/arch/dalvik/opdefs/if_3b.d:
+ * src/arch/dalvik/opdefs/if_3c.d:
+ * src/arch/dalvik/opdefs/if_3d.d:
+ * src/arch/dalvik/opdefs/iget_52.d:
+ * src/arch/dalvik/opdefs/iget_53.d:
+ * src/arch/dalvik/opdefs/iget_54.d:
+ * src/arch/dalvik/opdefs/iget_55.d:
+ * src/arch/dalvik/opdefs/iget_56.d:
+ * src/arch/dalvik/opdefs/iget_57.d:
+ * src/arch/dalvik/opdefs/iget_58.d:
+ * src/arch/dalvik/opdefs/instanceof_20.d:
+ * src/arch/dalvik/opdefs/invoke_6e.d:
+ * src/arch/dalvik/opdefs/invoke_6f.d:
+ * src/arch/dalvik/opdefs/invoke_70.d:
+ * src/arch/dalvik/opdefs/invoke_71.d:
+ * src/arch/dalvik/opdefs/invoke_72.d:
+ * src/arch/dalvik/opdefs/invoke_74.d:
+ * src/arch/dalvik/opdefs/invoke_75.d:
+ * src/arch/dalvik/opdefs/invoke_76.d:
+ * src/arch/dalvik/opdefs/invoke_77.d:
+ * src/arch/dalvik/opdefs/invoke_78.d:
+ * src/arch/dalvik/opdefs/iput_59.d:
+ * src/arch/dalvik/opdefs/iput_5a.d:
+ * src/arch/dalvik/opdefs/iput_5b.d:
+ * src/arch/dalvik/opdefs/iput_5c.d:
+ * src/arch/dalvik/opdefs/iput_5d.d:
+ * src/arch/dalvik/opdefs/iput_5e.d:
+ * src/arch/dalvik/opdefs/iput_5f.d:
+ * src/arch/dalvik/opdefs/monitor_1d.d:
+ * src/arch/dalvik/opdefs/monitor_1e.d:
+ * src/arch/dalvik/opdefs/move_01.d:
+ * src/arch/dalvik/opdefs/move_02.d:
+ * src/arch/dalvik/opdefs/move_03.d:
+ * src/arch/dalvik/opdefs/move_04.d:
+ * src/arch/dalvik/opdefs/move_05.d:
+ * src/arch/dalvik/opdefs/move_06.d:
+ * src/arch/dalvik/opdefs/move_07.d:
+ * src/arch/dalvik/opdefs/move_08.d:
+ * src/arch/dalvik/opdefs/move_09.d:
+ * src/arch/dalvik/opdefs/move_0a.d:
+ * src/arch/dalvik/opdefs/move_0b.d:
+ * src/arch/dalvik/opdefs/move_0c.d:
+ * src/arch/dalvik/opdefs/move_0d.d:
+ * src/arch/dalvik/opdefs/mul_92.d:
+ * src/arch/dalvik/opdefs/mul_9d.d:
+ * src/arch/dalvik/opdefs/mul_a8.d:
+ * src/arch/dalvik/opdefs/mul_ad.d:
+ * src/arch/dalvik/opdefs/mul_b2.d:
+ * src/arch/dalvik/opdefs/mul_bd.d:
+ * src/arch/dalvik/opdefs/mul_c8.d:
+ * src/arch/dalvik/opdefs/mul_cd.d:
+ * src/arch/dalvik/opdefs/mul_d2.d:
+ * src/arch/dalvik/opdefs/mul_da.d:
+ * src/arch/dalvik/opdefs/neg_7b.d:
+ * src/arch/dalvik/opdefs/neg_7d.d:
+ * src/arch/dalvik/opdefs/neg_7f.d:
+ * src/arch/dalvik/opdefs/neg_80.d:
+ * src/arch/dalvik/opdefs/new_22.d:
+ * src/arch/dalvik/opdefs/new_23.d:
+ * src/arch/dalvik/opdefs/nop_00.d:
+ * src/arch/dalvik/opdefs/not_7c.d:
+ * src/arch/dalvik/opdefs/not_7e.d:
+ * src/arch/dalvik/opdefs/or_96.d:
+ * src/arch/dalvik/opdefs/or_a1.d:
+ * src/arch/dalvik/opdefs/or_b6.d:
+ * src/arch/dalvik/opdefs/or_c1.d:
+ * src/arch/dalvik/opdefs/or_d6.d:
+ * src/arch/dalvik/opdefs/or_de.d:
+ * src/arch/dalvik/opdefs/rem_94.d:
+ * src/arch/dalvik/opdefs/rem_9f.d:
+ * src/arch/dalvik/opdefs/rem_aa.d:
+ * src/arch/dalvik/opdefs/rem_af.d:
+ * src/arch/dalvik/opdefs/rem_b4.d:
+ * src/arch/dalvik/opdefs/rem_bf.d:
+ * src/arch/dalvik/opdefs/rem_ca.d:
+ * src/arch/dalvik/opdefs/rem_cf.d:
+ * src/arch/dalvik/opdefs/rem_d4.d:
+ * src/arch/dalvik/opdefs/rem_dc.d:
+ * src/arch/dalvik/opdefs/return_0e.d:
+ * src/arch/dalvik/opdefs/return_0f.d:
+ * src/arch/dalvik/opdefs/return_10.d:
+ * src/arch/dalvik/opdefs/return_11.d:
+ * src/arch/dalvik/opdefs/rsub_d1.d:
+ * src/arch/dalvik/opdefs/rsub_d9.d:
+ * src/arch/dalvik/opdefs/sget_60.d:
+ * src/arch/dalvik/opdefs/sget_61.d:
+ * src/arch/dalvik/opdefs/sget_62.d:
+ * src/arch/dalvik/opdefs/sget_63.d:
+ * src/arch/dalvik/opdefs/sget_64.d:
+ * src/arch/dalvik/opdefs/sget_65.d:
+ * src/arch/dalvik/opdefs/sget_66.d:
+ * src/arch/dalvik/opdefs/shl_98.d:
+ * src/arch/dalvik/opdefs/shl_a3.d:
+ * src/arch/dalvik/opdefs/shl_b8.d:
+ * src/arch/dalvik/opdefs/shl_c3.d:
+ * src/arch/dalvik/opdefs/shl_e0.d:
+ * src/arch/dalvik/opdefs/shr_99.d:
+ * src/arch/dalvik/opdefs/shr_a4.d:
+ * src/arch/dalvik/opdefs/shr_b9.d:
+ * src/arch/dalvik/opdefs/shr_c4.d:
+ * src/arch/dalvik/opdefs/shr_e1.d:
+ * src/arch/dalvik/opdefs/sput_67.d:
+ * src/arch/dalvik/opdefs/sput_68.d:
+ * src/arch/dalvik/opdefs/sput_69.d:
+ * src/arch/dalvik/opdefs/sput_6a.d:
+ * src/arch/dalvik/opdefs/sput_6b.d:
+ * src/arch/dalvik/opdefs/sput_6c.d:
+ * src/arch/dalvik/opdefs/sput_6d.d:
+ * src/arch/dalvik/opdefs/sub_91.d:
+ * src/arch/dalvik/opdefs/sub_9c.d:
+ * src/arch/dalvik/opdefs/sub_a7.d:
+ * src/arch/dalvik/opdefs/sub_ac.d:
+ * src/arch/dalvik/opdefs/sub_b1.d:
+ * src/arch/dalvik/opdefs/sub_bc.d:
+ * src/arch/dalvik/opdefs/sub_c7.d:
+ * src/arch/dalvik/opdefs/sub_cc.d:
+ * src/arch/dalvik/opdefs/switch_2b.d:
+ * src/arch/dalvik/opdefs/switch_2c.d:
+ * src/arch/dalvik/opdefs/throw_27.d:
+ * src/arch/dalvik/opdefs/to_81.d:
+ * src/arch/dalvik/opdefs/to_82.d:
+ * src/arch/dalvik/opdefs/to_83.d:
+ * src/arch/dalvik/opdefs/to_84.d:
+ * src/arch/dalvik/opdefs/to_85.d:
+ * src/arch/dalvik/opdefs/to_86.d:
+ * src/arch/dalvik/opdefs/to_87.d:
+ * src/arch/dalvik/opdefs/to_88.d:
+ * src/arch/dalvik/opdefs/to_89.d:
+ * src/arch/dalvik/opdefs/to_8a.d:
+ * src/arch/dalvik/opdefs/to_8b.d:
+ * src/arch/dalvik/opdefs/to_8c.d:
+ * src/arch/dalvik/opdefs/to_8d.d:
+ * src/arch/dalvik/opdefs/to_8e.d:
+ * src/arch/dalvik/opdefs/to_8f.d:
+ * src/arch/dalvik/opdefs/ushr_9a.d:
+ * src/arch/dalvik/opdefs/ushr_a5.d:
+ * src/arch/dalvik/opdefs/ushr_ba.d:
+ * src/arch/dalvik/opdefs/ushr_c5.d:
+ * src/arch/dalvik/opdefs/ushr_e2.d:
+ * src/arch/dalvik/opdefs/xor_97.d:
+ * src/arch/dalvik/opdefs/xor_a2.d:
+ * src/arch/dalvik/opdefs/xor_b7.d:
+ * src/arch/dalvik/opdefs/xor_c2.d:
+ * src/arch/dalvik/opdefs/xor_d7.d:
+ * src/arch/dalvik/opdefs/xor_df.d:
+ New entries: define all Dalvik instructions to get generated by d2c.
+
+ * src/arch/dalvik/processor.c:
+ Update the decoding of Dalvik instructions.
+
+ * src/arch/dalvik/pseudo/fill.c:
+ * src/arch/dalvik/pseudo/fill.h:
+ * src/arch/dalvik/pseudo/switch.c:
+ * src/arch/dalvik/pseudo/switch.h:
+ Update the code. Disable some functions to get the program working.
+
+ * src/arch/processor-int.h:
+ * src/arch/processor.c:
+ * src/arch/processor.h:
+ Provide the relative binary format when disassembling instructions.
+
+ * src/format/dex/method.c:
+ Typo.
+
+ * src/glibext/gbufferline.c:
+ Avoid to define empty segment in some extreme cases.
+
+ * tools/d2c/d2c.mk:
+ Typo.
+
16-01-30 Cyrille Bagard <nocbos@gmail.com>
* configure.ac:
diff --git a/configure.ac b/configure.ac
index 948d612..30ad629 100644
--- a/configure.ac
+++ b/configure.ac
@@ -313,6 +313,7 @@ AC_CONFIG_FILES([Makefile
src/arch/arm/v7/operands/Makefile
src/arch/dalvik/Makefile
src/arch/dalvik/decomp/Makefile
+ src/arch/dalvik/opdefs/Makefile
src/arch/dalvik/opcodes/Makefile
src/arch/dalvik/operands/Makefile
src/arch/dalvik/pseudo/Makefile
diff --git a/plugins/ropgadgets/finder.c b/plugins/ropgadgets/finder.c
index 3fbc0fd..35d1f7f 100644
--- a/plugins/ropgadgets/finder.c
+++ b/plugins/ropgadgets/finder.c
@@ -86,7 +86,7 @@ static GArchInstruction *disassemble_instruction_in_domain(const search_domain *
ctx = domain->ctx; /* TODO : copie */
- result = g_arch_processor_disassemble(domain->proc, ctx, domain->content, pos);
+ result = g_arch_processor_disassemble(domain->proc, ctx, domain->content, pos, G_EXE_FORMAT(domain->format));
if (result != NULL)
{
diff --git a/src/analysis/disass/area.c b/src/analysis/disass/area.c
index eddad5c..c2fee99 100644
--- a/src/analysis/disass/area.c
+++ b/src/analysis/disass/area.c
@@ -360,7 +360,7 @@ void load_code_from_mem_area_v2(mem_area_v2 *area, mem_area_v2 *list, size_t cou
copy_vmpa(&prev, &pos);
- instr = g_arch_processor_disassemble(proc, ctx, content, &pos);
+ instr = g_arch_processor_disassemble(proc, ctx, content, &pos, G_EXE_FORMAT(format));
if (instr == NULL) break;
/* Enregistrement des positions et adresses */
@@ -1640,7 +1640,7 @@ bool load_code_from_mem_area(mem_area **list, size_t *count, size_t *index, cons
copy_vmpa(&prev, &pos);
- instr = g_arch_processor_disassemble(proc, ctx, content, &pos);
+ instr = g_arch_processor_disassemble(proc, ctx, content, &pos, G_EXE_FORMAT(format));
/* TODO : valider que la taille de l'instruction obtenue ne dépasse pas la zone */
diff --git a/src/arch/arm/v7/processor.c b/src/arch/arm/v7/processor.c
index 195b87c..e9781f3 100644
--- a/src/arch/arm/v7/processor.c
+++ b/src/arch/arm/v7/processor.c
@@ -68,7 +68,7 @@ static void g_armv7_processor_finalize(GArmV7Processor *);
static GArmV7Context *g_armv7_processor_get_context(const GArmV7Processor *);
/* Décode une instruction dans un flux de données. */
-static GArchInstruction *g_armv7_processor_disassemble(const GArmV7Processor *, GArmV7Context *, const GBinContent *, vmpa2t *);
+static GArchInstruction *g_armv7_processor_disassemble(const GArmV7Processor *, GArmV7Context *, const GBinContent *, vmpa2t *, GExeFormat *);
@@ -222,6 +222,7 @@ static GArmV7Context *g_armv7_processor_get_context(const GArmV7Processor *proc)
* ctx = contexte lié à l'exécution du processeur. *
* content = flux de données à analyser. *
* pos = position courante dans ce flux. [OUT] *
+* format = format du fichier contenant le code. *
* *
* Description : Désassemble une instruction dans un flux de données. *
* *
@@ -231,7 +232,7 @@ static GArmV7Context *g_armv7_processor_get_context(const GArmV7Processor *proc)
* *
******************************************************************************/
-static GArchInstruction *g_armv7_processor_disassemble(const GArmV7Processor *proc, GArmV7Context *ctx, const GBinContent *content, vmpa2t *pos)
+static GArchInstruction *g_armv7_processor_disassemble(const GArmV7Processor *proc, GArmV7Context *ctx, const GBinContent *content, vmpa2t *pos, GExeFormat *format)
{
GArchInstruction *result; /* Instruction à renvoyer */
SourceEndian endian; /* Boutisme des données lues */
diff --git a/src/arch/dalvik/Makefile.am b/src/arch/dalvik/Makefile.am
index 508e26d..0f04dae 100644
--- a/src/arch/dalvik/Makefile.am
+++ b/src/arch/dalvik/Makefile.am
@@ -25,4 +25,4 @@ AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS)
AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
-SUBDIRS = decomp opcodes operands pseudo
+SUBDIRS = decomp opdefs opcodes operands pseudo
diff --git a/src/arch/dalvik/instruction.c b/src/arch/dalvik/instruction.c
index a8e8676..31f02c8 100644
--- a/src/arch/dalvik/instruction.c
+++ b/src/arch/dalvik/instruction.c
@@ -544,35 +544,6 @@ static void g_dalvik_instruction_get_rw_registers(const GDalvikInstruction *inst
/******************************************************************************
* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. *
-* end = limite des données à analyser. *
-* *
-* Description : Recherche l'identifiant de la prochaine instruction. *
-* *
-* Retour : Identifiant de la prochaine instruction à tenter de charger. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-DalvikOpcodes dalvik_guess_next_instruction(const bin_t *data, off_t pos, off_t end)
-{
- DalvikOpcodes result; /* Identifiant à retourner */
-
- result = (DalvikOpcodes)data[pos];
-
- /* Si l'instruction est marquée comme non utilisée... */
- if (_instructions[result].keyword == NULL)
- result = DOP_COUNT;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
* Paramètres : instr = instruction à traiter. *
* syntax = type de représentation demandée. *
* *
@@ -586,7 +557,7 @@ DalvikOpcodes dalvik_guess_next_instruction(const bin_t *data, off_t pos, off_t
static void dalvik_build_instruction_keyword(const GDalvikInstruction *instr, AsmSyntax syntax)
{
- G_ARCH_INSTRUCTION(instr)->cached_keyword = strdup(_instructions[instr->type].keyword);
+ G_ARCH_INSTRUCTION(instr)->cached_keyword = strdup(instr->keyword);
}
diff --git a/src/arch/dalvik/instruction.h b/src/arch/dalvik/instruction.h
index 185eabe..dacf957 100644
--- a/src/arch/dalvik/instruction.h
+++ b/src/arch/dalvik/instruction.h
@@ -57,9 +57,6 @@ DalvikOpcodes g_dalvik_instruction_get_opcode(const struct _GDalvikInstruction *
/* --------------------- AIDE A LA MISE EN PLACE D'INSTRUCTIONS --------------------- */
-/* Recherche l'identifiant de la prochaine instruction. */
-DalvikOpcodes dalvik_guess_next_instruction(const bin_t *, off_t, off_t);
-
/* ------------------------ AIDE A LA PHASE DE DECOMPILATION ------------------------ */
diff --git a/src/arch/dalvik/opcodes/Makefile.am b/src/arch/dalvik/opcodes/Makefile.am
index 8632c0e..e4f90da 100644
--- a/src/arch/dalvik/opcodes/Makefile.am
+++ b/src/arch/dalvik/opcodes/Makefile.am
@@ -1,44 +1,17 @@
+# Initialement, ce Makefile est conçu sans définition de am__depfiles_maybe.
+# Est-ce parce que GENERATED_FILES est vide et qu'il n'y a donc pas de code
+# source ? En tout cas, au premier écrasement de gencode.mk, tous les fichiers
+# sont regénérés, et am__depfiles_maybe apparaît enfin. Mais trop tard :
+# des fichiers .Plo sont attendus mais non créés par l'ancien Makefile.
+# On force les choses ici.
+am__depfiles_maybe = depfiles
+
+include gencode.mk
+
noinst_LTLIBRARIES = libarchdalvikopcodes.la
-libarchdalvikopcodes_la_SOURCES = \
- add.c \
- aget.c \
- and.c \
- aput.c \
- array.c \
- check.c \
- cmp.c \
- const.c \
- div.c \
- goto.c \
- if.c \
- iget.c \
- instanceof.c \
- invoke.c \
- iput.c \
- monitor.c \
- move.c \
- mul.c \
- neg.c \
- new.c \
- nop.c \
- not.c \
- opcodes.h \
- or.c \
- rem.c \
- ret.c \
- rsub.c \
- sget.c \
- shl.c \
- shr.c \
- sput.c \
- sub.c \
- switch.c \
- throw.c \
- to.c \
- ushr.c \
- xor.c
+libarchdalvikopcodes_la_SOURCES = $(GENERATED_FILES)
libarchdalvikopcodes_la_LIBADD =
diff --git a/src/arch/dalvik/opcodes/add.c b/src/arch/dalvik/opcodes/add.c
deleted file mode 100644
index 4d93df9..0000000
--- a/src/arch/dalvik/opcodes/add.c
+++ /dev/null
@@ -1,419 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * add.c - décodage des opérations d'addition
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-double/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_DOUBLE_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-int/lit16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_INT_LIT16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-float/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_FLOAT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'add-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_add_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ADD_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/aget.c b/src/arch/dalvik/opcodes/aget.c
deleted file mode 100644
index e5033aa..0000000
--- a/src/arch/dalvik/opcodes/aget.c
+++ /dev/null
@@ -1,302 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * aget.c - décodage des instructions manipulant des tableaux (chargement)
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aget'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aget(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AGET);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aget-boolean'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aget_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AGET_BOOLEAN);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aget-byte'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aget_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AGET_BYTE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aget-char'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aget_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AGET_CHAR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aget-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aget_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AGET_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aget-short'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aget_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AGET_SHORT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aget-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aget_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AGET_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/and.c b/src/arch/dalvik/opcodes/and.c
deleted file mode 100644
index d5162bf..0000000
--- a/src/arch/dalvik/opcodes/and.c
+++ /dev/null
@@ -1,263 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * and.c - décodage des opérations de ET logiques
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'and-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_and_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AND_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'and-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_and_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AND_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'and-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_and_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AND_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'and-int/lit16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_and_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AND_INT_LIT16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'and-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_and_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AND_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'and-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_and_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_AND_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/aput.c b/src/arch/dalvik/opcodes/aput.c
deleted file mode 100644
index 6cdde65..0000000
--- a/src/arch/dalvik/opcodes/aput.c
+++ /dev/null
@@ -1,288 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * aput.c - décodage des instructions manipulant des tableaux (enregistrement)
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aput'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aput(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_APUT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aput-boolean'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aput_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_APUT_BOOLEAN);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aput-byte'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aput_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_APUT_BYTE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aput-char'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aput_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_APUT_CHAR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aput-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aput_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_APUT_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aput-short'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aput_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_APUT_SHORT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'aput-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_aput_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_APUT_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/array.c b/src/arch/dalvik/opcodes/array.c
deleted file mode 100644
index efa40b7..0000000
--- a/src/arch/dalvik/opcodes/array.c
+++ /dev/null
@@ -1,179 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * array.c - décodage de l'opération récupérant la longueur d'un tableau
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'array-length'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_array_length(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_ARRAY_LENGTH);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'fill-array-data'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_fill_array_data(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_FILL_ARRAY_DATA);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31T))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'filled-new-array'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_filled_new_array(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_FILLED_NEW_ARRAY);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_TYPE)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'filled-new-array/range'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_filled_new_array_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_FILLED_NEW_ARRAY_RANGE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_TYPE)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/check.c b/src/arch/dalvik/opcodes/check.c
deleted file mode 100644
index 725f336..0000000
--- a/src/arch/dalvik/opcodes/check.c
+++ /dev/null
@@ -1,66 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * check.c - décodage des vérifications de types
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'check-cast'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_check_cast(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CHECK_CAST);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_TYPE)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/cmp.c b/src/arch/dalvik/opcodes/cmp.c
deleted file mode 100644
index e6de13c..0000000
--- a/src/arch/dalvik/opcodes/cmp.c
+++ /dev/null
@@ -1,224 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * cmp.c - décodage des instructions de comparaison
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'cmp-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_cmp_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CMP_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'cmpg-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_cmpg_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CMPG_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'cmpg-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_cmpg_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CMPG_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'cmpl-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_cmpl_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CMPL_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'cmpl-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_cmpl_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CMPL_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/const.c b/src/arch/dalvik/opcodes/const.c
deleted file mode 100644
index 5097804..0000000
--- a/src/arch/dalvik/opcodes/const.c
+++ /dev/null
@@ -1,458 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * const.c - décodage des chargements de constantes
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31I))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const/16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const/4'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_4(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_4);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11N))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const-class'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_class(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_CLASS);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_TYPE)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const/high16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_high16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_HIGH16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21H))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const-string'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_string(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_STRING);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_STRING)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const-string/jumbo'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_string_jumbo(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_STRING_JUMBO);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31C | DALVIK_OP_POOL(DPT_STRING)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_51L))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const-wide/16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_wide_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_WIDE_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const-wide/32'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_wide_32(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_WIDE_32);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31I))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'const-wide/high16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_const_wide_high16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_CONST_WIDE_HIGH16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21H))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/div.c b/src/arch/dalvik/opcodes/div.c
deleted file mode 100644
index a20968b..0000000
--- a/src/arch/dalvik/opcodes/div.c
+++ /dev/null
@@ -1,419 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * div.c - décodage des opérations de divisions
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-double/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_DOUBLE_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-float/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_FLOAT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-int/lit16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_INT_LIT16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'div-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_div_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_DIV_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/goto.c b/src/arch/dalvik/opcodes/goto.c
deleted file mode 100644
index f74774a..0000000
--- a/src/arch/dalvik/opcodes/goto.c
+++ /dev/null
@@ -1,140 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * goto.c - décodage des branchements inconditionnels
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'goto'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_goto(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_GOTO);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_10T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'goto/16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_goto_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_GOTO_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_20T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'goto/32'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_goto_32(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_GOTO_32);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_30T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/if.c b/src/arch/dalvik/opcodes/if.c
deleted file mode 100644
index ad8b49a..0000000
--- a/src/arch/dalvik/opcodes/if.c
+++ /dev/null
@@ -1,473 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * if.c - décodage des branchements conditionnels
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-eq'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_eq(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_EQ);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-eqz'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_eqz(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_EQZ);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-ge'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_ge(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_GE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-gez'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_gez(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_GEZ);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-gt'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_gt(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_GT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-gtz'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_gtz(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_GTZ);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-le'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_le(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_LE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-lez'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_lez(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_LEZ);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-lt'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_lt(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_LT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-ltz'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_ltz(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_LTZ);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-ne'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_ne(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_NE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'if-nez'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_if_nez(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IF_NEZ);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/iget.c b/src/arch/dalvik/opcodes/iget.c
deleted file mode 100644
index f83bb96..0000000
--- a/src/arch/dalvik/opcodes/iget.c
+++ /dev/null
@@ -1,302 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * iget.c - décodage des chargements de champs d'instance
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iget'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iget(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IGET);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iget-boolean'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iget_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IGET_BOOLEAN);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iget-byte'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iget_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IGET_BYTE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iget-char'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iget_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IGET_CHAR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iget-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iget_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IGET_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iget-short'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iget_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IGET_SHORT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iget-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iget_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IGET_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/instanceof.c b/src/arch/dalvik/opcodes/instanceof.c
deleted file mode 100644
index d65c6bd..0000000
--- a/src/arch/dalvik/opcodes/instanceof.c
+++ /dev/null
@@ -1,68 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * instanceof.c - décodage des opérations d'interrogation sur une instance
- *
- * Copyright (C) 2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'instance-of'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_instance_of(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INSTANCE_OF);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_TYPE)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/invoke.c b/src/arch/dalvik/opcodes/invoke.c
deleted file mode 100644
index 9133e79..0000000
--- a/src/arch/dalvik/opcodes/invoke.c
+++ /dev/null
@@ -1,399 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * invoke.c - décodage des appels de méthode
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-direct'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_direct(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_DIRECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-direct/range'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_direct_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_DIRECT_RANGE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-interface'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_interface(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_INTERFACE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-interface/range'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_interface_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_INTERFACE_RANGE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-static'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_static(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_STATIC);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-static/range'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_static_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_STATIC_RANGE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-super'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_super(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_SUPER);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-super/range'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_super_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_SUPER_RANGE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-virtual'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_virtual(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_VIRTUAL);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'invoke-virtual/range'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_invoke_virtual_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_INVOKE_VIRTUAL_RANGE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/iput.c b/src/arch/dalvik/opcodes/iput.c
deleted file mode 100644
index 434eec7..0000000
--- a/src/arch/dalvik/opcodes/iput.c
+++ /dev/null
@@ -1,288 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * iput.c - décodage des enregistrements de champs d'instance
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iput'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iput(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IPUT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iput-boolean'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iput_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IPUT_BOOLEAN);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iput-byte'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iput_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IPUT_BYTE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iput-char'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iput_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IPUT_CHAR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iput-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iput_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IPUT_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iput-short'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iput_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IPUT_SHORT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'iput-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_iput_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_IPUT_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/monitor.c b/src/arch/dalvik/opcodes/monitor.c
deleted file mode 100644
index 866e984..0000000
--- a/src/arch/dalvik/opcodes/monitor.c
+++ /dev/null
@@ -1,103 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * monitor.c - décodage des opérations de débogage
- *
- * Copyright (C) 2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'monitor-enter'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_monitor_enter(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MONITOR_ENTER);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'monitor-exit'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_monitor_exit(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MONITOR_EXIT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/move.c b/src/arch/dalvik/opcodes/move.c
deleted file mode 100644
index ba2d89b..0000000
--- a/src/arch/dalvik/opcodes/move.c
+++ /dev/null
@@ -1,536 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * move.c - décodage des opérations de déplacement
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-exception'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_exception(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_EXCEPTION);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move/16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_32X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move/from16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_from_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_FROM_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-object/16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_object_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_OBJECT_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_32X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-object/from16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_object_from_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_OBJECT_FROM_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-result'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_result(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_RESULT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-result-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_result_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_RESULT_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-result-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_result_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_RESULT_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-wide/16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_wide_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_WIDE_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_32X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'move-wide/from16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_move_wide_from_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MOVE_WIDE_FROM_16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/mul.c b/src/arch/dalvik/opcodes/mul.c
deleted file mode 100644
index 67a343b..0000000
--- a/src/arch/dalvik/opcodes/mul.c
+++ /dev/null
@@ -1,419 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * mul.c - décodage des opérations de multiplications
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-double/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_DOUBLE_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-float/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_FLOAT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-int/lit16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_INT_LIT16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'mul-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_mul_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_MUL_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/neg.c b/src/arch/dalvik/opcodes/neg.c
deleted file mode 100644
index 5f9a985..0000000
--- a/src/arch/dalvik/opcodes/neg.c
+++ /dev/null
@@ -1,185 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * neg.c - décodage des instructions de négations
- *
- * Copyright (C) 2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'neg-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_neg_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NEG_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'neg-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_neg_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NEG_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'neg-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_neg_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NEG_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'neg-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_neg_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NEG_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/new.c b/src/arch/dalvik/opcodes/new.c
deleted file mode 100644
index 3320540..0000000
--- a/src/arch/dalvik/opcodes/new.c
+++ /dev/null
@@ -1,107 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * new.c - décodage des créations de nouvelles instances
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'new-array'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_new_array(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NEW_ARRAY);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_TYPE)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'new-instance'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_new_instance(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NEW_INSTANCE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_TYPE)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/nop.c b/src/arch/dalvik/opcodes/nop.c
deleted file mode 100644
index b90c350..0000000
--- a/src/arch/dalvik/opcodes/nop.c
+++ /dev/null
@@ -1,66 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * ret.c - décodage de l'instruction nulle
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'nop'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_nop(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NOP);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_10X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/not.c b/src/arch/dalvik/opcodes/not.c
deleted file mode 100644
index 41ae2d4..0000000
--- a/src/arch/dalvik/opcodes/not.c
+++ /dev/null
@@ -1,107 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * not.c - décodage des instructions de négations booléennes
- *
- * Copyright (C) 2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'not-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_not_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NOT_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'not-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_not_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_NOT_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/opcodes.h b/src/arch/dalvik/opcodes/opcodes.h
deleted file mode 100644
index 3f89970..0000000
--- a/src/arch/dalvik/opcodes/opcodes.h
+++ /dev/null
@@ -1,693 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * opcodes.h - prototypes pour la liste de tous les opcodes de l'architecture Dalvik
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ARCH_DALVIK_OPCODES_H
-#define _ARCH_DALVIK_OPCODES_H
-
-
-#include "../instruction.h"
-#include "../processor.h"
-#include "../../../format/dex/dex.h"
-
-
-
-/* Prototype de décodage d'une instruction Dalvik. */
-typedef GArchInstruction * (* dalvik_read_instr) (const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-double'. */
-GArchInstruction *dalvik_read_instr_add_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-double/2addr'. */
-GArchInstruction *dalvik_read_instr_add_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-int'. */
-GArchInstruction *dalvik_read_instr_add_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-int/2addr'. */
-GArchInstruction *dalvik_read_instr_add_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-int/lit8'. */
-GArchInstruction *dalvik_read_instr_add_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-int/lit16'. */
-GArchInstruction *dalvik_read_instr_add_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-float'. */
-GArchInstruction *dalvik_read_instr_add_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-float/2addr'. */
-GArchInstruction *dalvik_read_instr_add_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-long'. */
-GArchInstruction *dalvik_read_instr_add_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'add-long/2addr'. */
-GArchInstruction *dalvik_read_instr_add_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aget'. */
-GArchInstruction *dalvik_read_instr_aget(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aget-boolean'. */
-GArchInstruction *dalvik_read_instr_aget_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aget-byte'. */
-GArchInstruction *dalvik_read_instr_aget_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aget-char'. */
-GArchInstruction *dalvik_read_instr_aget_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aget-object'. */
-GArchInstruction *dalvik_read_instr_aget_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aget-short'. */
-GArchInstruction *dalvik_read_instr_aget_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aget-wide'. */
-GArchInstruction *dalvik_read_instr_aget_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'and-int'. */
-GArchInstruction *dalvik_read_instr_and_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'and-int/2addr'. */
-GArchInstruction *dalvik_read_instr_and_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'and-int/lit8'. */
-GArchInstruction *dalvik_read_instr_and_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'and-int/lit16'. */
-GArchInstruction *dalvik_read_instr_and_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'and-long'. */
-GArchInstruction *dalvik_read_instr_and_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'and-long/2addr'. */
-GArchInstruction *dalvik_read_instr_and_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aput'. */
-GArchInstruction *dalvik_read_instr_aput(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aput-boolean'. */
-GArchInstruction *dalvik_read_instr_aput_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aput-byte'. */
-GArchInstruction *dalvik_read_instr_aput_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aput-char'. */
-GArchInstruction *dalvik_read_instr_aput_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aput-object'. */
-GArchInstruction *dalvik_read_instr_aput_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aput-short'. */
-GArchInstruction *dalvik_read_instr_aput_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'aput-wide'. */
-GArchInstruction *dalvik_read_instr_aput_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'array-length'. */
-GArchInstruction *dalvik_read_instr_array_length(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'check-cast'. */
-GArchInstruction *dalvik_read_instr_check_cast(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'cmp-long'. */
-GArchInstruction *dalvik_read_instr_cmp_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'cmpg-double'. */
-GArchInstruction *dalvik_read_instr_cmpg_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'cmpg-float'. */
-GArchInstruction *dalvik_read_instr_cmpg_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'cmpl-double'. */
-GArchInstruction *dalvik_read_instr_cmpl_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'cmpl-float'. */
-GArchInstruction *dalvik_read_instr_cmpl_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const'. */
-GArchInstruction *dalvik_read_instr_const(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const/16'. */
-GArchInstruction *dalvik_read_instr_const_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const/4'. */
-GArchInstruction *dalvik_read_instr_const_4(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const-class'. */
-GArchInstruction *dalvik_read_instr_const_class(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const/high16'. */
-GArchInstruction *dalvik_read_instr_const_high16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const-string'. */
-GArchInstruction *dalvik_read_instr_const_string(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const-string/jumbo'. */
-GArchInstruction *dalvik_read_instr_const_string_jumbo(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const-wide'. */
-GArchInstruction *dalvik_read_instr_const_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const-wide/16'. */
-GArchInstruction *dalvik_read_instr_const_wide_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const-wide/32'. */
-GArchInstruction *dalvik_read_instr_const_wide_32(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'const-wide/high16'. */
-GArchInstruction *dalvik_read_instr_const_wide_high16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-double'. */
-GArchInstruction *dalvik_read_instr_div_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-double/2addr'. */
-GArchInstruction *dalvik_read_instr_div_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-float'. */
-GArchInstruction *dalvik_read_instr_div_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-float/2addr'. */
-GArchInstruction *dalvik_read_instr_div_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-int'. */
-GArchInstruction *dalvik_read_instr_div_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-int/2addr'. */
-GArchInstruction *dalvik_read_instr_div_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-int/lit8'. */
-GArchInstruction *dalvik_read_instr_div_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-int/lit16'. */
-GArchInstruction *dalvik_read_instr_div_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-long'. */
-GArchInstruction *dalvik_read_instr_div_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'div-long/2addr'. */
-GArchInstruction *dalvik_read_instr_div_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'fill-array-data'. */
-GArchInstruction *dalvik_read_instr_fill_array_data(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'filled-new-array'. */
-GArchInstruction *dalvik_read_instr_filled_new_array(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'filled-new-array/range'. */
-GArchInstruction *dalvik_read_instr_filled_new_array_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'goto'. */
-GArchInstruction *dalvik_read_instr_goto(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'goto/16'. */
-GArchInstruction *dalvik_read_instr_goto_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'goto/32'. */
-GArchInstruction *dalvik_read_instr_goto_32(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-eq'. */
-GArchInstruction *dalvik_read_instr_if_eq(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-eqz'. */
-GArchInstruction *dalvik_read_instr_if_eqz(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-ge'. */
-GArchInstruction *dalvik_read_instr_if_ge(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-gez'. */
-GArchInstruction *dalvik_read_instr_if_gez(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-gt'. */
-GArchInstruction *dalvik_read_instr_if_gt(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-gtz'. */
-GArchInstruction *dalvik_read_instr_if_gtz(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-le'. */
-GArchInstruction *dalvik_read_instr_if_le(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-lez'. */
-GArchInstruction *dalvik_read_instr_if_lez(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-lt'. */
-GArchInstruction *dalvik_read_instr_if_lt(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-ltz'. */
-GArchInstruction *dalvik_read_instr_if_ltz(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-ne'. */
-GArchInstruction *dalvik_read_instr_if_ne(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'if-nez'. */
-GArchInstruction *dalvik_read_instr_if_nez(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iget'. */
-GArchInstruction *dalvik_read_instr_iget(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iget-boolean'. */
-GArchInstruction *dalvik_read_instr_iget_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iget-byte'. */
-GArchInstruction *dalvik_read_instr_iget_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iget-char'. */
-GArchInstruction *dalvik_read_instr_iget_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iget-object'. */
-GArchInstruction *dalvik_read_instr_iget_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iget-short'. */
-GArchInstruction *dalvik_read_instr_iget_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iget-wide'. */
-GArchInstruction *dalvik_read_instr_iget_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'instance-of'. */
-GArchInstruction *dalvik_read_instr_instance_of(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-direct'. */
-GArchInstruction *dalvik_read_instr_invoke_direct(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-direct/range'. */
-GArchInstruction *dalvik_read_instr_invoke_direct_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-interface'. */
-GArchInstruction *dalvik_read_instr_invoke_interface(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-interface/range'. */
-GArchInstruction *dalvik_read_instr_invoke_interface_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-static'. */
-GArchInstruction *dalvik_read_instr_invoke_static(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-static/range'. */
-GArchInstruction *dalvik_read_instr_invoke_static_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-super'. */
-GArchInstruction *dalvik_read_instr_invoke_super(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-super/range'. */
-GArchInstruction *dalvik_read_instr_invoke_super_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-virtual'. */
-GArchInstruction *dalvik_read_instr_invoke_virtual(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'invoke-virtual/range'. */
-GArchInstruction *dalvik_read_instr_invoke_virtual_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iput'. */
-GArchInstruction *dalvik_read_instr_iput(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iput-boolean'. */
-GArchInstruction *dalvik_read_instr_iput_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iput-byte'. */
-GArchInstruction *dalvik_read_instr_iput_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iput-char'. */
-GArchInstruction *dalvik_read_instr_iput_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iput-object'. */
-GArchInstruction *dalvik_read_instr_iput_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iput-short'. */
-GArchInstruction *dalvik_read_instr_iput_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'iput-wide'. */
-GArchInstruction *dalvik_read_instr_iput_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'monitor-enter'. */
-GArchInstruction *dalvik_read_instr_monitor_enter(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'monitor-exit'. */
-GArchInstruction *dalvik_read_instr_monitor_exit(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move'. */
-GArchInstruction *dalvik_read_instr_move(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-exception'. */
-GArchInstruction *dalvik_read_instr_move_exception(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move/16'. */
-GArchInstruction *dalvik_read_instr_move_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move/from16'. */
-GArchInstruction *dalvik_read_instr_move_from_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-object'. */
-GArchInstruction *dalvik_read_instr_move_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-object/16'. */
-GArchInstruction *dalvik_read_instr_move_object_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-object/from16'. */
-GArchInstruction *dalvik_read_instr_move_object_from_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-result'. */
-GArchInstruction *dalvik_read_instr_move_result(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-result-object'. */
-GArchInstruction *dalvik_read_instr_move_result_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-result-wide'. */
-GArchInstruction *dalvik_read_instr_move_result_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-wide'. */
-GArchInstruction *dalvik_read_instr_move_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-wide/16'. */
-GArchInstruction *dalvik_read_instr_move_wide_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'move-wide/from16'. */
-GArchInstruction *dalvik_read_instr_move_wide_from_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-double'. */
-GArchInstruction *dalvik_read_instr_mul_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-double/2addr'. */
-GArchInstruction *dalvik_read_instr_mul_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-float'. */
-GArchInstruction *dalvik_read_instr_mul_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-float/2addr'. */
-GArchInstruction *dalvik_read_instr_mul_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-int'. */
-GArchInstruction *dalvik_read_instr_mul_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-int/2addr'. */
-GArchInstruction *dalvik_read_instr_mul_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-int/lit8'. */
-GArchInstruction *dalvik_read_instr_mul_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-int/lit16'. */
-GArchInstruction *dalvik_read_instr_mul_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-long'. */
-GArchInstruction *dalvik_read_instr_mul_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'mul-long/2addr'. */
-GArchInstruction *dalvik_read_instr_mul_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'neg-double'. */
-GArchInstruction *dalvik_read_instr_neg_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'neg-float'. */
-GArchInstruction *dalvik_read_instr_neg_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'neg-int'. */
-GArchInstruction *dalvik_read_instr_neg_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'neg-long'. */
-GArchInstruction *dalvik_read_instr_neg_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'new-array'. */
-GArchInstruction *dalvik_read_instr_new_array(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'new-instance'. */
-GArchInstruction *dalvik_read_instr_new_instance(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'nop'. */
-GArchInstruction *dalvik_read_instr_nop(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'not-int'. */
-GArchInstruction *dalvik_read_instr_not_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'not-long'. */
-GArchInstruction *dalvik_read_instr_not_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'or-int'. */
-GArchInstruction *dalvik_read_instr_or_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'or-int/2addr'. */
-GArchInstruction *dalvik_read_instr_or_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'or-int/lit8'. */
-GArchInstruction *dalvik_read_instr_or_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'or-int/lit16'. */
-GArchInstruction *dalvik_read_instr_or_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'or-long'. */
-GArchInstruction *dalvik_read_instr_or_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'or-long/2addr'. */
-GArchInstruction *dalvik_read_instr_or_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'packed-switch'. */
-GArchInstruction *dalvik_read_instr_packed_switch(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-double'. */
-GArchInstruction *dalvik_read_instr_rem_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-double/2addr'. */
-GArchInstruction *dalvik_read_instr_rem_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-float'. */
-GArchInstruction *dalvik_read_instr_rem_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-float/2addr'. */
-GArchInstruction *dalvik_read_instr_rem_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-int'. */
-GArchInstruction *dalvik_read_instr_rem_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-int/2addr'. */
-GArchInstruction *dalvik_read_instr_rem_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-int/lit8'. */
-GArchInstruction *dalvik_read_instr_rem_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-int/lit16'. */
-GArchInstruction *dalvik_read_instr_rem_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-long'. */
-GArchInstruction *dalvik_read_instr_rem_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rem-long/2addr'. */
-GArchInstruction *dalvik_read_instr_rem_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rsub-int'. */
-GArchInstruction *dalvik_read_instr_rsub_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'rsub-int/lit8'. */
-GArchInstruction *dalvik_read_instr_rsub_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'return'. */
-GArchInstruction *dalvik_read_instr_return(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'return-object'. */
-GArchInstruction *dalvik_read_instr_return_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'return-void'. */
-GArchInstruction *dalvik_read_instr_return_void(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'return-wide'. */
-GArchInstruction *dalvik_read_instr_return_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sget'. */
-GArchInstruction *dalvik_read_instr_sget(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sget-boolean'. */
-GArchInstruction *dalvik_read_instr_sget_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sget-byte'. */
-GArchInstruction *dalvik_read_instr_sget_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sget-char'. */
-GArchInstruction *dalvik_read_instr_sget_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sget-object'. */
-GArchInstruction *dalvik_read_instr_sget_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sget-short'. */
-GArchInstruction *dalvik_read_instr_sget_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sget-wide'. */
-GArchInstruction *dalvik_read_instr_sget_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shl-int'. */
-GArchInstruction *dalvik_read_instr_shl_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shl-int/2addr'. */
-GArchInstruction *dalvik_read_instr_shl_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shl-int/lit8'. */
-GArchInstruction *dalvik_read_instr_shl_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shl-long'. */
-GArchInstruction *dalvik_read_instr_shl_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shl-long/2addr'. */
-GArchInstruction *dalvik_read_instr_shl_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shr-int'. */
-GArchInstruction *dalvik_read_instr_shr_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shr-int/2addr'. */
-GArchInstruction *dalvik_read_instr_shr_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shr-int/lit8'. */
-GArchInstruction *dalvik_read_instr_shr_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shr-long'. */
-GArchInstruction *dalvik_read_instr_shr_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'shr-long/2addr'. */
-GArchInstruction *dalvik_read_instr_shr_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sparse-switch'. */
-GArchInstruction *dalvik_read_instr_sparse_switch(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sput'. */
-GArchInstruction *dalvik_read_instr_sput(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sput-boolean'. */
-GArchInstruction *dalvik_read_instr_sput_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sput-byte'. */
-GArchInstruction *dalvik_read_instr_sput_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sput-char'. */
-GArchInstruction *dalvik_read_instr_sput_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sput-object'. */
-GArchInstruction *dalvik_read_instr_sput_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sput-short'. */
-GArchInstruction *dalvik_read_instr_sput_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sput-wide'. */
-GArchInstruction *dalvik_read_instr_sput_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sub-double'. */
-GArchInstruction *dalvik_read_instr_sub_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sub-double/2addr'. */
-GArchInstruction *dalvik_read_instr_sub_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sub-float'. */
-GArchInstruction *dalvik_read_instr_sub_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sub-float/2addr'. */
-GArchInstruction *dalvik_read_instr_sub_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sub-int'. */
-GArchInstruction *dalvik_read_instr_sub_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sub-int/2addr'. */
-GArchInstruction *dalvik_read_instr_sub_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sub-long'. */
-GArchInstruction *dalvik_read_instr_sub_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'sub-long/2addr'. */
-GArchInstruction *dalvik_read_instr_sub_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'int-to-byte'. */
-GArchInstruction *dalvik_read_instr_to_int_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'int-to-char'. */
-GArchInstruction *dalvik_read_instr_to_int_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'int-to-double'. */
-GArchInstruction *dalvik_read_instr_to_int_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'int-to-float'. */
-GArchInstruction *dalvik_read_instr_to_int_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'int-to-long'. */
-GArchInstruction *dalvik_read_instr_to_int_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'int-to-short'. */
-GArchInstruction *dalvik_read_instr_to_int_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'double-to-float'. */
-GArchInstruction *dalvik_read_instr_to_double_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'double-to-int'. */
-GArchInstruction *dalvik_read_instr_to_double_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'double-to-long'. */
-GArchInstruction *dalvik_read_instr_to_double_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'float-to-double'. */
-GArchInstruction *dalvik_read_instr_to_float_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'float-to-int'. */
-GArchInstruction *dalvik_read_instr_to_float_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'float-to-long'. */
-GArchInstruction *dalvik_read_instr_to_float_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'long-to-double'. */
-GArchInstruction *dalvik_read_instr_to_long_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'long-to-float'. */
-GArchInstruction *dalvik_read_instr_to_long_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'long-to-int'. */
-GArchInstruction *dalvik_read_instr_to_long_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'throw'. */
-GArchInstruction *dalvik_read_instr_throw(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'ushr-int'. */
-GArchInstruction *dalvik_read_instr_ushr_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'ushr-int/2addr'. */
-GArchInstruction *dalvik_read_instr_ushr_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'ushr-int/lit8'. */
-GArchInstruction *dalvik_read_instr_ushr_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'ushr-long'. */
-GArchInstruction *dalvik_read_instr_ushr_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'ushr-long/2addr'. */
-GArchInstruction *dalvik_read_instr_ushr_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'xor-int'. */
-GArchInstruction *dalvik_read_instr_xor_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'xor-int/2addr'. */
-GArchInstruction *dalvik_read_instr_xor_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'xor-int/lit8'. */
-GArchInstruction *dalvik_read_instr_xor_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'xor-int/lit16'. */
-GArchInstruction *dalvik_read_instr_xor_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'xor-long'. */
-GArchInstruction *dalvik_read_instr_xor_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-/* Décode une instruction de type 'xor-long/2addr'. */
-GArchInstruction *dalvik_read_instr_xor_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *);
-
-
-
-#endif /* _ARCH_DALVIK_OPCODES_H */
diff --git a/src/arch/dalvik/opcodes/or.c b/src/arch/dalvik/opcodes/or.c
deleted file mode 100644
index 8904f48..0000000
--- a/src/arch/dalvik/opcodes/or.c
+++ /dev/null
@@ -1,263 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * or.c - décodage des opérations de OU logiques
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'or-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_or_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_OR_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'or-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_or_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_OR_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'or-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_or_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_OR_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'or-int/lit16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_or_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_OR_INT_LIT16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'or-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_or_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_OR_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'or-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_or_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_OR_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/rem.c b/src/arch/dalvik/opcodes/rem.c
deleted file mode 100644
index 0ba12de..0000000
--- a/src/arch/dalvik/opcodes/rem.c
+++ /dev/null
@@ -1,419 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * rem.c - décodage des opérations de restes de division
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-double/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_DOUBLE_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-float/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_FLOAT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-int/lit16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_INT_LIT16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rem-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rem_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_REM_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/ret.c b/src/arch/dalvik/opcodes/ret.c
deleted file mode 100644
index 7e53ada..0000000
--- a/src/arch/dalvik/opcodes/ret.c
+++ /dev/null
@@ -1,177 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * ret.c - décodage des ordres de retour
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'return'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_return(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_RETURN);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'return-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_return_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_RETURN_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'return-void'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_return_void(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_RETURN_VOID);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_10X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'return-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_return_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_RETURN_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/rsub.c b/src/arch/dalvik/opcodes/rsub.c
deleted file mode 100644
index 9ee9331..0000000
--- a/src/arch/dalvik/opcodes/rsub.c
+++ /dev/null
@@ -1,107 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * rsub.c - décodage des opérations de soustractions inverses
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rsub-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rsub_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_RSUB_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'rsub-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_rsub_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_RSUB_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/sget.c b/src/arch/dalvik/opcodes/sget.c
deleted file mode 100644
index bc1aca0..0000000
--- a/src/arch/dalvik/opcodes/sget.c
+++ /dev/null
@@ -1,302 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * sget.c - décodage des instructions manipulant des champs statiques (chargement)
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sget'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sget(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SGET);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sget-boolean'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sget_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SGET_BOOLEAN);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sget-byte'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sget_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SGET_BYTE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sget-char'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sget_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SGET_CHAR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sget-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sget_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SGET_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sget-short'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sget_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SGET_SHORT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sget-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sget_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SGET_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/shl.c b/src/arch/dalvik/opcodes/shl.c
deleted file mode 100644
index 3ee88b8..0000000
--- a/src/arch/dalvik/opcodes/shl.c
+++ /dev/null
@@ -1,224 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * shl.c - décodage des opérations de décalage à gauche
- *
- * Copyright (C) 2011-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shl-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shl_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHL_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shl-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shl_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHL_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shl-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shl_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHL_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shl-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shl_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHL_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shl-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shl_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHL_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/shr.c b/src/arch/dalvik/opcodes/shr.c
deleted file mode 100644
index 1656164..0000000
--- a/src/arch/dalvik/opcodes/shr.c
+++ /dev/null
@@ -1,224 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * shr.c - décodage des opérations de décalage à droite signé
- *
- * Copyright (C) 2011-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shr-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shr_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHR_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shr-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shr_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHR_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shr-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shr_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHR_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shr-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shr_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHR_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'shr-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_shr_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SHR_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/sput.c b/src/arch/dalvik/opcodes/sput.c
deleted file mode 100644
index 281df25..0000000
--- a/src/arch/dalvik/opcodes/sput.c
+++ /dev/null
@@ -1,288 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * sput.c - décodage des instructions manipulant des champs statiques (enregistrement)
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sput'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sput(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SPUT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sput-boolean'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sput_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SPUT_BOOLEAN);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sput-byte'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sput_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SPUT_BYTE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sput-char'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sput_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SPUT_CHAR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sput-object'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sput_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SPUT_OBJECT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sput-short'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sput_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SPUT_SHORT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sput-wide'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sput_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SPUT_WIDE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD)))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/sub.c b/src/arch/dalvik/opcodes/sub.c
deleted file mode 100644
index 98af25e..0000000
--- a/src/arch/dalvik/opcodes/sub.c
+++ /dev/null
@@ -1,341 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * sub.c - décodage des opérations de soustraction
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sub-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sub_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SUB_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sub-double/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sub_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SUB_DOUBLE_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sub-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sub_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SUB_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sub-float/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sub_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SUB_FLOAT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sub-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sub_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SUB_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sub-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sub_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SUB_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sub-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sub_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SUB_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sub-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sub_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SUB_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/switch.c b/src/arch/dalvik/opcodes/switch.c
deleted file mode 100644
index 8b3c7a6..0000000
--- a/src/arch/dalvik/opcodes/switch.c
+++ /dev/null
@@ -1,103 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * switch.c - décompilation des branchements multiples
- *
- * Copyright (C) 2011-2013 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'packed-switch'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_packed_switch(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_PACKED_SWITCH);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31T))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'sparse-switch'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_sparse_switch(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_SPARSE_SWITCH);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31T))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/throw.c b/src/arch/dalvik/opcodes/throw.c
deleted file mode 100644
index 18602bc..0000000
--- a/src/arch/dalvik/opcodes/throw.c
+++ /dev/null
@@ -1,66 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * monitor.c - décodage des opérations d'envoi d'exceptions
- *
- * Copyright (C) 2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'throw'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_throw(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_THROW);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/to.c b/src/arch/dalvik/opcodes/to.c
deleted file mode 100644
index a8d3962..0000000
--- a/src/arch/dalvik/opcodes/to.c
+++ /dev/null
@@ -1,614 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * to.c - décodage des instructions de conversions forcées
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'int-to-byte'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_int_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_INT_BYTE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'int-to-char'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_int_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_INT_CHAR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'int-to-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_int_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_INT_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'int-to-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_int_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_INT_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'int-to-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_int_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_INT_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'int-to-short'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_int_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_INT_SHORT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'double-to-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_double_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_DOUBLE_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'double-to-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_double_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_DOUBLE_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'double-to-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_double_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_DOUBLE_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'float-to-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_float_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_FLOAT_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'float-to-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_float_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_FLOAT_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'float-to-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_float_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_FLOAT_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'long-to-double'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_long_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_LONG_DOUBLE);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'long-to-float'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_long_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_LONG_FLOAT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'long-to-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_to_long_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_TO_LONG_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/ushr.c b/src/arch/dalvik/opcodes/ushr.c
deleted file mode 100644
index ed377de..0000000
--- a/src/arch/dalvik/opcodes/ushr.c
+++ /dev/null
@@ -1,224 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * ushr.c - décodage des opérations de décalage à droite non signé
- *
- * Copyright (C) 2011-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'ushr-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_ushr_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_USHR_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'ushr-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_ushr_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_USHR_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'ushr-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_ushr_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_USHR_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'ushr-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_ushr_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_USHR_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'ushr-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_ushr_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_USHR_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opcodes/xor.c b/src/arch/dalvik/opcodes/xor.c
deleted file mode 100644
index bf41560..0000000
--- a/src/arch/dalvik/opcodes/xor.c
+++ /dev/null
@@ -1,263 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * xor.c - décodage des opérations de OU exclusifs et logiques
- *
- * Copyright (C) 2010-2012 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "opcodes.h"
-
-
-#include "../instruction.h"
-#include "../operand.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'xor-int'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_xor_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_XOR_INT);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'xor-int/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_xor_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_XOR_INT_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'xor-int/lit8'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_xor_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_XOR_INT_LIT8);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'xor-int/lit16'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_xor_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_XOR_INT_LIT16);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'xor-long'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_xor_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_XOR_LONG);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
-* fmt = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction de type 'xor-long/2addr'. *
-* *
-* Retour : Instruction mise en place ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *dalvik_read_instr_xor_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt)
-{
- GArchInstruction *result; /* Instruction à retourner */
- SourceEndian endian; /* Boutisme lié au binaire */
-
- result = g_dalvik_instruction_new(DOP_XOR_LONG_2ADDR);
-
- endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc));
-
- if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X))
- {
- g_object_unref(G_OBJECT(result));
- return NULL;
- }
-
- dalvik_mark_first_operand_as_written(result);
-
- return result;
-
-}
diff --git a/src/arch/dalvik/opdefs/Makefile.am b/src/arch/dalvik/opdefs/Makefile.am
new file mode 100644
index 0000000..115f75c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/Makefile.am
@@ -0,0 +1,268 @@
+
+include ../../../../tools/d2c/d2c.mk
+
+
+D2C_BIN = ../../../../tools/d2c/d2c
+GEN_BIN = ../../../../tools/d2c/d2c_genmakefile.sh
+
+D2C_TYPE = format
+
+D2C_OUTDIR = $(PWD)/..
+
+D2C_ARCH = dalvik
+D2C_HEADER = _ARCH_DALVIK
+D2C_PREFIX = DALVIK_OPT_
+
+D2C_ENCODINGS = \
+ -e none
+
+FIXED_C_INCLUDES = \
+ \n\#include \<stdint.h\> \
+ \n \
+ \n\#include \"..\/instruction.h\" \
+ \n\#include \"..\/operand.h\" \
+ \n\#include \"..\/processor.h\" \
+ \n\#include \"..\/..\/context.h\" \
+ \n\#include \"..\/..\/..\/analysis\/content.h\" \
+ \n\#include \"..\/..\/..\/format\/executable.h\" \
+ \n\n
+
+FIXED_H_INCLUDES = \
+ \n\#include \<stdint.h\> \
+ \n \
+ \n\#include \"..\/processor.h\" \
+ \n\#include \"..\/..\/context.h\" \
+ \n\#include \"..\/..\/..\/analysis\/content.h\" \
+ \n\#include \"..\/..\/..\/format\/executable.h\" \
+ \n\n
+
+# for (( i = 0; i < 256; i++)); do def=$(ls `printf "*_%02x.d" $i` 2> /dev/null); test -z "$def" || echo -e "\t$def\t\t\t\t\t\t\t\\" ; done
+DALVIK_DEFS = \
+ nop_00.d \
+ move_01.d \
+ move_02.d \
+ move_03.d \
+ move_04.d \
+ move_05.d \
+ move_06.d \
+ move_07.d \
+ move_08.d \
+ move_09.d \
+ move_0a.d \
+ move_0b.d \
+ move_0c.d \
+ move_0d.d \
+ return_0e.d \
+ return_0f.d \
+ return_10.d \
+ return_11.d \
+ const_12.d \
+ const_13.d \
+ const_14.d \
+ const_15.d \
+ const_16.d \
+ const_17.d \
+ const_18.d \
+ const_19.d \
+ const_1a.d \
+ const_1b.d \
+ const_1c.d \
+ monitor_1d.d \
+ monitor_1e.d \
+ check_1f.d \
+ instanceof_20.d \
+ array_21.d \
+ new_22.d \
+ new_23.d \
+ array_24.d \
+ filled_25.d \
+ array_26.d \
+ throw_27.d \
+ goto_28.d \
+ goto_29.d \
+ goto_2a.d \
+ switch_2b.d \
+ switch_2c.d \
+ cmpl_2d.d \
+ cmpg_2e.d \
+ cmpl_2f.d \
+ cmpg_30.d \
+ cmp_31.d \
+ if_32.d \
+ if_33.d \
+ if_34.d \
+ if_35.d \
+ if_36.d \
+ if_37.d \
+ if_38.d \
+ if_39.d \
+ if_3a.d \
+ if_3b.d \
+ if_3c.d \
+ if_3d.d \
+ aget_44.d \
+ aget_45.d \
+ aget_46.d \
+ aget_47.d \
+ aget_48.d \
+ aget_49.d \
+ aget_4a.d \
+ aput_4b.d \
+ aput_4c.d \
+ aput_4d.d \
+ aput_4e.d \
+ aput_4f.d \
+ aput_50.d \
+ aput_51.d \
+ iget_52.d \
+ iget_53.d \
+ iget_54.d \
+ iget_55.d \
+ iget_56.d \
+ iget_57.d \
+ iget_58.d \
+ iput_59.d \
+ iput_5a.d \
+ iput_5b.d \
+ iput_5c.d \
+ iput_5d.d \
+ iput_5e.d \
+ iput_5f.d \
+ sget_60.d \
+ sget_61.d \
+ sget_62.d \
+ sget_63.d \
+ sget_64.d \
+ sget_65.d \
+ sget_66.d \
+ sput_67.d \
+ sput_68.d \
+ sput_69.d \
+ sput_6a.d \
+ sput_6b.d \
+ sput_6c.d \
+ sput_6d.d \
+ invoke_6e.d \
+ invoke_6f.d \
+ invoke_70.d \
+ invoke_71.d \
+ invoke_72.d \
+ invoke_74.d \
+ invoke_75.d \
+ invoke_76.d \
+ invoke_77.d \
+ invoke_78.d \
+ neg_7b.d \
+ not_7c.d \
+ neg_7d.d \
+ not_7e.d \
+ neg_7f.d \
+ neg_80.d \
+ to_81.d \
+ to_82.d \
+ to_83.d \
+ to_84.d \
+ to_85.d \
+ to_86.d \
+ to_87.d \
+ to_88.d \
+ to_89.d \
+ to_8a.d \
+ to_8b.d \
+ to_8c.d \
+ to_8d.d \
+ to_8e.d \
+ to_8f.d \
+ add_90.d \
+ sub_91.d \
+ mul_92.d \
+ div_93.d \
+ rem_94.d \
+ and_95.d \
+ or_96.d \
+ xor_97.d \
+ shl_98.d \
+ shr_99.d \
+ ushr_9a.d \
+ add_9b.d \
+ sub_9c.d \
+ mul_9d.d \
+ div_9e.d \
+ rem_9f.d \
+ and_a0.d \
+ or_a1.d \
+ xor_a2.d \
+ shl_a3.d \
+ shr_a4.d \
+ ushr_a5.d \
+ add_a6.d \
+ sub_a7.d \
+ mul_a8.d \
+ div_a9.d \
+ rem_aa.d \
+ add_ab.d \
+ sub_ac.d \
+ mul_ad.d \
+ div_ae.d \
+ rem_af.d \
+ add_b0.d \
+ sub_b1.d \
+ mul_b2.d \
+ div_b3.d \
+ rem_b4.d \
+ and_b5.d \
+ or_b6.d \
+ xor_b7.d \
+ shl_b8.d \
+ shr_b9.d \
+ ushr_ba.d \
+ add_bb.d \
+ sub_bc.d \
+ mul_bd.d \
+ div_be.d \
+ rem_bf.d \
+ and_c0.d \
+ or_c1.d \
+ xor_c2.d \
+ shl_c3.d \
+ shr_c4.d \
+ ushr_c5.d \
+ add_c6.d \
+ sub_c7.d \
+ mul_c8.d \
+ div_c9.d \
+ rem_ca.d \
+ add_cb.d \
+ sub_cc.d \
+ mul_cd.d \
+ div_ce.d \
+ rem_cf.d \
+ add_d0.d \
+ rsub_d1.d \
+ mul_d2.d \
+ div_d3.d \
+ rem_d4.d \
+ and_d5.d \
+ or_d6.d \
+ xor_d7.d \
+ add_d8.d \
+ rsub_d9.d \
+ mul_da.d \
+ div_db.d \
+ rem_dc.d \
+ and_dd.d \
+ or_de.d \
+ xor_df.d \
+ shl_e0.d \
+ shr_e1.d \
+ ushr_e2.d
+
+
+all: $(DALVIK_DEFS:.d=.g) fmk.done d2c_final_rules
+
+fmk.done: $(DALVIK_DEFS)
+ $(GEN_BIN) ../opcodes/ ../opdefs/.gen ../../../../tools/d2c/globalgen.mk -
+ touch $@
+
+clean:
+ rm -rf $(DALVIK_DEFS:.d=.g) .gen fmk.done
diff --git a/src/arch/dalvik/opdefs/add_90.d b/src/arch/dalvik/opdefs/add_90.d
new file mode 100644
index 0000000..04168ab
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_90.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/add_9b.d b/src/arch/dalvik/opdefs/add_9b.d
new file mode 100644
index 0000000..fc40b13
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_9b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/add_a6.d b/src/arch/dalvik/opdefs/add_a6.d
new file mode 100644
index 0000000..055358b
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_a6.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-float
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/add_ab.d b/src/arch/dalvik/opdefs/add_ab.d
new file mode 100644
index 0000000..1506483
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_ab.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-double
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/add_b0.d b/src/arch/dalvik/opdefs/add_b0.d
new file mode 100644
index 0000000..9c5605e
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_b0.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/add_bb.d b/src/arch/dalvik/opdefs/add_bb.d
new file mode 100644
index 0000000..aba27f3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_bb.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/add_c6.d b/src/arch/dalvik/opdefs/add_c6.d
new file mode 100644
index 0000000..3394b92
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_c6.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-float/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/add_cb.d b/src/arch/dalvik/opdefs/add_cb.d
new file mode 100644
index 0000000..896f614
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_cb.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-double/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/add_d0.d b/src/arch/dalvik/opdefs/add_d0.d
new file mode 100644
index 0000000..f6f4324
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_d0.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-int/lit16
+
+@encoding() {
+
+ @format 22s
+
+}
diff --git a/src/arch/dalvik/opdefs/add_d8.d b/src/arch/dalvik/opdefs/add_d8.d
new file mode 100644
index 0000000..ec4ee01
--- /dev/null
+++ b/src/arch/dalvik/opdefs/add_d8.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title add-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/aget_44.d b/src/arch/dalvik/opdefs/aget_44.d
new file mode 100644
index 0000000..b3a26cb
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aget_44.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aget
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aget_45.d b/src/arch/dalvik/opdefs/aget_45.d
new file mode 100644
index 0000000..184667b
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aget_45.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aget-wide
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aget_46.d b/src/arch/dalvik/opdefs/aget_46.d
new file mode 100644
index 0000000..b951c09
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aget_46.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aget-object
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aget_47.d b/src/arch/dalvik/opdefs/aget_47.d
new file mode 100644
index 0000000..0a5e90b
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aget_47.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aget-boolean
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aget_48.d b/src/arch/dalvik/opdefs/aget_48.d
new file mode 100644
index 0000000..c84f513
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aget_48.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aget-byte
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aget_49.d b/src/arch/dalvik/opdefs/aget_49.d
new file mode 100644
index 0000000..396434b
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aget_49.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aget-char
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aget_4a.d b/src/arch/dalvik/opdefs/aget_4a.d
new file mode 100644
index 0000000..ce9497f
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aget_4a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aget-short
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/and_95.d b/src/arch/dalvik/opdefs/and_95.d
new file mode 100644
index 0000000..3926c05
--- /dev/null
+++ b/src/arch/dalvik/opdefs/and_95.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title and-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/and_a0.d b/src/arch/dalvik/opdefs/and_a0.d
new file mode 100644
index 0000000..b011156
--- /dev/null
+++ b/src/arch/dalvik/opdefs/and_a0.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title and-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/and_b5.d b/src/arch/dalvik/opdefs/and_b5.d
new file mode 100644
index 0000000..dec2ffb
--- /dev/null
+++ b/src/arch/dalvik/opdefs/and_b5.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title and-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/and_c0.d b/src/arch/dalvik/opdefs/and_c0.d
new file mode 100644
index 0000000..6fb52b6
--- /dev/null
+++ b/src/arch/dalvik/opdefs/and_c0.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title and-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/and_d5.d b/src/arch/dalvik/opdefs/and_d5.d
new file mode 100644
index 0000000..081c0d0
--- /dev/null
+++ b/src/arch/dalvik/opdefs/and_d5.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title and-int/lit16
+
+@encoding() {
+
+ @format 22s
+
+}
diff --git a/src/arch/dalvik/opdefs/and_dd.d b/src/arch/dalvik/opdefs/and_dd.d
new file mode 100644
index 0000000..8adae05
--- /dev/null
+++ b/src/arch/dalvik/opdefs/and_dd.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title and-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/aput_4b.d b/src/arch/dalvik/opdefs/aput_4b.d
new file mode 100644
index 0000000..90cc75f
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aput_4b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aput
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aput_4c.d b/src/arch/dalvik/opdefs/aput_4c.d
new file mode 100644
index 0000000..ff545f4
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aput_4c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aput-wide
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aput_4d.d b/src/arch/dalvik/opdefs/aput_4d.d
new file mode 100644
index 0000000..4c9ae98
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aput_4d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aput-object
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aput_4e.d b/src/arch/dalvik/opdefs/aput_4e.d
new file mode 100644
index 0000000..1602e62
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aput_4e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aput-boolean
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aput_4f.d b/src/arch/dalvik/opdefs/aput_4f.d
new file mode 100644
index 0000000..3632974
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aput_4f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aput-byte
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aput_50.d b/src/arch/dalvik/opdefs/aput_50.d
new file mode 100644
index 0000000..c295386
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aput_50.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aput-char
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/aput_51.d b/src/arch/dalvik/opdefs/aput_51.d
new file mode 100644
index 0000000..11ad5b2
--- /dev/null
+++ b/src/arch/dalvik/opdefs/aput_51.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title aput-short
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/array_21.d b/src/arch/dalvik/opdefs/array_21.d
new file mode 100644
index 0000000..e0ca860
--- /dev/null
+++ b/src/arch/dalvik/opdefs/array_21.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title array-length
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/array_24.d b/src/arch/dalvik/opdefs/array_24.d
new file mode 100644
index 0000000..b7dc4d4
--- /dev/null
+++ b/src/arch/dalvik/opdefs/array_24.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title filled-new-array
+
+@encoding() {
+
+ @format 35c
+
+}
diff --git a/src/arch/dalvik/opdefs/array_26.d b/src/arch/dalvik/opdefs/array_26.d
new file mode 100644
index 0000000..f57afd1
--- /dev/null
+++ b/src/arch/dalvik/opdefs/array_26.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title fill-array-data
+
+@encoding() {
+
+ @format 31t
+
+}
diff --git a/src/arch/dalvik/opdefs/check_1f.d b/src/arch/dalvik/opdefs/check_1f.d
new file mode 100644
index 0000000..7de7e56
--- /dev/null
+++ b/src/arch/dalvik/opdefs/check_1f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title check-cast
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/cmp_31.d b/src/arch/dalvik/opdefs/cmp_31.d
new file mode 100644
index 0000000..baedee6
--- /dev/null
+++ b/src/arch/dalvik/opdefs/cmp_31.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title cmp-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/cmpg_2e.d b/src/arch/dalvik/opdefs/cmpg_2e.d
new file mode 100644
index 0000000..296337c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/cmpg_2e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title cmpg-float
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/cmpg_30.d b/src/arch/dalvik/opdefs/cmpg_30.d
new file mode 100644
index 0000000..dbb66ae
--- /dev/null
+++ b/src/arch/dalvik/opdefs/cmpg_30.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title cmpg-double
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/cmpl_2d.d b/src/arch/dalvik/opdefs/cmpl_2d.d
new file mode 100644
index 0000000..b76b73e
--- /dev/null
+++ b/src/arch/dalvik/opdefs/cmpl_2d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title cmpl-float
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/cmpl_2f.d b/src/arch/dalvik/opdefs/cmpl_2f.d
new file mode 100644
index 0000000..cebd732
--- /dev/null
+++ b/src/arch/dalvik/opdefs/cmpl_2f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title cmpl-double
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/const_12.d b/src/arch/dalvik/opdefs/const_12.d
new file mode 100644
index 0000000..bc4e4f8
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_12.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const/4
+
+@encoding() {
+
+ @format 11n
+
+}
diff --git a/src/arch/dalvik/opdefs/const_13.d b/src/arch/dalvik/opdefs/const_13.d
new file mode 100644
index 0000000..9b65ba4
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_13.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const/16
+
+@encoding() {
+
+ @format 21s
+
+}
diff --git a/src/arch/dalvik/opdefs/const_14.d b/src/arch/dalvik/opdefs/const_14.d
new file mode 100644
index 0000000..039d372
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_14.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const
+
+@encoding() {
+
+ @format 31i
+
+}
diff --git a/src/arch/dalvik/opdefs/const_15.d b/src/arch/dalvik/opdefs/const_15.d
new file mode 100644
index 0000000..add0673
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_15.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const/high16
+
+@encoding() {
+
+ @format 21h
+
+}
diff --git a/src/arch/dalvik/opdefs/const_16.d b/src/arch/dalvik/opdefs/const_16.d
new file mode 100644
index 0000000..cb1ce25
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_16.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const-wide/16
+
+@encoding() {
+
+ @format 21s
+
+}
diff --git a/src/arch/dalvik/opdefs/const_17.d b/src/arch/dalvik/opdefs/const_17.d
new file mode 100644
index 0000000..88a9f0c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_17.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const-wide/32
+
+@encoding() {
+
+ @format 31i
+
+}
diff --git a/src/arch/dalvik/opdefs/const_18.d b/src/arch/dalvik/opdefs/const_18.d
new file mode 100644
index 0000000..d792add
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_18.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const-wide
+
+@encoding() {
+
+ @format 51l
+
+}
diff --git a/src/arch/dalvik/opdefs/const_19.d b/src/arch/dalvik/opdefs/const_19.d
new file mode 100644
index 0000000..577eaf3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_19.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const-wide/high16
+
+@encoding() {
+
+ @format 21h
+
+}
diff --git a/src/arch/dalvik/opdefs/const_1a.d b/src/arch/dalvik/opdefs/const_1a.d
new file mode 100644
index 0000000..c6d3f62
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_1a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const-string
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/const_1b.d b/src/arch/dalvik/opdefs/const_1b.d
new file mode 100644
index 0000000..e7c97e1
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_1b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const-string/jumbo
+
+@encoding() {
+
+ @format 31c
+
+}
diff --git a/src/arch/dalvik/opdefs/const_1c.d b/src/arch/dalvik/opdefs/const_1c.d
new file mode 100644
index 0000000..623fca0
--- /dev/null
+++ b/src/arch/dalvik/opdefs/const_1c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title const-class
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/div_93.d b/src/arch/dalvik/opdefs/div_93.d
new file mode 100644
index 0000000..cfb7f34
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_93.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/div_9e.d b/src/arch/dalvik/opdefs/div_9e.d
new file mode 100644
index 0000000..b12ebd1
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_9e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/div_a9.d b/src/arch/dalvik/opdefs/div_a9.d
new file mode 100644
index 0000000..f7ce52e
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_a9.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-float
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/div_ae.d b/src/arch/dalvik/opdefs/div_ae.d
new file mode 100644
index 0000000..fae8164
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_ae.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-double
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/div_b3.d b/src/arch/dalvik/opdefs/div_b3.d
new file mode 100644
index 0000000..d1cf5d9
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_b3.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/div_be.d b/src/arch/dalvik/opdefs/div_be.d
new file mode 100644
index 0000000..a146c29
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_be.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/div_c9.d b/src/arch/dalvik/opdefs/div_c9.d
new file mode 100644
index 0000000..541ed90
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_c9.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-float/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/div_ce.d b/src/arch/dalvik/opdefs/div_ce.d
new file mode 100644
index 0000000..2c735e4
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_ce.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-double/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/div_d3.d b/src/arch/dalvik/opdefs/div_d3.d
new file mode 100644
index 0000000..9dde5bd
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_d3.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-int/lit16
+
+@encoding() {
+
+ @format 22s
+
+}
diff --git a/src/arch/dalvik/opdefs/div_db.d b/src/arch/dalvik/opdefs/div_db.d
new file mode 100644
index 0000000..6754ed8
--- /dev/null
+++ b/src/arch/dalvik/opdefs/div_db.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title div-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/filled_25.d b/src/arch/dalvik/opdefs/filled_25.d
new file mode 100644
index 0000000..7bb4088
--- /dev/null
+++ b/src/arch/dalvik/opdefs/filled_25.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title filled-new-array/range
+
+@encoding() {
+
+ @format 3rc
+
+}
diff --git a/src/arch/dalvik/opdefs/goto_28.d b/src/arch/dalvik/opdefs/goto_28.d
new file mode 100644
index 0000000..ab5d4e6
--- /dev/null
+++ b/src/arch/dalvik/opdefs/goto_28.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title goto
+
+@encoding() {
+
+ @format 10t
+
+}
diff --git a/src/arch/dalvik/opdefs/goto_29.d b/src/arch/dalvik/opdefs/goto_29.d
new file mode 100644
index 0000000..3df2500
--- /dev/null
+++ b/src/arch/dalvik/opdefs/goto_29.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title goto/16
+
+@encoding() {
+
+ @format 20t
+
+}
diff --git a/src/arch/dalvik/opdefs/goto_2a.d b/src/arch/dalvik/opdefs/goto_2a.d
new file mode 100644
index 0000000..ea2f8aa
--- /dev/null
+++ b/src/arch/dalvik/opdefs/goto_2a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title goto/32
+
+@encoding() {
+
+ @format 30t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_32.d b/src/arch/dalvik/opdefs/if_32.d
new file mode 100644
index 0000000..587b4c2
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_32.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-eq
+
+@encoding() {
+
+ @format 22t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_33.d b/src/arch/dalvik/opdefs/if_33.d
new file mode 100644
index 0000000..51f09cc
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_33.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-ne
+
+@encoding() {
+
+ @format 22t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_34.d b/src/arch/dalvik/opdefs/if_34.d
new file mode 100644
index 0000000..14429eb
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_34.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-lt
+
+@encoding() {
+
+ @format 22t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_35.d b/src/arch/dalvik/opdefs/if_35.d
new file mode 100644
index 0000000..642e1b0
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_35.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-ge
+
+@encoding() {
+
+ @format 22t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_36.d b/src/arch/dalvik/opdefs/if_36.d
new file mode 100644
index 0000000..962b341
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_36.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-gt
+
+@encoding() {
+
+ @format 22t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_37.d b/src/arch/dalvik/opdefs/if_37.d
new file mode 100644
index 0000000..29f1601
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_37.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-le
+
+@encoding() {
+
+ @format 22t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_38.d b/src/arch/dalvik/opdefs/if_38.d
new file mode 100644
index 0000000..19d0ad9
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_38.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-eqz
+
+@encoding() {
+
+ @format 21t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_39.d b/src/arch/dalvik/opdefs/if_39.d
new file mode 100644
index 0000000..fc63f81
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_39.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-nez
+
+@encoding() {
+
+ @format 21t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_3a.d b/src/arch/dalvik/opdefs/if_3a.d
new file mode 100644
index 0000000..4f78692
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_3a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-ltz
+
+@encoding() {
+
+ @format 21t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_3b.d b/src/arch/dalvik/opdefs/if_3b.d
new file mode 100644
index 0000000..2d4a804
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_3b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-gez
+
+@encoding() {
+
+ @format 21t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_3c.d b/src/arch/dalvik/opdefs/if_3c.d
new file mode 100644
index 0000000..08dcf19
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_3c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-gtz
+
+@encoding() {
+
+ @format 21t
+
+}
diff --git a/src/arch/dalvik/opdefs/if_3d.d b/src/arch/dalvik/opdefs/if_3d.d
new file mode 100644
index 0000000..fd0b239
--- /dev/null
+++ b/src/arch/dalvik/opdefs/if_3d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title if-lez
+
+@encoding() {
+
+ @format 21t
+
+}
diff --git a/src/arch/dalvik/opdefs/iget_52.d b/src/arch/dalvik/opdefs/iget_52.d
new file mode 100644
index 0000000..6217ddb
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iget_52.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iget
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iget_53.d b/src/arch/dalvik/opdefs/iget_53.d
new file mode 100644
index 0000000..adf089e
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iget_53.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iget-wide
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iget_54.d b/src/arch/dalvik/opdefs/iget_54.d
new file mode 100644
index 0000000..45bc02c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iget_54.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iget-object
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iget_55.d b/src/arch/dalvik/opdefs/iget_55.d
new file mode 100644
index 0000000..d5a37bc
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iget_55.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iget-boolean
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iget_56.d b/src/arch/dalvik/opdefs/iget_56.d
new file mode 100644
index 0000000..5bffd30
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iget_56.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iget-byte
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iget_57.d b/src/arch/dalvik/opdefs/iget_57.d
new file mode 100644
index 0000000..43ba4b6
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iget_57.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iget-char
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iget_58.d b/src/arch/dalvik/opdefs/iget_58.d
new file mode 100644
index 0000000..aba5271
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iget_58.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iget-short
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/instanceof_20.d b/src/arch/dalvik/opdefs/instanceof_20.d
new file mode 100644
index 0000000..82136a2
--- /dev/null
+++ b/src/arch/dalvik/opdefs/instanceof_20.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title instance-of
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_6e.d b/src/arch/dalvik/opdefs/invoke_6e.d
new file mode 100644
index 0000000..e9a679b
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_6e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-virtual
+
+@encoding() {
+
+ @format 35c
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_6f.d b/src/arch/dalvik/opdefs/invoke_6f.d
new file mode 100644
index 0000000..80834e2
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_6f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-super
+
+@encoding() {
+
+ @format 35c
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_70.d b/src/arch/dalvik/opdefs/invoke_70.d
new file mode 100644
index 0000000..0624fa3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_70.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-direct
+
+@encoding() {
+
+ @format 35c
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_71.d b/src/arch/dalvik/opdefs/invoke_71.d
new file mode 100644
index 0000000..7088d9f
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_71.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-static
+
+@encoding() {
+
+ @format 35c
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_72.d b/src/arch/dalvik/opdefs/invoke_72.d
new file mode 100644
index 0000000..fc15dd6
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_72.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-interface
+
+@encoding() {
+
+ @format 35c
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_74.d b/src/arch/dalvik/opdefs/invoke_74.d
new file mode 100644
index 0000000..0703ea7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_74.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-virtual/range
+
+@encoding() {
+
+ @format 3rc
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_75.d b/src/arch/dalvik/opdefs/invoke_75.d
new file mode 100644
index 0000000..351ccc7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_75.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-super/range
+
+@encoding() {
+
+ @format 3rc
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_76.d b/src/arch/dalvik/opdefs/invoke_76.d
new file mode 100644
index 0000000..cf00220
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_76.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-direct/range
+
+@encoding() {
+
+ @format 3rc
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_77.d b/src/arch/dalvik/opdefs/invoke_77.d
new file mode 100644
index 0000000..76aa1d0
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_77.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-static/range
+
+@encoding() {
+
+ @format 3rc
+
+}
diff --git a/src/arch/dalvik/opdefs/invoke_78.d b/src/arch/dalvik/opdefs/invoke_78.d
new file mode 100644
index 0000000..fd4d1ee
--- /dev/null
+++ b/src/arch/dalvik/opdefs/invoke_78.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title invoke-interface/range
+
+@encoding() {
+
+ @format 3rc
+
+}
diff --git a/src/arch/dalvik/opdefs/iput_59.d b/src/arch/dalvik/opdefs/iput_59.d
new file mode 100644
index 0000000..d4058c3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iput_59.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iput
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iput_5a.d b/src/arch/dalvik/opdefs/iput_5a.d
new file mode 100644
index 0000000..84ba41a
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iput_5a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iput-wide
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iput_5b.d b/src/arch/dalvik/opdefs/iput_5b.d
new file mode 100644
index 0000000..628bfc2
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iput_5b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iput-object
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iput_5c.d b/src/arch/dalvik/opdefs/iput_5c.d
new file mode 100644
index 0000000..7121604
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iput_5c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iput-boolean
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iput_5d.d b/src/arch/dalvik/opdefs/iput_5d.d
new file mode 100644
index 0000000..96ff6c0
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iput_5d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iput-byte
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iput_5e.d b/src/arch/dalvik/opdefs/iput_5e.d
new file mode 100644
index 0000000..888ce46
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iput_5e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iput-char
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/iput_5f.d b/src/arch/dalvik/opdefs/iput_5f.d
new file mode 100644
index 0000000..5ed0a01
--- /dev/null
+++ b/src/arch/dalvik/opdefs/iput_5f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title iput-short
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/monitor_1d.d b/src/arch/dalvik/opdefs/monitor_1d.d
new file mode 100644
index 0000000..ab7ce5f
--- /dev/null
+++ b/src/arch/dalvik/opdefs/monitor_1d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title monitor-enter
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/monitor_1e.d b/src/arch/dalvik/opdefs/monitor_1e.d
new file mode 100644
index 0000000..b5b0d20
--- /dev/null
+++ b/src/arch/dalvik/opdefs/monitor_1e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title monitor-exit
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_01.d b/src/arch/dalvik/opdefs/move_01.d
new file mode 100644
index 0000000..caa2a85
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_01.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_02.d b/src/arch/dalvik/opdefs/move_02.d
new file mode 100644
index 0000000..c8b96bd
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_02.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move/from16
+
+@encoding() {
+
+ @format 22x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_03.d b/src/arch/dalvik/opdefs/move_03.d
new file mode 100644
index 0000000..6957de7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_03.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move/16
+
+@encoding() {
+
+ @format 32x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_04.d b/src/arch/dalvik/opdefs/move_04.d
new file mode 100644
index 0000000..57196cc
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_04.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-wide
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_05.d b/src/arch/dalvik/opdefs/move_05.d
new file mode 100644
index 0000000..2b974bb
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_05.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-wide/from16
+
+@encoding() {
+
+ @format 22x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_06.d b/src/arch/dalvik/opdefs/move_06.d
new file mode 100644
index 0000000..4acaf62
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_06.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-wide/16
+
+@encoding() {
+
+ @format 32x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_07.d b/src/arch/dalvik/opdefs/move_07.d
new file mode 100644
index 0000000..cde3102
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_07.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-object
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_08.d b/src/arch/dalvik/opdefs/move_08.d
new file mode 100644
index 0000000..aba0cad
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_08.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-object/from16
+
+@encoding() {
+
+ @format 22x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_09.d b/src/arch/dalvik/opdefs/move_09.d
new file mode 100644
index 0000000..3bf6a65
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_09.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-object/16
+
+@encoding() {
+
+ @format 32x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_0a.d b/src/arch/dalvik/opdefs/move_0a.d
new file mode 100644
index 0000000..b6a185a
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_0a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-result
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_0b.d b/src/arch/dalvik/opdefs/move_0b.d
new file mode 100644
index 0000000..d266cb8
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_0b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-result-wide
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_0c.d b/src/arch/dalvik/opdefs/move_0c.d
new file mode 100644
index 0000000..8e6f67f
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_0c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-result-object
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/move_0d.d b/src/arch/dalvik/opdefs/move_0d.d
new file mode 100644
index 0000000..f442006
--- /dev/null
+++ b/src/arch/dalvik/opdefs/move_0d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title move-exception
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_92.d b/src/arch/dalvik/opdefs/mul_92.d
new file mode 100644
index 0000000..83b5cac
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_92.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_9d.d b/src/arch/dalvik/opdefs/mul_9d.d
new file mode 100644
index 0000000..ecc216d
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_9d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_a8.d b/src/arch/dalvik/opdefs/mul_a8.d
new file mode 100644
index 0000000..63e51e5
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_a8.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-float
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_ad.d b/src/arch/dalvik/opdefs/mul_ad.d
new file mode 100644
index 0000000..17f950c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_ad.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-double
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_b2.d b/src/arch/dalvik/opdefs/mul_b2.d
new file mode 100644
index 0000000..a7b917c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_b2.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_bd.d b/src/arch/dalvik/opdefs/mul_bd.d
new file mode 100644
index 0000000..8ce23b1
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_bd.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_c8.d b/src/arch/dalvik/opdefs/mul_c8.d
new file mode 100644
index 0000000..1d17cc1
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_c8.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-float/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_cd.d b/src/arch/dalvik/opdefs/mul_cd.d
new file mode 100644
index 0000000..1816780
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_cd.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-double/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_d2.d b/src/arch/dalvik/opdefs/mul_d2.d
new file mode 100644
index 0000000..998ecd7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_d2.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-int/lit16
+
+@encoding() {
+
+ @format 22s
+
+}
diff --git a/src/arch/dalvik/opdefs/mul_da.d b/src/arch/dalvik/opdefs/mul_da.d
new file mode 100644
index 0000000..4c1a264
--- /dev/null
+++ b/src/arch/dalvik/opdefs/mul_da.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title mul-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/neg_7b.d b/src/arch/dalvik/opdefs/neg_7b.d
new file mode 100644
index 0000000..c8ec7df
--- /dev/null
+++ b/src/arch/dalvik/opdefs/neg_7b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title neg-int
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/neg_7d.d b/src/arch/dalvik/opdefs/neg_7d.d
new file mode 100644
index 0000000..3d442c3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/neg_7d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title neg-long
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/neg_7f.d b/src/arch/dalvik/opdefs/neg_7f.d
new file mode 100644
index 0000000..d30ede6
--- /dev/null
+++ b/src/arch/dalvik/opdefs/neg_7f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title neg-float
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/neg_80.d b/src/arch/dalvik/opdefs/neg_80.d
new file mode 100644
index 0000000..49d6bdd
--- /dev/null
+++ b/src/arch/dalvik/opdefs/neg_80.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title neg-double
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/new_22.d b/src/arch/dalvik/opdefs/new_22.d
new file mode 100644
index 0000000..4c13f0e
--- /dev/null
+++ b/src/arch/dalvik/opdefs/new_22.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title new-instance
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/new_23.d b/src/arch/dalvik/opdefs/new_23.d
new file mode 100644
index 0000000..ab61cd4
--- /dev/null
+++ b/src/arch/dalvik/opdefs/new_23.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title new-array
+
+@encoding() {
+
+ @format 22c
+
+}
diff --git a/src/arch/dalvik/opdefs/nop_00.d b/src/arch/dalvik/opdefs/nop_00.d
new file mode 100644
index 0000000..d10d439
--- /dev/null
+++ b/src/arch/dalvik/opdefs/nop_00.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title nop
+
+@encoding() {
+
+ @format 10x
+
+}
diff --git a/src/arch/dalvik/opdefs/not_7c.d b/src/arch/dalvik/opdefs/not_7c.d
new file mode 100644
index 0000000..d52ad8c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/not_7c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title not-int
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/not_7e.d b/src/arch/dalvik/opdefs/not_7e.d
new file mode 100644
index 0000000..4291d7a
--- /dev/null
+++ b/src/arch/dalvik/opdefs/not_7e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title not-long
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/or_96.d b/src/arch/dalvik/opdefs/or_96.d
new file mode 100644
index 0000000..62f24a5
--- /dev/null
+++ b/src/arch/dalvik/opdefs/or_96.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title or-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/or_a1.d b/src/arch/dalvik/opdefs/or_a1.d
new file mode 100644
index 0000000..2867a81
--- /dev/null
+++ b/src/arch/dalvik/opdefs/or_a1.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title or-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/or_b6.d b/src/arch/dalvik/opdefs/or_b6.d
new file mode 100644
index 0000000..3d56801
--- /dev/null
+++ b/src/arch/dalvik/opdefs/or_b6.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title or-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/or_c1.d b/src/arch/dalvik/opdefs/or_c1.d
new file mode 100644
index 0000000..8d13da3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/or_c1.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title or-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/or_d6.d b/src/arch/dalvik/opdefs/or_d6.d
new file mode 100644
index 0000000..71766a3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/or_d6.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title or-int/lit16
+
+@encoding() {
+
+ @format 22s
+
+}
diff --git a/src/arch/dalvik/opdefs/or_de.d b/src/arch/dalvik/opdefs/or_de.d
new file mode 100644
index 0000000..1c293a5
--- /dev/null
+++ b/src/arch/dalvik/opdefs/or_de.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title or-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_94.d b/src/arch/dalvik/opdefs/rem_94.d
new file mode 100644
index 0000000..9238d14
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_94.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_9f.d b/src/arch/dalvik/opdefs/rem_9f.d
new file mode 100644
index 0000000..6aef568
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_9f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_aa.d b/src/arch/dalvik/opdefs/rem_aa.d
new file mode 100644
index 0000000..71a0d8b
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_aa.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-float
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_af.d b/src/arch/dalvik/opdefs/rem_af.d
new file mode 100644
index 0000000..dc092a1
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_af.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-double
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_b4.d b/src/arch/dalvik/opdefs/rem_b4.d
new file mode 100644
index 0000000..fada523
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_b4.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_bf.d b/src/arch/dalvik/opdefs/rem_bf.d
new file mode 100644
index 0000000..b6b0997
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_bf.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_ca.d b/src/arch/dalvik/opdefs/rem_ca.d
new file mode 100644
index 0000000..3c6d287
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_ca.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-float/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_cf.d b/src/arch/dalvik/opdefs/rem_cf.d
new file mode 100644
index 0000000..1881502
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_cf.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-double/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_d4.d b/src/arch/dalvik/opdefs/rem_d4.d
new file mode 100644
index 0000000..84d12b8
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_d4.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-int/lit16
+
+@encoding() {
+
+ @format 22s
+
+}
diff --git a/src/arch/dalvik/opdefs/rem_dc.d b/src/arch/dalvik/opdefs/rem_dc.d
new file mode 100644
index 0000000..f70f9e9
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rem_dc.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rem-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/return_0e.d b/src/arch/dalvik/opdefs/return_0e.d
new file mode 100644
index 0000000..6b71fa7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/return_0e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title return-void
+
+@encoding() {
+
+ @format 10x
+
+}
diff --git a/src/arch/dalvik/opdefs/return_0f.d b/src/arch/dalvik/opdefs/return_0f.d
new file mode 100644
index 0000000..8fbd711
--- /dev/null
+++ b/src/arch/dalvik/opdefs/return_0f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title return
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/return_10.d b/src/arch/dalvik/opdefs/return_10.d
new file mode 100644
index 0000000..0ff6dd8
--- /dev/null
+++ b/src/arch/dalvik/opdefs/return_10.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title return-wide
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/return_11.d b/src/arch/dalvik/opdefs/return_11.d
new file mode 100644
index 0000000..85bf2da
--- /dev/null
+++ b/src/arch/dalvik/opdefs/return_11.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title return-object
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/rsub_d1.d b/src/arch/dalvik/opdefs/rsub_d1.d
new file mode 100644
index 0000000..0d05c84
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rsub_d1.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rsub-int
+
+@encoding() {
+
+ @format 22s
+
+}
diff --git a/src/arch/dalvik/opdefs/rsub_d9.d b/src/arch/dalvik/opdefs/rsub_d9.d
new file mode 100644
index 0000000..0f2f656
--- /dev/null
+++ b/src/arch/dalvik/opdefs/rsub_d9.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title rsub-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/sget_60.d b/src/arch/dalvik/opdefs/sget_60.d
new file mode 100644
index 0000000..803e09c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sget_60.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sget
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sget_61.d b/src/arch/dalvik/opdefs/sget_61.d
new file mode 100644
index 0000000..9681de3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sget_61.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sget-wide
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sget_62.d b/src/arch/dalvik/opdefs/sget_62.d
new file mode 100644
index 0000000..0a21e7c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sget_62.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sget-object
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sget_63.d b/src/arch/dalvik/opdefs/sget_63.d
new file mode 100644
index 0000000..f0d7ab7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sget_63.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sget-boolean
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sget_64.d b/src/arch/dalvik/opdefs/sget_64.d
new file mode 100644
index 0000000..7dc329e
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sget_64.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sget-byte
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sget_65.d b/src/arch/dalvik/opdefs/sget_65.d
new file mode 100644
index 0000000..8336764
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sget_65.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sget-char
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sget_66.d b/src/arch/dalvik/opdefs/sget_66.d
new file mode 100644
index 0000000..fc6440a
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sget_66.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sget-short
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/shl_98.d b/src/arch/dalvik/opdefs/shl_98.d
new file mode 100644
index 0000000..bfb92bd
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shl_98.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shl-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/shl_a3.d b/src/arch/dalvik/opdefs/shl_a3.d
new file mode 100644
index 0000000..c3772b0
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shl_a3.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shl-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/shl_b8.d b/src/arch/dalvik/opdefs/shl_b8.d
new file mode 100644
index 0000000..70f99e1
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shl_b8.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shl-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/shl_c3.d b/src/arch/dalvik/opdefs/shl_c3.d
new file mode 100644
index 0000000..94d35e5
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shl_c3.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shl-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/shl_e0.d b/src/arch/dalvik/opdefs/shl_e0.d
new file mode 100644
index 0000000..c5c8d50
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shl_e0.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shl-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/shr_99.d b/src/arch/dalvik/opdefs/shr_99.d
new file mode 100644
index 0000000..203e4d5
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shr_99.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shr-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/shr_a4.d b/src/arch/dalvik/opdefs/shr_a4.d
new file mode 100644
index 0000000..16e07a6
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shr_a4.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shr-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/shr_b9.d b/src/arch/dalvik/opdefs/shr_b9.d
new file mode 100644
index 0000000..5f48795
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shr_b9.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shr-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/shr_c4.d b/src/arch/dalvik/opdefs/shr_c4.d
new file mode 100644
index 0000000..80cbfee
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shr_c4.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shr-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/shr_e1.d b/src/arch/dalvik/opdefs/shr_e1.d
new file mode 100644
index 0000000..38a30dc
--- /dev/null
+++ b/src/arch/dalvik/opdefs/shr_e1.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title shr-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/sput_67.d b/src/arch/dalvik/opdefs/sput_67.d
new file mode 100644
index 0000000..e7157a5
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sput_67.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sput
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sput_68.d b/src/arch/dalvik/opdefs/sput_68.d
new file mode 100644
index 0000000..e6a8948
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sput_68.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sput-wide
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sput_69.d b/src/arch/dalvik/opdefs/sput_69.d
new file mode 100644
index 0000000..f41e84c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sput_69.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sput-object
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sput_6a.d b/src/arch/dalvik/opdefs/sput_6a.d
new file mode 100644
index 0000000..17aa26a
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sput_6a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sput-boolean
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sput_6b.d b/src/arch/dalvik/opdefs/sput_6b.d
new file mode 100644
index 0000000..8aa83ef
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sput_6b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sput-byte
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sput_6c.d b/src/arch/dalvik/opdefs/sput_6c.d
new file mode 100644
index 0000000..b863af4
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sput_6c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sput-char
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sput_6d.d b/src/arch/dalvik/opdefs/sput_6d.d
new file mode 100644
index 0000000..65ca067
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sput_6d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sput-short
+
+@encoding() {
+
+ @format 21c
+
+}
diff --git a/src/arch/dalvik/opdefs/sub_91.d b/src/arch/dalvik/opdefs/sub_91.d
new file mode 100644
index 0000000..34fd476
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sub_91.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sub-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/sub_9c.d b/src/arch/dalvik/opdefs/sub_9c.d
new file mode 100644
index 0000000..566cb80
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sub_9c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sub-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/sub_a7.d b/src/arch/dalvik/opdefs/sub_a7.d
new file mode 100644
index 0000000..22851c6
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sub_a7.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sub-float
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/sub_ac.d b/src/arch/dalvik/opdefs/sub_ac.d
new file mode 100644
index 0000000..c818423
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sub_ac.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sub-double
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/sub_b1.d b/src/arch/dalvik/opdefs/sub_b1.d
new file mode 100644
index 0000000..4102367
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sub_b1.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sub-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/sub_bc.d b/src/arch/dalvik/opdefs/sub_bc.d
new file mode 100644
index 0000000..b0a22ae
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sub_bc.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sub-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/sub_c7.d b/src/arch/dalvik/opdefs/sub_c7.d
new file mode 100644
index 0000000..dc8fd47
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sub_c7.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sub-float/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/sub_cc.d b/src/arch/dalvik/opdefs/sub_cc.d
new file mode 100644
index 0000000..d24b702
--- /dev/null
+++ b/src/arch/dalvik/opdefs/sub_cc.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sub-double/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/switch_2b.d b/src/arch/dalvik/opdefs/switch_2b.d
new file mode 100644
index 0000000..2d13992
--- /dev/null
+++ b/src/arch/dalvik/opdefs/switch_2b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title packed-switch
+
+@encoding() {
+
+ @format 31t
+
+}
diff --git a/src/arch/dalvik/opdefs/switch_2c.d b/src/arch/dalvik/opdefs/switch_2c.d
new file mode 100644
index 0000000..b56cd9d
--- /dev/null
+++ b/src/arch/dalvik/opdefs/switch_2c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title sparse-switch
+
+@encoding() {
+
+ @format 31t
+
+}
diff --git a/src/arch/dalvik/opdefs/throw_27.d b/src/arch/dalvik/opdefs/throw_27.d
new file mode 100644
index 0000000..28a8348
--- /dev/null
+++ b/src/arch/dalvik/opdefs/throw_27.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title throw
+
+@encoding() {
+
+ @format 11x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_81.d b/src/arch/dalvik/opdefs/to_81.d
new file mode 100644
index 0000000..e1b45b3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_81.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title int-to-long
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_82.d b/src/arch/dalvik/opdefs/to_82.d
new file mode 100644
index 0000000..4d5e667
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_82.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title int-to-float
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_83.d b/src/arch/dalvik/opdefs/to_83.d
new file mode 100644
index 0000000..6f764c1
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_83.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title int-to-double
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_84.d b/src/arch/dalvik/opdefs/to_84.d
new file mode 100644
index 0000000..f3076ae
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_84.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title long-to-int
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_85.d b/src/arch/dalvik/opdefs/to_85.d
new file mode 100644
index 0000000..3ac252c
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_85.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title long-to-float
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_86.d b/src/arch/dalvik/opdefs/to_86.d
new file mode 100644
index 0000000..80e9a28
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_86.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title long-to-double
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_87.d b/src/arch/dalvik/opdefs/to_87.d
new file mode 100644
index 0000000..55028e3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_87.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title float-to-int
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_88.d b/src/arch/dalvik/opdefs/to_88.d
new file mode 100644
index 0000000..2eaa85b
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_88.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title float-to-long
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_89.d b/src/arch/dalvik/opdefs/to_89.d
new file mode 100644
index 0000000..147f280
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_89.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title float-to-double
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_8a.d b/src/arch/dalvik/opdefs/to_8a.d
new file mode 100644
index 0000000..c089942
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_8a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title double-to-int
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_8b.d b/src/arch/dalvik/opdefs/to_8b.d
new file mode 100644
index 0000000..e60ba2f
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_8b.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title double-to-long
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_8c.d b/src/arch/dalvik/opdefs/to_8c.d
new file mode 100644
index 0000000..b7ee496
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_8c.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title double-to-float
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_8d.d b/src/arch/dalvik/opdefs/to_8d.d
new file mode 100644
index 0000000..28a194e
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_8d.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title int-to-byte
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_8e.d b/src/arch/dalvik/opdefs/to_8e.d
new file mode 100644
index 0000000..c8b2598
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_8e.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title int-to-char
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/to_8f.d b/src/arch/dalvik/opdefs/to_8f.d
new file mode 100644
index 0000000..697c102
--- /dev/null
+++ b/src/arch/dalvik/opdefs/to_8f.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title int-to-short
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/ushr_9a.d b/src/arch/dalvik/opdefs/ushr_9a.d
new file mode 100644
index 0000000..d3f48ba
--- /dev/null
+++ b/src/arch/dalvik/opdefs/ushr_9a.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title ushr-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/ushr_a5.d b/src/arch/dalvik/opdefs/ushr_a5.d
new file mode 100644
index 0000000..11578c3
--- /dev/null
+++ b/src/arch/dalvik/opdefs/ushr_a5.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title ushr-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/ushr_ba.d b/src/arch/dalvik/opdefs/ushr_ba.d
new file mode 100644
index 0000000..d9c0ab7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/ushr_ba.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title ushr-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/ushr_c5.d b/src/arch/dalvik/opdefs/ushr_c5.d
new file mode 100644
index 0000000..b0117a7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/ushr_c5.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title ushr-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/ushr_e2.d b/src/arch/dalvik/opdefs/ushr_e2.d
new file mode 100644
index 0000000..5ade4f7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/ushr_e2.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title ushr-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/opdefs/xor_97.d b/src/arch/dalvik/opdefs/xor_97.d
new file mode 100644
index 0000000..3bdfc05
--- /dev/null
+++ b/src/arch/dalvik/opdefs/xor_97.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title xor-int
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/xor_a2.d b/src/arch/dalvik/opdefs/xor_a2.d
new file mode 100644
index 0000000..d651f66
--- /dev/null
+++ b/src/arch/dalvik/opdefs/xor_a2.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title xor-long
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/src/arch/dalvik/opdefs/xor_b7.d b/src/arch/dalvik/opdefs/xor_b7.d
new file mode 100644
index 0000000..b42da76
--- /dev/null
+++ b/src/arch/dalvik/opdefs/xor_b7.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title xor-int/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/xor_c2.d b/src/arch/dalvik/opdefs/xor_c2.d
new file mode 100644
index 0000000..3fd2660
--- /dev/null
+++ b/src/arch/dalvik/opdefs/xor_c2.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title xor-long/2addr
+
+@encoding() {
+
+ @format 12x
+
+}
diff --git a/src/arch/dalvik/opdefs/xor_d7.d b/src/arch/dalvik/opdefs/xor_d7.d
new file mode 100644
index 0000000..2351a21
--- /dev/null
+++ b/src/arch/dalvik/opdefs/xor_d7.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title xor-int/lit16
+
+@encoding() {
+
+ @format 22s
+
+}
diff --git a/src/arch/dalvik/opdefs/xor_df.d b/src/arch/dalvik/opdefs/xor_df.d
new file mode 100644
index 0000000..04443f7
--- /dev/null
+++ b/src/arch/dalvik/opdefs/xor_df.d
@@ -0,0 +1,30 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * Chrysalide is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chrysalide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+@title xor-int/lit8
+
+@encoding() {
+
+ @format 22b
+
+}
diff --git a/src/arch/dalvik/processor.c b/src/arch/dalvik/processor.c
index fdfb38d..9fe7253 100644
--- a/src/arch/dalvik/processor.c
+++ b/src/arch/dalvik/processor.c
@@ -24,12 +24,16 @@
#include "processor.h"
+#include <assert.h>
+
+
#include "context.h"
#include "instruction.h"
#include "opcodes/opcodes.h"
#include "pseudo/fill.h"
#include "pseudo/switch.h"
#include "../processor-int.h"
+#include "../../format/dex/dex.h"
@@ -67,11 +71,12 @@ static GDalvikContext *g_dalvik_processor_get_context(const GDalvikProcessor *);
/* Fournit un contexte pour la décompilation Dalvik. */
static GDalvikDContext *g_dalvik_processor_get_decomp_context(const GDalvikProcessor *);
+/* Décode une instruction dans un flux de données. */
+static GArchInstruction *g_dalvik_processor_disassemble(const GArchProcessor *, GDalvikContext *, const GBinContent *, vmpa2t *, GExeFormat *);
+
/* Décode une pseudo-instruction dans un flux de données. */
-static GArchInstruction *g_dalvik_guess_pseudo_instruction(const GDalvikProcessor *, const bin_t *, off_t *, off_t, vmpa_t);
+static GArchInstruction *g_dalvik_processor_disassemble_pseudo(const GArchProcessor *, GDalvikContext *, const GBinContent *, vmpa2t *, uint8_t);
-/* Décode une instruction dans un flux de données. */
-static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProcessor *, GDalvikContext *, const bin_t *, off_t *, off_t, vmpa_t, GDexFormat *);
/* Indique le type défini par la GLib pour le processeur DALVIK. */
@@ -103,7 +108,7 @@ static void g_dalvik_processor_class_init(GDalvikProcessorClass *klass)
proc = G_ARCH_PROCESSOR_CLASS(klass);
- proc->decode = (decode_instruction_fc)g_dalvik_processor_decode_instruction;
+ proc->disassemble = (disass_instr_fc)g_dalvik_processor_disassemble;
}
@@ -237,90 +242,37 @@ static GDalvikDContext *g_dalvik_processor_get_decomp_context(const GDalvikProce
/******************************************************************************
* *
-* Paramètres : proc = architecture visée par la procédure. *
-* data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
+* Paramètres : proc = architecture visée par la procédure. *
+* ctx = contexte lié à l'exécution du processeur. *
+* content = flux de données à analyser. *
+* pos = position courante dans ce flux. [OUT] *
+* format = format du fichier contenant le code. *
* *
-* Description : Décode une pseudo-instruction dans un flux de données. *
+* Description : Désassemble une instruction dans un flux de données. *
* *
-* Retour : Instruction mise en place ou NULL si aucune trouvée. *
+* Retour : Instruction mise en place ou NULL en cas d'échec. *
* *
* Remarques : - *
* *
******************************************************************************/
-static GArchInstruction *g_dalvik_guess_pseudo_instruction(const GDalvikProcessor *proc, const bin_t *data, off_t *pos, off_t end, vmpa_t addr)
-{
- GArchInstruction *result; /* Instruction à renvoyer */
- off_t tmp; /* Position modifiable */
- uint16_t ident; /* Valeur lue dans le code */
-
- /* Vérification astucieuse et rapide...*/
- if (data[*pos] != 0x00 /* DOP_NOP */) return NULL;
-
- tmp = *pos;
-
- if (!read_u16(&ident, data, &tmp, end, SRE_LITTLE))
- return NULL;
-
- switch (ident)
- {
- case DPO_PACKED_SWITCH:
- case DPO_SPARSE_SWITCH:
- result = g_dalvik_switch_instr_new(data, pos, end, addr, proc);
- break;
-
- case DPO_FILL_ARRAY_DATA:
- result = g_dalvik_fill_instr_new(data, pos, end, addr, proc);
- break;
-
- default:
- result = NULL;
- break;
-
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : proc = architecture visée par la procédure. *
-* ctx = contexte lié à l'exécution du processeur. *
-* data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* format = format du fichier contenant le code. *
-* *
-* Description : Décode une instruction dans un flux de données. *
-* *
-* Retour : Instruction mise en place. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProcessor *proc, GDalvikContext *ctx, const bin_t *data, off_t *pos, off_t end, vmpa_t addr, GDexFormat *format)
+static GArchInstruction *g_dalvik_processor_disassemble(const GArchProcessor *proc, GDalvikContext *ctx, const GBinContent *content, vmpa2t *pos, GExeFormat *format)
{
GArchInstruction *result; /* Instruction à renvoyer */
+ uint8_t raw8; /* Donnée de 8 bits à analyser */
DalvikOpcodes id; /* Identifiant d'instruction */
- static const dalvik_read_instr decodings[DOP_COUNT] = {
+ static const disass_instr_fc decodings[DOP_COUNT] = {
[DOP_NOP] = dalvik_read_instr_nop,
[DOP_MOVE] = dalvik_read_instr_move,
- [DOP_MOVE_FROM_16] = dalvik_read_instr_move_from_16,
+ [DOP_MOVE_FROM_16] = dalvik_read_instr_move_from16,
[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_FROM_16] = dalvik_read_instr_move_wide_from16,
[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_FROM_16] = dalvik_read_instr_move_object_from16,
[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,
@@ -432,21 +384,21 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc
[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,
- [DOP_TO_LONG_INT] = dalvik_read_instr_to_long_int,
- [DOP_TO_LONG_FLOAT] = dalvik_read_instr_to_long_float,
- [DOP_TO_LONG_DOUBLE] = dalvik_read_instr_to_long_double,
- [DOP_TO_FLOAT_INT] = dalvik_read_instr_to_float_int,
- [DOP_TO_FLOAT_LONG] = dalvik_read_instr_to_float_long,
- [DOP_TO_FLOAT_DOUBLE] = dalvik_read_instr_to_float_double,
- [DOP_TO_DOUBLE_INT] = dalvik_read_instr_to_double_int,
- [DOP_TO_DOUBLE_LONG] = dalvik_read_instr_to_double_long,
- [DOP_TO_DOUBLE_FLOAT] = dalvik_read_instr_to_double_float,
- [DOP_TO_INT_BYTE] = dalvik_read_instr_to_int_byte,
- [DOP_TO_INT_CHAR] = dalvik_read_instr_to_int_char,
- [DOP_TO_INT_SHORT] = dalvik_read_instr_to_int_short,
+ [DOP_TO_INT_LONG] = dalvik_read_instr_int_to_long,
+ [DOP_TO_INT_FLOAT] = dalvik_read_instr_int_to_float,
+ [DOP_TO_INT_DOUBLE] = dalvik_read_instr_int_to_double,
+ [DOP_TO_LONG_INT] = dalvik_read_instr_long_to_int,
+ [DOP_TO_LONG_FLOAT] = dalvik_read_instr_long_to_float,
+ [DOP_TO_LONG_DOUBLE] = dalvik_read_instr_long_to_double,
+ [DOP_TO_FLOAT_INT] = dalvik_read_instr_float_to_int,
+ [DOP_TO_FLOAT_LONG] = dalvik_read_instr_float_to_long,
+ [DOP_TO_FLOAT_DOUBLE] = dalvik_read_instr_float_to_double,
+ [DOP_TO_DOUBLE_INT] = dalvik_read_instr_double_to_int,
+ [DOP_TO_DOUBLE_LONG] = dalvik_read_instr_double_to_long,
+ [DOP_TO_DOUBLE_FLOAT] = dalvik_read_instr_double_to_float,
+ [DOP_TO_INT_BYTE] = dalvik_read_instr_int_to_byte,
+ [DOP_TO_INT_CHAR] = dalvik_read_instr_int_to_char,
+ [DOP_TO_INT_SHORT] = dalvik_read_instr_int_to_short,
[DOP_ADD_INT] = dalvik_read_instr_add_int,
[DOP_SUB_INT] = dalvik_read_instr_sub_int,
[DOP_MUL_INT] = dalvik_read_instr_mul_int,
@@ -533,22 +485,84 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc
};
+ if (!g_binary_content_read_u8(content, pos, &raw8))
+ return NULL;
+
/* Pseudo-instruction... */
- result = g_dalvik_guess_pseudo_instruction(proc, data, pos, end, addr);
+ result = g_dalvik_processor_disassemble_pseudo(proc, ctx, content, pos, raw8);
/* ... ou instruction classique */
if (result == NULL)
{
- id = dalvik_guess_next_instruction(data, *pos, end);
+ assert(raw8 < DOP_COUNT);
+
+ id = (DalvikOpcodes)raw8;
+
+ if (decodings[id] != NULL)
+ result = decodings[id](proc, G_PROC_CONTEXT(ctx), content, pos, format);
+
+ }
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : proc = architecture visée par la procédure. *
+* data = flux de données à analyser. *
+* pos = position courante dans ce flux. [OUT] *
+* end = limite des données à analyser. *
+* addr = adresse virtuelle de l'instruction. *
+* low8 = 8 bits de poids faible déjà lus. *
+* *
+* Description : Décode une pseudo-instruction dans un flux de données. *
+* *
+* Retour : Instruction mise en place ou NULL si aucune trouvée. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static GArchInstruction *g_dalvik_processor_disassemble_pseudo(const GArchProcessor *proc, GDalvikContext *ctx, const GBinContent *content, vmpa2t *pos, uint8_t low8)
+{
+ GArchInstruction *result; /* Instruction à renvoyer */
+ vmpa2t tmp; /* Position modifiable */
+ uint8_t high8; /* Nouvelle octet à venir lire */
+ uint16_t ident; /* Valeur lue dans le code */
+
+ /* Vérification astucieuse et rapide...*/
+ if (low8 != 0x00 /* DOP_NOP */)
+ return NULL;
+
+ copy_vmpa(&tmp, pos);
+
+ if (!g_binary_content_read_u8(content, pos, &high8))
+ return NULL;
+
+ ident = high8 << 8 | low8;
+
+ switch (ident)
+ {
+ case DPO_PACKED_SWITCH:
+ case DPO_SPARSE_SWITCH:
+ result = g_dalvik_switch_instr_new(ident, content, pos);
+ break;
+
+ case DPO_FILL_ARRAY_DATA:
+ result = g_dalvik_fill_instr_new(ident, content, pos);
+ break;
- if (id != DOP_COUNT)
- {
- (*pos)++;
- result = decodings[id](data, pos, end, addr, proc, format);
- }
+ default:
+ result = NULL;
+ break;
}
+ if (result != NULL)
+ copy_vmpa(pos, &tmp);
+
return result;
}
diff --git a/src/arch/dalvik/pseudo/fill.c b/src/arch/dalvik/pseudo/fill.c
index acb8551..2656dab 100644
--- a/src/arch/dalvik/pseudo/fill.c
+++ b/src/arch/dalvik/pseudo/fill.c
@@ -24,6 +24,7 @@
#include "fill.h"
+#include <assert.h>
#include <string.h>
@@ -95,7 +96,7 @@ static void g_dalvik_fill_instr_class_init(GDalvikFillInstrClass *klass)
instr = G_ARCH_INSTRUCTION_CLASS(klass);
- instr->print = (print_instruction_fc)g_dalvik_fill_instr_print;
+ //instr->print = (print_instruction_fc)g_dalvik_fill_instr_print;
}
@@ -114,6 +115,7 @@ static void g_dalvik_fill_instr_class_init(GDalvikFillInstrClass *klass)
static void g_dalvik_fill_instr_init(GDalvikFillInstr *instr)
{
+ G_DALVIK_INSTRUCTION(instr)->keyword = "##fill-array##";
}
@@ -158,11 +160,9 @@ static void g_dalvik_fill_instr_finalize(GDalvikFillInstr *instr)
/******************************************************************************
* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* end = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
+* Paramètres : ident = identifiant de l'instruction déjà lu. *
+* content = flux de données à analyser. *
+* pos = position courante dans ce flux. [OUT] *
* *
* Description : Crée une pesudo-instruction Dalvik de remplissage. *
* *
@@ -172,24 +172,26 @@ static void g_dalvik_fill_instr_finalize(GDalvikFillInstr *instr)
* *
******************************************************************************/
-GArchInstruction *g_dalvik_fill_instr_new(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc)
+GArchInstruction *g_dalvik_fill_instr_new(uint16_t ident, const GBinContent *content, vmpa2t *pos)
{
GDalvikFillInstr *result; /* Structure à retourner */
- uint16_t ident; /* Valeur lue dans le code */
+ phys_t consumed; /* Données consommées */
- result = g_object_new(G_TYPE_DALVIK_FILL_INSTR, NULL);
+ assert(ident == DPO_FILL_ARRAY_DATA);
- if (!read_u16(&ident, data, pos, end, SRE_LITTLE))
- goto gdfin_bad;
+ result = g_object_new(G_TYPE_DALVIK_FILL_INSTR, NULL);
- G_DALVIK_INSTRUCTION(result)->ptype = DPO_FILL_ARRAY_DATA;
+ G_DALVIK_INSTRUCTION(result)->ptype = ident;
- if (!read_u16(&result->array_width, data, pos, end, SRE_LITTLE))
+ if (!g_binary_content_read_u16(content, pos, SRE_LITTLE, &result->array_width))
goto gdfin_bad;
- if (!read_u32(&result->array_size, data, pos, end, SRE_LITTLE))
+
+ if (!g_binary_content_read_u32(content, pos, SRE_LITTLE, &result->array_size))
goto gdfin_bad;
- *pos += result->array_width * result->array_size;
+ consumed = result->array_width * result->array_size;
+
+ advance_vmpa(pos, consumed);
return G_ARCH_INSTRUCTION(result);
diff --git a/src/arch/dalvik/pseudo/fill.h b/src/arch/dalvik/pseudo/fill.h
index 041cdaa..aeb04b8 100644
--- a/src/arch/dalvik/pseudo/fill.h
+++ b/src/arch/dalvik/pseudo/fill.h
@@ -50,7 +50,7 @@ typedef struct _GDalvikFillInstrClass GDalvikFillInstrClass;
GType g_dalvik_fill_instr_get_type(void);
/* Crée une pesudo-instruction Dalvik de remplissage. */
-GArchInstruction *g_dalvik_fill_instr_new(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *);
+GArchInstruction *g_dalvik_fill_instr_new(uint16_t, const GBinContent *, vmpa2t *);
diff --git a/src/arch/dalvik/pseudo/switch.c b/src/arch/dalvik/pseudo/switch.c
index 169c5bf..1b41ba4 100644
--- a/src/arch/dalvik/pseudo/switch.c
+++ b/src/arch/dalvik/pseudo/switch.c
@@ -24,6 +24,7 @@
#include "switch.h"
+#include <assert.h>
#include <string.h>
@@ -94,7 +95,7 @@ static void g_dalvik_switch_instr_class_init(GDalvikSwitchInstrClass *klass)
instr = G_ARCH_INSTRUCTION_CLASS(klass);
- instr->print = (print_instruction_fc)g_dalvik_switch_instr_print;
+ //instr->print = (print_instruction_fc)g_dalvik_switch_instr_print;
}
@@ -113,6 +114,7 @@ static void g_dalvik_switch_instr_class_init(GDalvikSwitchInstrClass *klass)
static void g_dalvik_switch_instr_init(GDalvikSwitchInstr *instr)
{
+ G_DALVIK_INSTRUCTION(instr)->keyword = "##switch##";
}
@@ -157,11 +159,9 @@ static void g_dalvik_switch_instr_finalize(GDalvikSwitchInstr *instr)
/******************************************************************************
* *
-* Paramètres : data = flux de données à analyser. *
-* pos = position courante dans ce flux. [OUT] *
-* len = limite des données à analyser. *
-* addr = adresse virtuelle de l'instruction. *
-* proc = architecture ciblée par le désassemblage. *
+* Paramètres : ident = identifiant de l'instruction déjà lu. *
+* content = flux de données à analyser. *
+* pos = position courante dans ce flux. [OUT] *
* *
* Description : Crée une pesudo-instruction Dalvik de branchement. *
* *
@@ -171,28 +171,26 @@ static void g_dalvik_switch_instr_finalize(GDalvikSwitchInstr *instr)
* *
******************************************************************************/
-GArchInstruction *g_dalvik_switch_instr_new(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc)
+GArchInstruction *g_dalvik_switch_instr_new(uint16_t ident, const GBinContent *content, vmpa2t *pos)
{
- GDalvikSwitchInstr *result; /* Structure à retourner */
- uint16_t ident; /* Valeur lue dans le code */
+ GDalvikSwitchInstr *result; /* Structure à retourner */
+ phys_t consumed; /* Données consommées */
- result = g_object_new(G_TYPE_DALVIK_SWITCH_INSTR, NULL);
-
- if (!read_u16(&ident, data, pos, end, SRE_LITTLE))
- goto gdsin_bad;
+ assert(ident == DPO_PACKED_SWITCH || ident == DPO_SPARSE_SWITCH);
- if (ident != DPO_PACKED_SWITCH && ident != DPO_SPARSE_SWITCH)
- goto gdsin_bad;
+ result = g_object_new(G_TYPE_DALVIK_SWITCH_INSTR, NULL);
G_DALVIK_INSTRUCTION(result)->ptype = ident;
- if (!read_u16(&result->switch_size, data, pos, end, SRE_LITTLE))
+ if (!g_binary_content_read_u16(content, pos, SRE_LITTLE, &result->switch_size))
goto gdsin_bad;
if (ident != DPO_PACKED_SWITCH)
- *pos += (1 + result->switch_size) * sizeof(uint32_t);
+ consumed = (1 + result->switch_size) * sizeof(uint32_t);
else
- *pos += (2 * result->switch_size) * sizeof(uint32_t);
+ consumed = (2 * result->switch_size) * sizeof(uint32_t);
+
+ advance_vmpa(pos, consumed);
return G_ARCH_INSTRUCTION(result);
@@ -234,6 +232,7 @@ static void g_dalvik_switch_instr_print(const GDalvikSwitchInstr *instr, GCodeBu
line = NULL;
+ //line = g_code_buffer_prepare_new_line(buffer, &range);
#if 0
line = g_code_buffer_append_new_line(buffer, base->address);
diff --git a/src/arch/dalvik/pseudo/switch.h b/src/arch/dalvik/pseudo/switch.h
index cdb4b92..02d61d0 100644
--- a/src/arch/dalvik/pseudo/switch.h
+++ b/src/arch/dalvik/pseudo/switch.h
@@ -50,7 +50,7 @@ typedef struct _GDalvikSwitchInstrClass GDalvikSwitchInstrClass;
GType g_dalvik_switch_instr_get_type(void);
/* Crée une pesudo-instruction Dalvik de branchement. */
-GArchInstruction *g_dalvik_switch_instr_new(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *);
+GArchInstruction *g_dalvik_switch_instr_new(uint16_t, const GBinContent *, vmpa2t *);
diff --git a/src/arch/processor-int.h b/src/arch/processor-int.h
index 19076a2..3d39aee 100644
--- a/src/arch/processor-int.h
+++ b/src/arch/processor-int.h
@@ -58,7 +58,7 @@ typedef GDecContext * (* get_decomp_context_fc) (const GArchProcessor *);
typedef GArchInstruction * (* decode_instruction_fc) (const GArchProcessor *, GProcContext *, const bin_t *, off_t *, off_t, vmpa_t, GBinFormat *);
/* Désassemble une instruction dans un flux de données. */
-typedef GArchInstruction * (* disass_instr_fc) (const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *);
+typedef GArchInstruction * (* disass_instr_fc) (const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *, GExeFormat *);
diff --git a/src/arch/processor.c b/src/arch/processor.c
index 91f9821..bbe506a 100644
--- a/src/arch/processor.c
+++ b/src/arch/processor.c
@@ -289,6 +289,7 @@ GArchInstruction *g_arch_processor_decode_instruction(const GArchProcessor *proc
* ctx = contexte lié à l'exécution du processeur. *
* content = flux de données à analyser. *
* pos = position courante dans ce flux. [OUT] *
+* format = format du fichier contenant le code. *
* *
* Description : Désassemble une instruction dans un flux de données. *
* *
@@ -298,14 +299,14 @@ GArchInstruction *g_arch_processor_decode_instruction(const GArchProcessor *proc
* *
******************************************************************************/
-GArchInstruction *g_arch_processor_disassemble(const GArchProcessor *proc, GProcContext *ctx, const GBinContent *content, vmpa2t *pos)
+GArchInstruction *g_arch_processor_disassemble(const GArchProcessor *proc, GProcContext *ctx, const GBinContent *content, vmpa2t *pos, GExeFormat *format)
{
GArchInstruction *result; /* Instruction à renvoyer */
vmpa2t back; /* Position sauvegardée */
copy_vmpa(&back, pos);
- result = G_ARCH_PROCESSOR_GET_CLASS(proc)->disassemble(proc, ctx, content, pos);
+ result = G_ARCH_PROCESSOR_GET_CLASS(proc)->disassemble(proc, ctx, content, pos, format);
if (result == NULL)
copy_vmpa(pos, &back);
diff --git a/src/arch/processor.h b/src/arch/processor.h
index dd93960..82c4f18 100644
--- a/src/arch/processor.h
+++ b/src/arch/processor.h
@@ -74,7 +74,7 @@ MemoryDataSize g_arch_processor_get_instruction_size(const GArchProcessor *);
GArchInstruction *g_arch_processor_decode_instruction(const GArchProcessor *, GProcContext *, const bin_t *, off_t *, off_t, vmpa_t, GBinFormat *) __attribute__ ((deprecated));
/* Désassemble une instruction dans un flux de données. */
-GArchInstruction *g_arch_processor_disassemble(const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *);
+GArchInstruction *g_arch_processor_disassemble(const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *, GExeFormat *);
diff --git a/src/format/dex/method.c b/src/format/dex/method.c
index 9c911d1..b74a713 100644
--- a/src/format/dex/method.c
+++ b/src/format/dex/method.c
@@ -193,7 +193,7 @@ GDexMethod *g_dex_method_new(GDexFormat *format, const encoded_method *seed, ule
result->info = *seed;
result->body = item;
- result->offset = seed->code_off + 4 * sizeof(uint16_t) + 2 *sizeof(uint32_t);/* TODO : faire plus propre ! */
+ result->offset = seed->code_off + 4 * sizeof(uint16_t) + 2 * sizeof(uint32_t);/* TODO : faire plus propre ! */
init_vmpa(&addr, result->offset, VMPA_NO_VIRTUAL);
init_mrange(&range, &addr, item.insns_size * sizeof(uint16_t));
diff --git a/src/glibext/gbufferline.c b/src/glibext/gbufferline.c
index b8838ae..f47442d 100644
--- a/src/glibext/gbufferline.c
+++ b/src/glibext/gbufferline.c
@@ -770,8 +770,12 @@ void g_buffer_line_fill_mrange(GBufferLine *line, MemoryDataSize psize, MemoryDa
else
{
g_buffer_line_insert_text(line, BLC_PHYSICAL, address, 2, RTT_PHYS_ADDR);
- g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[2], i - 2, RTT_PHYS_ADDR_PAD);
- g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[i], len - i, RTT_PHYS_ADDR);
+
+ if (i > 2)
+ g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[2], i - 2, RTT_PHYS_ADDR_PAD);
+
+ g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[i], len - i, RTT_PHYS_ADDR);
+
}
}
@@ -791,8 +795,12 @@ void g_buffer_line_fill_mrange(GBufferLine *line, MemoryDataSize psize, MemoryDa
else
{
g_buffer_line_insert_text(line, BLC_VIRTUAL, address, 2, RTT_VIRT_ADDR);
- g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[2], i - 2, RTT_VIRT_ADDR_PAD);
- g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[i], len - i, RTT_VIRT_ADDR);
+
+ if (i > 2)
+ g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[2], i - 2, RTT_VIRT_ADDR_PAD);
+
+ g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[i], len - i, RTT_VIRT_ADDR);
+
}
}
diff --git a/tools/d2c/d2c.mk b/tools/d2c/d2c.mk
index 72269b7..0731329 100644
--- a/tools/d2c/d2c.mk
+++ b/tools/d2c/d2c.mk
@@ -32,7 +32,7 @@ SUFFIXES = .g
d2c_final_rules: fix_includes_in_c_templates fix_includes_in_h_templates untabify_disass
fix_includes_in_c_templates:
- for f in `find .gen/ -name '*tmpl.c'`; do \
+ @for f in `find .gen/ -name '*tmpl.c'`; do \
if grep -q '##INCLUDES##' $$f; then \
$(fix_verbose)sed -i 's/##INCLUDES##/$(FIXED_C_INCLUDES)/' $$f; \
fi; \