summaryrefslogtreecommitdiff
path: root/plugins/dalvik
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-04-02 11:58:42 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-04-02 12:39:30 (GMT)
commit1db4ef323b7a76093356ae76268132f3760e1631 (patch)
treefec36ee0ec1b6b2010b62ca4177edca0e31e2114 /plugins/dalvik
parent1bc80837dde03a32b5ab185067f7bd4c499a9850 (diff)
Rewritten the whole instruction definition format.
Diffstat (limited to 'plugins/dalvik')
-rw-r--r--plugins/dalvik/Makefile.am7
-rw-r--r--plugins/dalvik/context.h6
-rw-r--r--plugins/dalvik/core.c4
-rw-r--r--plugins/dalvik/fetch.h6
-rw-r--r--plugins/dalvik/helpers.h6
-rw-r--r--plugins/dalvik/instruction-def.h305
-rw-r--r--plugins/dalvik/instruction-int.h15
-rw-r--r--plugins/dalvik/instruction.c97
-rw-r--r--plugins/dalvik/instruction.h24
-rw-r--r--plugins/dalvik/link.h6
-rw-r--r--plugins/dalvik/opdefs/invoke_6e.d30
-rw-r--r--plugins/dalvik/opdefs/invoke_6f.d30
-rw-r--r--plugins/dalvik/opdefs/invoke_70.d30
-rw-r--r--plugins/dalvik/opdefs/invoke_71.d30
-rw-r--r--plugins/dalvik/opdefs/invoke_72.d30
-rw-r--r--plugins/dalvik/opdefs/nop_00.d30
-rw-r--r--plugins/dalvik/operand.h6
-rw-r--r--plugins/dalvik/operands/args.h6
-rw-r--r--plugins/dalvik/operands/pool.h6
-rw-r--r--plugins/dalvik/operands/register.h6
-rw-r--r--plugins/dalvik/post.h6
-rw-r--r--plugins/dalvik/processor-int.h59
-rw-r--r--plugins/dalvik/processor.c331
-rw-r--r--plugins/dalvik/processor.h9
-rw-r--r--plugins/dalvik/pseudo/fill.c36
-rw-r--r--plugins/dalvik/pseudo/fill.h6
-rw-r--r--plugins/dalvik/pseudo/identifiers.h39
-rw-r--r--plugins/dalvik/pseudo/switch.c38
-rw-r--r--plugins/dalvik/pseudo/switch.h6
-rw-r--r--plugins/dalvik/register.h6
-rw-r--r--plugins/dalvik/v35/Makefile.am20
-rw-r--r--plugins/dalvik/v35/instruction.c267
-rw-r--r--plugins/dalvik/v35/instruction.h55
-rw-r--r--plugins/dalvik/v35/opcodes/Makefile.am (renamed from plugins/dalvik/opcodes/Makefile.am)11
-rw-r--r--plugins/dalvik/v35/opdefs/Makefile.am (renamed from plugins/dalvik/opdefs/Makefile.am)99
-rw-r--r--plugins/dalvik/v35/opdefs/add_90.d40
-rw-r--r--plugins/dalvik/v35/opdefs/add_9b.d40
-rw-r--r--plugins/dalvik/v35/opdefs/add_a6.d40
-rw-r--r--plugins/dalvik/v35/opdefs/add_ab.d40
-rw-r--r--plugins/dalvik/v35/opdefs/add_b0.d (renamed from plugins/dalvik/opdefs/add_b0.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/add_bb.d (renamed from plugins/dalvik/opdefs/add_bb.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/add_c6.d (renamed from plugins/dalvik/opdefs/add_c6.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/add_cb.d (renamed from plugins/dalvik/opdefs/add_cb.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/add_d0.d (renamed from plugins/dalvik/opdefs/add_d0.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/add_d8.d (renamed from plugins/dalvik/opdefs/add_d8.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/aget_44.d (renamed from plugins/dalvik/opdefs/aget_44.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aget_45.d (renamed from plugins/dalvik/opdefs/aget_45.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aget_46.d (renamed from plugins/dalvik/opdefs/aget_46.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aget_47.d (renamed from plugins/dalvik/opdefs/aget_47.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aget_48.d (renamed from plugins/dalvik/opdefs/aget_48.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aget_49.d (renamed from plugins/dalvik/opdefs/aget_49.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aget_4a.d (renamed from plugins/dalvik/opdefs/aget_4a.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/and_95.d (renamed from plugins/dalvik/opdefs/and_95.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/and_a0.d (renamed from plugins/dalvik/opdefs/and_a0.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/and_b5.d (renamed from plugins/dalvik/opdefs/and_b5.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/and_c0.d (renamed from plugins/dalvik/opdefs/and_c0.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/and_d5.d (renamed from plugins/dalvik/opdefs/and_d5.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/and_dd.d (renamed from plugins/dalvik/opdefs/and_dd.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/aput_4b.d (renamed from plugins/dalvik/opdefs/aput_4b.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aput_4c.d (renamed from plugins/dalvik/opdefs/aput_4c.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aput_4d.d (renamed from plugins/dalvik/opdefs/aput_4d.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aput_4e.d (renamed from plugins/dalvik/opdefs/aput_4e.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aput_4f.d (renamed from plugins/dalvik/opdefs/aput_4f.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aput_50.d (renamed from plugins/dalvik/opdefs/aput_50.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/aput_51.d (renamed from plugins/dalvik/opdefs/aput_51.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/array_21.d (renamed from plugins/dalvik/opdefs/array_21.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/array_24.d (renamed from plugins/dalvik/opdefs/array_24.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/array_26.d (renamed from plugins/dalvik/opdefs/array_26.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/check_1f.d (renamed from plugins/dalvik/opdefs/check_1f.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/cmp_31.d (renamed from plugins/dalvik/opdefs/cmp_31.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/cmpg_2e.d (renamed from plugins/dalvik/opdefs/cmpg_2e.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/cmpg_30.d (renamed from plugins/dalvik/opdefs/cmpg_30.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/cmpl_2d.d (renamed from plugins/dalvik/opdefs/cmpl_2d.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/cmpl_2f.d (renamed from plugins/dalvik/opdefs/cmpl_2f.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/const_12.d (renamed from plugins/dalvik/opdefs/const_12.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_13.d (renamed from plugins/dalvik/opdefs/const_13.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_14.d (renamed from plugins/dalvik/opdefs/const_14.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_15.d (renamed from plugins/dalvik/opdefs/const_15.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_16.d (renamed from plugins/dalvik/opdefs/const_16.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_17.d (renamed from plugins/dalvik/opdefs/const_17.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_18.d (renamed from plugins/dalvik/opdefs/const_18.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_19.d (renamed from plugins/dalvik/opdefs/const_19.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_1a.d (renamed from plugins/dalvik/opdefs/const_1a.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_1b.d (renamed from plugins/dalvik/opdefs/const_1b.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/const_1c.d (renamed from plugins/dalvik/opdefs/const_1c.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/div_93.d (renamed from plugins/dalvik/opdefs/div_93.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_9e.d (renamed from plugins/dalvik/opdefs/div_9e.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_a9.d (renamed from plugins/dalvik/opdefs/div_a9.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_ae.d (renamed from plugins/dalvik/opdefs/div_ae.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_b3.d (renamed from plugins/dalvik/opdefs/div_b3.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_be.d (renamed from plugins/dalvik/opdefs/div_be.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_c9.d (renamed from plugins/dalvik/opdefs/div_c9.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_ce.d (renamed from plugins/dalvik/opdefs/div_ce.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_d3.d (renamed from plugins/dalvik/opdefs/div_d3.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/div_db.d (renamed from plugins/dalvik/opdefs/div_db.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/filled_25.d (renamed from plugins/dalvik/opdefs/filled_25.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/goto_28.d (renamed from plugins/dalvik/opdefs/goto_28.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/goto_29.d (renamed from plugins/dalvik/opdefs/goto_29.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/goto_2a.d (renamed from plugins/dalvik/opdefs/goto_2a.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/if_32.d (renamed from plugins/dalvik/opdefs/if_32.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_33.d (renamed from plugins/dalvik/opdefs/if_33.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_34.d (renamed from plugins/dalvik/opdefs/if_34.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_35.d (renamed from plugins/dalvik/opdefs/if_35.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_36.d (renamed from plugins/dalvik/opdefs/if_36.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_37.d (renamed from plugins/dalvik/opdefs/if_37.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_38.d (renamed from plugins/dalvik/opdefs/if_38.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_39.d (renamed from plugins/dalvik/opdefs/if_39.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_3a.d (renamed from plugins/dalvik/opdefs/if_3a.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_3b.d (renamed from plugins/dalvik/opdefs/if_3b.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_3c.d (renamed from plugins/dalvik/opdefs/if_3c.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/if_3d.d (renamed from plugins/dalvik/opdefs/if_3d.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iget_52.d (renamed from plugins/dalvik/opdefs/iget_52.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iget_53.d (renamed from plugins/dalvik/opdefs/iget_53.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iget_54.d (renamed from plugins/dalvik/opdefs/iget_54.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iget_55.d (renamed from plugins/dalvik/opdefs/iget_55.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iget_56.d (renamed from plugins/dalvik/opdefs/iget_56.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iget_57.d (renamed from plugins/dalvik/opdefs/iget_57.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iget_58.d (renamed from plugins/dalvik/opdefs/iget_58.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/instanceof_20.d (renamed from plugins/dalvik/opdefs/instanceof_20.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_6e.d52
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_6f.d52
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_70.d52
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_71.d52
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_72.d52
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_74.d (renamed from plugins/dalvik/opdefs/invoke_74.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_75.d (renamed from plugins/dalvik/opdefs/invoke_75.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_76.d (renamed from plugins/dalvik/opdefs/invoke_76.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_77.d (renamed from plugins/dalvik/opdefs/invoke_77.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/invoke_78.d (renamed from plugins/dalvik/opdefs/invoke_78.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/iput_59.d (renamed from plugins/dalvik/opdefs/iput_59.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iput_5a.d (renamed from plugins/dalvik/opdefs/iput_5a.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iput_5b.d (renamed from plugins/dalvik/opdefs/iput_5b.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iput_5c.d (renamed from plugins/dalvik/opdefs/iput_5c.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iput_5d.d (renamed from plugins/dalvik/opdefs/iput_5d.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iput_5e.d (renamed from plugins/dalvik/opdefs/iput_5e.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/iput_5f.d (renamed from plugins/dalvik/opdefs/iput_5f.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/monitor_1d.d (renamed from plugins/dalvik/opdefs/monitor_1d.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/monitor_1e.d (renamed from plugins/dalvik/opdefs/monitor_1e.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/move_01.d (renamed from plugins/dalvik/opdefs/move_01.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_02.d (renamed from plugins/dalvik/opdefs/move_02.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_03.d (renamed from plugins/dalvik/opdefs/move_03.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_04.d (renamed from plugins/dalvik/opdefs/move_04.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/move_05.d (renamed from plugins/dalvik/opdefs/move_05.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/move_06.d (renamed from plugins/dalvik/opdefs/move_06.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/move_07.d (renamed from plugins/dalvik/opdefs/move_07.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_08.d (renamed from plugins/dalvik/opdefs/move_08.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_09.d (renamed from plugins/dalvik/opdefs/move_09.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_0a.d (renamed from plugins/dalvik/opdefs/move_0a.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_0b.d (renamed from plugins/dalvik/opdefs/move_0b.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_0c.d (renamed from plugins/dalvik/opdefs/move_0c.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/move_0d.d (renamed from plugins/dalvik/opdefs/move_0d.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/mul_92.d (renamed from plugins/dalvik/opdefs/mul_92.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_9d.d (renamed from plugins/dalvik/opdefs/mul_9d.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_a8.d (renamed from plugins/dalvik/opdefs/mul_a8.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_ad.d (renamed from plugins/dalvik/opdefs/mul_ad.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_b2.d (renamed from plugins/dalvik/opdefs/mul_b2.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_bd.d (renamed from plugins/dalvik/opdefs/mul_bd.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_c8.d (renamed from plugins/dalvik/opdefs/mul_c8.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_cd.d (renamed from plugins/dalvik/opdefs/mul_cd.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_d2.d (renamed from plugins/dalvik/opdefs/mul_d2.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/mul_da.d (renamed from plugins/dalvik/opdefs/mul_da.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/neg_7b.d (renamed from plugins/dalvik/opdefs/neg_7b.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/neg_7d.d (renamed from plugins/dalvik/opdefs/neg_7d.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/neg_7f.d (renamed from plugins/dalvik/opdefs/neg_7f.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/neg_80.d (renamed from plugins/dalvik/opdefs/neg_80.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/new_22.d (renamed from plugins/dalvik/opdefs/new_22.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/new_23.d (renamed from plugins/dalvik/opdefs/new_23.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/nop_00.d40
-rw-r--r--plugins/dalvik/v35/opdefs/not_7c.d (renamed from plugins/dalvik/opdefs/not_7c.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/not_7e.d (renamed from plugins/dalvik/opdefs/not_7e.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/or_96.d (renamed from plugins/dalvik/opdefs/or_96.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/or_a1.d (renamed from plugins/dalvik/opdefs/or_a1.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/or_b6.d (renamed from plugins/dalvik/opdefs/or_b6.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/or_c1.d (renamed from plugins/dalvik/opdefs/or_c1.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/or_d6.d (renamed from plugins/dalvik/opdefs/or_d6.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/or_de.d (renamed from plugins/dalvik/opdefs/or_de.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_94.d (renamed from plugins/dalvik/opdefs/rem_94.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_9f.d (renamed from plugins/dalvik/opdefs/rem_9f.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_aa.d (renamed from plugins/dalvik/opdefs/rem_aa.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_af.d (renamed from plugins/dalvik/opdefs/rem_af.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_b4.d (renamed from plugins/dalvik/opdefs/rem_b4.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_bf.d (renamed from plugins/dalvik/opdefs/rem_bf.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_ca.d (renamed from plugins/dalvik/opdefs/rem_ca.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_cf.d (renamed from plugins/dalvik/opdefs/rem_cf.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_d4.d (renamed from plugins/dalvik/opdefs/rem_d4.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rem_dc.d (renamed from plugins/dalvik/opdefs/rem_dc.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/return_0e.d (renamed from plugins/dalvik/opdefs/return_0e.d)18
-rw-r--r--plugins/dalvik/v35/opdefs/return_0f.d (renamed from plugins/dalvik/opdefs/return_0f.d)18
-rw-r--r--plugins/dalvik/v35/opdefs/return_10.d (renamed from plugins/dalvik/opdefs/return_10.d)18
-rw-r--r--plugins/dalvik/v35/opdefs/return_11.d (renamed from plugins/dalvik/opdefs/return_11.d)18
-rw-r--r--plugins/dalvik/v35/opdefs/rsub_d1.d (renamed from plugins/dalvik/opdefs/rsub_d1.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/rsub_d9.d (renamed from plugins/dalvik/opdefs/rsub_d9.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sget_60.d (renamed from plugins/dalvik/opdefs/sget_60.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sget_61.d (renamed from plugins/dalvik/opdefs/sget_61.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sget_62.d (renamed from plugins/dalvik/opdefs/sget_62.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sget_63.d (renamed from plugins/dalvik/opdefs/sget_63.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sget_64.d (renamed from plugins/dalvik/opdefs/sget_64.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sget_65.d (renamed from plugins/dalvik/opdefs/sget_65.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sget_66.d (renamed from plugins/dalvik/opdefs/sget_66.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shl_98.d (renamed from plugins/dalvik/opdefs/shl_98.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shl_a3.d (renamed from plugins/dalvik/opdefs/shl_a3.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shl_b8.d (renamed from plugins/dalvik/opdefs/shl_b8.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shl_c3.d (renamed from plugins/dalvik/opdefs/shl_c3.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shl_e0.d (renamed from plugins/dalvik/opdefs/shl_e0.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shr_99.d (renamed from plugins/dalvik/opdefs/shr_99.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shr_a4.d (renamed from plugins/dalvik/opdefs/shr_a4.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shr_b9.d (renamed from plugins/dalvik/opdefs/shr_b9.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shr_c4.d (renamed from plugins/dalvik/opdefs/shr_c4.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/shr_e1.d (renamed from plugins/dalvik/opdefs/shr_e1.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sput_67.d (renamed from plugins/dalvik/opdefs/sput_67.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sput_68.d (renamed from plugins/dalvik/opdefs/sput_68.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sput_69.d (renamed from plugins/dalvik/opdefs/sput_69.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sput_6a.d (renamed from plugins/dalvik/opdefs/sput_6a.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sput_6b.d (renamed from plugins/dalvik/opdefs/sput_6b.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sput_6c.d (renamed from plugins/dalvik/opdefs/sput_6c.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sput_6d.d (renamed from plugins/dalvik/opdefs/sput_6d.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sub_91.d (renamed from plugins/dalvik/opdefs/sub_91.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sub_9c.d (renamed from plugins/dalvik/opdefs/sub_9c.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sub_a7.d (renamed from plugins/dalvik/opdefs/sub_a7.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sub_ac.d (renamed from plugins/dalvik/opdefs/sub_ac.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sub_b1.d (renamed from plugins/dalvik/opdefs/sub_b1.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sub_bc.d (renamed from plugins/dalvik/opdefs/sub_bc.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sub_c7.d (renamed from plugins/dalvik/opdefs/sub_c7.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/sub_cc.d (renamed from plugins/dalvik/opdefs/sub_cc.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/switch_2b.d (renamed from plugins/dalvik/opdefs/switch_2b.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/switch_2c.d (renamed from plugins/dalvik/opdefs/switch_2c.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/throw_27.d (renamed from plugins/dalvik/opdefs/throw_27.d)18
-rw-r--r--plugins/dalvik/v35/opdefs/to_81.d (renamed from plugins/dalvik/opdefs/to_81.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_82.d (renamed from plugins/dalvik/opdefs/to_82.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_83.d (renamed from plugins/dalvik/opdefs/to_83.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_84.d (renamed from plugins/dalvik/opdefs/to_84.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_85.d (renamed from plugins/dalvik/opdefs/to_85.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_86.d (renamed from plugins/dalvik/opdefs/to_86.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_87.d (renamed from plugins/dalvik/opdefs/to_87.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_88.d (renamed from plugins/dalvik/opdefs/to_88.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_89.d (renamed from plugins/dalvik/opdefs/to_89.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_8a.d (renamed from plugins/dalvik/opdefs/to_8a.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_8b.d (renamed from plugins/dalvik/opdefs/to_8b.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_8c.d (renamed from plugins/dalvik/opdefs/to_8c.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_8d.d (renamed from plugins/dalvik/opdefs/to_8d.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_8e.d (renamed from plugins/dalvik/opdefs/to_8e.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/to_8f.d (renamed from plugins/dalvik/opdefs/to_8f.d)10
-rw-r--r--plugins/dalvik/v35/opdefs/unused_3e.d (renamed from plugins/dalvik/opdefs/add_9b.d)8
-rw-r--r--plugins/dalvik/v35/opdefs/unused_3f.d (renamed from plugins/dalvik/opdefs/add_ab.d)8
-rw-r--r--plugins/dalvik/v35/opdefs/unused_40.d (renamed from plugins/dalvik/opdefs/add_a6.d)8
-rw-r--r--plugins/dalvik/v35/opdefs/unused_41.d (renamed from plugins/dalvik/opdefs/add_90.d)8
-rw-r--r--plugins/dalvik/v35/opdefs/unused_42.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_43.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_73.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_79.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_7a.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_e3.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_e4.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_e5.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_e6.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_e7.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_e8.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_e9.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_ea.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_eb.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_ec.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_ed.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_ee.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_ef.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f0.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f1.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f2.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f3.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f4.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f5.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f6.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f7.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f8.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_f9.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_fa.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_fb.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_fc.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_fd.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_fe.d32
-rw-r--r--plugins/dalvik/v35/opdefs/unused_ff.d32
-rw-r--r--plugins/dalvik/v35/opdefs/ushr_9a.d (renamed from plugins/dalvik/opdefs/ushr_9a.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/ushr_a5.d (renamed from plugins/dalvik/opdefs/ushr_a5.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/ushr_ba.d (renamed from plugins/dalvik/opdefs/ushr_ba.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/ushr_c5.d (renamed from plugins/dalvik/opdefs/ushr_c5.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/ushr_e2.d (renamed from plugins/dalvik/opdefs/ushr_e2.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/xor_97.d (renamed from plugins/dalvik/opdefs/xor_97.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/xor_a2.d (renamed from plugins/dalvik/opdefs/xor_a2.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/xor_b7.d (renamed from plugins/dalvik/opdefs/xor_b7.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/xor_c2.d (renamed from plugins/dalvik/opdefs/xor_c2.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/xor_d7.d (renamed from plugins/dalvik/opdefs/xor_d7.d)12
-rw-r--r--plugins/dalvik/v35/opdefs/xor_df.d (renamed from plugins/dalvik/opdefs/xor_df.d)12
-rw-r--r--plugins/dalvik/v35/operand.h37
-rw-r--r--plugins/dalvik/v35/processor.c494
-rw-r--r--plugins/dalvik/v35/processor.h55
294 files changed, 4961 insertions, 1257 deletions
diff --git a/plugins/dalvik/Makefile.am b/plugins/dalvik/Makefile.am
index d12f733..2e042f2 100644
--- a/plugins/dalvik/Makefile.am
+++ b/plugins/dalvik/Makefile.am
@@ -12,13 +12,14 @@ libdalvik_la_SOURCES = \
link.h link.c \
operand.h operand.c \
post.h \
+ processor-int.h \
processor.h processor.c \
register.h register.c
libdalvik_la_LIBADD = \
- opcodes/libdalvikopcodes.la \
operands/libdalvikoperands.la \
- pseudo/libdalvikpseudo.la
+ pseudo/libdalvikpseudo.la \
+ v35/libdalvik35.la
libdalvik_la_CFLAGS = $(AM_CFLAGS)
@@ -28,4 +29,4 @@ AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBPYTHON_CFLAGS) $(LIBPYGOBJECT_CFLAGS) $(LIBX
AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
-SUBDIRS = opdefs opcodes operands pseudo
+SUBDIRS = operands pseudo v35
diff --git a/plugins/dalvik/context.h b/plugins/dalvik/context.h
index fbee9e0..76c2ea4 100644
--- a/plugins/dalvik/context.h
+++ b/plugins/dalvik/context.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_CONTEXT_H
-#define _ARCH_DALVIK_CONTEXT_H
+#ifndef _PLUGINS_DALVIK_CONTEXT_H
+#define _PLUGINS_DALVIK_CONTEXT_H
#include <glib-object.h>
@@ -99,4 +99,4 @@ GDalvikDContext *g_dalvik_dcontext_new(void);
-#endif /* _ARCH_DALVIK_CONTEXT_H */
+#endif /* _PLUGINS_DALVIK_CONTEXT_H */
diff --git a/plugins/dalvik/core.c b/plugins/dalvik/core.c
index 7f0c79f..57d382c 100644
--- a/plugins/dalvik/core.c
+++ b/plugins/dalvik/core.c
@@ -28,8 +28,8 @@
#include <plugins/plugin-def.h>
-#include "processor.h"
#include "register.h"
+#include "v35/processor.h"
@@ -54,7 +54,7 @@ G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin)
{
bool result; /* Bilan à retourner */
- result = register_processor_type("dalvik", "Dalvik Virtual Machine", G_TYPE_DALVIK_PROCESSOR,
+ result = register_processor_type("dalvik35", "Dalvik Virtual Machine v35", G_TYPE_DALVIK35_PROCESSOR,
NULL, NULL);
return result;
diff --git a/plugins/dalvik/fetch.h b/plugins/dalvik/fetch.h
index e9ea340..4a9a788 100644
--- a/plugins/dalvik/fetch.h
+++ b/plugins/dalvik/fetch.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_FETCH_H
-#define _ARCH_DALVIK_FETCH_H
+#ifndef _PLUGINS_DALVIK_FETCH_H
+#define _PLUGINS_DALVIK_FETCH_H
#include <arch/instruction.h>
@@ -53,4 +53,4 @@ static inline void help_fetching_with_dalvik_ifz_instruction(GArchInstruction *i
-#endif /* _ARCH_DALVIK_FETCH_H */
+#endif /* _PLUGINS_DALVIK_FETCH_H */
diff --git a/plugins/dalvik/helpers.h b/plugins/dalvik/helpers.h
index 6a0ba5c..5b23f0e 100644
--- a/plugins/dalvik/helpers.h
+++ b/plugins/dalvik/helpers.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_HELPERS_H
-#define _ARCH_DALVIK_HELPERS_H
+#ifndef _PLUGINS_DALVIK_HELPERS_H
+#define _PLUGINS_DALVIK_HELPERS_H
#include "operand.h"
@@ -40,4 +40,4 @@
-#endif /* _ARCH_DALVIK_HELPERS_H */
+#endif /* _PLUGINS_DALVIK_HELPERS_H */
diff --git a/plugins/dalvik/instruction-def.h b/plugins/dalvik/instruction-def.h
deleted file mode 100644
index af6e308..0000000
--- a/plugins/dalvik/instruction-def.h
+++ /dev/null
@@ -1,305 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * instruction-def.h - définition interne des identifiants d'instructions Dalvik
- *
- * Copyright (C) 2011-2017 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/>.
- */
-
-
-#ifndef _ARCH_DALVIK_INSTRUCTION_DEF_H
-#define _ARCH_DALVIK_INSTRUCTION_DEF_H
-
-
-
-/* Enumération de tous les opcodes */
-typedef enum _DalvikOpcodes
-{
- DOP_NOP, /* nop (0x00) */
- DOP_MOVE, /* move (0x01) */
- DOP_MOVE_FROM_16, /* move/from16 (0x02) */
- DOP_MOVE_16, /* move/16 (0x03) */
- DOP_MOVE_WIDE, /* move-wide (0x04) */
- DOP_MOVE_WIDE_FROM_16, /* move-wide/from16 (0x05) */
- DOP_MOVE_WIDE_16, /* move-wide/16 (0x06) */
- DOP_MOVE_OBJECT, /* move-object (0x07) */
- DOP_MOVE_OBJECT_FROM_16, /* move-object/from16 (0x08) */
- DOP_MOVE_OBJECT_16, /* move-object/16 (0x09) */
- DOP_MOVE_RESULT, /* move-result (0x0a) */
- DOP_MOVE_RESULT_WIDE, /* move-result-wide (0x0b) */
- DOP_MOVE_RESULT_OBJECT, /* move-result-object (0x0c) */
- DOP_MOVE_EXCEPTION, /* move-exception (0x0d) */
- DOP_RETURN_VOID, /* return-void (0x0e) */
- DOP_RETURN, /* return (0x0f) */
- DOP_RETURN_WIDE, /* return-wide (0x10) */
- DOP_RETURN_OBJECT, /* return-object (0x11) */
- DOP_CONST_4, /* const/4 (0x12) */
- DOP_CONST_16, /* const/16 (0x13) */
- DOP_CONST, /* const (0x14) */
- DOP_CONST_HIGH16, /* const/high16 (0x15) */
- DOP_CONST_WIDE_16, /* const-wide/16 (0x16) */
- DOP_CONST_WIDE_32, /* const-wide/32 (0x17) */
- DOP_CONST_WIDE, /* const-wide (0x18) */
- DOP_CONST_WIDE_HIGH16, /* const-wide/high16 (0x19) */
- DOP_CONST_STRING, /* const-string (0x1a) */
- DOP_CONST_STRING_JUMBO, /* const-string/jumbo (0x1b) */
- DOP_CONST_CLASS, /* const-class (0x1c) */
- DOP_MONITOR_ENTER, /* monitor-enter (0x1d) */
- DOP_MONITOR_EXIT, /* monitor-exit (0x1e) */
- DOP_CHECK_CAST, /* check-cast (0x1f) */
- DOP_INSTANCE_OF, /* instance-of (0x20) */
- DOP_ARRAY_LENGTH, /* array-length (0x21) */
- DOP_NEW_INSTANCE, /* new-instance (0x22) */
- DOP_NEW_ARRAY, /* new-array (0x23) */
- DOP_FILLED_NEW_ARRAY, /* filled-new-array (0x24) */
- DOP_FILLED_NEW_ARRAY_RANGE, /* filled-new-array/range(0x25)*/
- DOP_FILL_ARRAY_DATA, /* fill-array-data (0x26) */
- DOP_THROW, /* throw (0x27) */
- DOP_GOTO, /* goto (0x28) */
- DOP_GOTO_16, /* goto/16 (0x29) */
- DOP_GOTO_32, /* goto/32 (0x2a) */
- DOP_PACKED_SWITCH, /* packed-switch (0x2b) */
- DOP_SPARSE_SWITCH, /* sparse-switch (0x2c) */
- DOP_CMPL_FLOAT, /* cmp-long (0x2d) */
- DOP_CMPG_FLOAT, /* cmpg-float (0x2e) */
- DOP_CMPL_DOUBLE, /* cmpl-double (0x2f) */
- DOP_CMPG_DOUBLE, /* cmpg-double (0x30) */
- DOP_CMP_LONG, /* cmp-long (0x31) */
- DOP_IF_EQ, /* if-eq (0x32) */
- DOP_IF_NE, /* if-ne (0x33) */
- DOP_IF_LT, /* if-lt (0x34) */
- DOP_IF_GE, /* if-ge (0x35) */
- DOP_IF_GT, /* if-gt (0x36) */
- DOP_IF_LE, /* if-le (0x37) */
- DOP_IF_EQZ, /* if-eqz (0x38) */
- DOP_IF_NEZ, /* if-nez (0x39) */
- DOP_IF_LTZ, /* if-ltz (0x3a) */
- DOP_IF_GEZ, /* if-gez (0x3b) */
- DOP_IF_GTZ, /* if-gtz (0x3c) */
- DOP_IF_LEZ, /* if-lez (0x3d) */
- DOP_UNUSED_3E, /* -unused- (0x3e) */
- DOP_UNUSED_3F, /* -unused- (0x3f) */
- DOP_UNUSED_40, /* -unused- (0x40) */
- DOP_UNUSED_41, /* -unused- (0x41) */
- DOP_UNUSED_42, /* -unused- (0x42) */
- DOP_UNUSED_43, /* -unused- (0x43) */
- DOP_AGET, /* aget (0x44) */
- DOP_AGET_WIDE, /* aget-wide (0x45) */
- DOP_AGET_OBJECT, /* aget-object (0x46) */
- DOP_AGET_BOOLEAN, /* aget-boolean (0x47) */
- DOP_AGET_BYTE, /* aget-byte (0x48) */
- DOP_AGET_CHAR, /* aget-char (0x49) */
- DOP_AGET_SHORT, /* aget-short (0x4a) */
- DOP_APUT, /* aput (0x4b) */
- DOP_APUT_WIDE, /* aput-wide (0x4c) */
- DOP_APUT_OBJECT, /* aput-object (0x4d) */
- DOP_APUT_BOOLEAN, /* aput-boolean (0x4e) */
- DOP_APUT_BYTE, /* aput-byte (0x4f) */
- DOP_APUT_CHAR, /* aput-char (0x50) */
- DOP_APUT_SHORT, /* aput-short (0x51) */
- DOP_IGET, /* iget (0x52) */
- DOP_IGET_WIDE, /* iget-wide (0x53) */
- DOP_IGET_OBJECT, /* iget-object (0x54) */
- DOP_IGET_BOOLEAN, /* iget-boolean (0x55) */
- DOP_IGET_BYTE, /* iget-byte (0x56) */
- DOP_IGET_CHAR, /* iget-char (0x57) */
- DOP_IGET_SHORT, /* iget-short (0x58) */
- DOP_IPUT, /* iput (0x59) */
- DOP_IPUT_WIDE, /* iput-wide (0x5a) */
- DOP_IPUT_OBJECT, /* iput-object (0x5b) */
- DOP_IPUT_BOOLEAN, /* iput-boolean (0x5c) */
- DOP_IPUT_BYTE, /* iput-byte (0x5d) */
- DOP_IPUT_CHAR, /* iput-char (0x5e) */
- DOP_IPUT_SHORT, /* iput-short (0x5f) */
- DOP_SGET, /* sget (0x60) */
- DOP_SGET_WIDE, /* sget-wide (0x61) */
- DOP_SGET_OBJECT, /* sget-object (0x62) */
- DOP_SGET_BOOLEAN, /* sget-boolean (0x63) */
- DOP_SGET_BYTE, /* sget-byte (0x64) */
- DOP_SGET_CHAR, /* sget-char (0x65) */
- DOP_SGET_SHORT, /* sget-short (0x66) */
- DOP_SPUT, /* sput (0x67) */
- DOP_SPUT_WIDE, /* sput-wide (0x68) */
- DOP_SPUT_OBJECT, /* sput-object (0x69) */
- DOP_SPUT_BOOLEAN, /* sput-boolean (0x6a) */
- DOP_SPUT_BYTE, /* sput-byte (0x6b) */
- DOP_SPUT_CHAR, /* sput-char (0x6c) */
- DOP_SPUT_SHORT, /* sput-short (0x6d) */
- DOP_INVOKE_VIRTUAL, /* invoke-virtual (0x6e) */
- DOP_INVOKE_SUPER, /* invoke-super (0x6f) */
- DOP_INVOKE_DIRECT, /* invoke-direct (0x70) */
- DOP_INVOKE_STATIC, /* invoke-static (0x71) */
- DOP_INVOKE_INTERFACE, /* invoke-interface (0x72) */
- DOP_UNUSED_73, /* -unused- (0x73) */
- DOP_INVOKE_VIRTUAL_RANGE, /* invoke-virtual/range (0x74) */
- DOP_INVOKE_SUPER_RANGE, /* invoke-super/range (0x75) */
- DOP_INVOKE_DIRECT_RANGE, /* invoke-direct/range (0x76) */
- DOP_INVOKE_STATIC_RANGE, /* invoke-static/range (0x77) */
- DOP_INVOKE_INTERFACE_RANGE, /* invoke-interface/rg. (0x78) */
- DOP_UNUSED_79, /* -unused- (0x79) */
- DOP_UNUSED_7A, /* -unused- (0x7a) */
- DOP_NEG_INT, /* neg-int (0x7b) */
- DOP_NOT_INT, /* not-int (0x7c) */
- DOP_NEG_LONG, /* neg-long (0x7d) */
- DOP_NOT_LONG, /* not-long (0x7e) */
- DOP_NEG_FLOAT, /* neg-float (0x7f) */
- DOP_NEG_DOUBLE, /* neg-double (0x80) */
- DOP_TO_INT_LONG, /* int-to-long (0x81) */
- DOP_TO_INT_FLOAT, /* int-to-float (0x82) */
- DOP_TO_INT_DOUBLE, /* int-to-double (0x83) */
- DOP_TO_LONG_INT, /* long-to-int (0x84) */
- DOP_TO_LONG_FLOAT, /* long-to-float (0x85) */
- DOP_TO_LONG_DOUBLE, /* long-to-double (0x86) */
- DOP_TO_FLOAT_INT, /* float-to-int (0x87) */
- DOP_TO_FLOAT_LONG, /* float-to-long (0x88) */
- DOP_TO_FLOAT_DOUBLE, /* float-to-double (0x89) */
- DOP_TO_DOUBLE_INT, /* double-to-int (0x8a) */
- DOP_TO_DOUBLE_LONG, /* double-to-long (0x8b) */
- DOP_TO_DOUBLE_FLOAT, /* double-to-float (0x8c) */
- DOP_TO_INT_BYTE, /* int-to-byte (0x8d) */
- DOP_TO_INT_CHAR, /* int-to-char (0x8e) */
- DOP_TO_INT_SHORT, /* int-to-short (0x8f) */
- DOP_ADD_INT, /* add-int (0x90) */
- DOP_SUB_INT, /* sub-int (0x91) */
- DOP_MUL_INT, /* mul-int (0x92) */
- DOP_DIV_INT, /* div-int (0x93) */
- DOP_REM_INT, /* rem-int (0x94) */
- DOP_AND_INT, /* and-int (0x95) */
- DOP_OR_INT, /* or-int (0x96) */
- DOP_XOR_INT, /* xor-int (0x97) */
- DOP_SHL_INT, /* shl-int (0x98) */
- DOP_SHR_INT, /* shr-int (0x99) */
- DOP_USHR_INT, /* ushr-int (0x9a) */
- DOP_ADD_LONG, /* add-long (0x9b) */
- DOP_SUB_LONG, /* sub-long (0x9c) */
- DOP_MUL_LONG, /* mul-long (0x9d) */
- DOP_DIV_LONG, /* div-long (0x9e) */
- DOP_REM_LONG, /* rem-long (0x9f) */
- DOP_AND_LONG, /* and-long (0xa0) */
- DOP_OR_LONG, /* or-long (0xa1) */
- DOP_XOR_LONG, /* xor-long (0xa2) */
- DOP_SHL_LONG, /* shl-long (0xa3) */
- DOP_SHR_LONG, /* shr-long (0xa4) */
- DOP_USHR_LONG, /* ushr-long (0xa5) */
- DOP_ADD_FLOAT, /* add-float (0xa6) */
- DOP_SUB_FLOAT, /* sub-float (0xa7) */
- DOP_MUL_FLOAT, /* mul-float (0xa8) */
- DOP_DIV_FLOAT, /* mul-float (0xa9) */
- DOP_REM_FLOAT, /* mul-float (0xaa) */
- DOP_ADD_DOUBLE, /* add-double (0xab) */
- DOP_SUB_DOUBLE, /* sub-double (0xac) */
- DOP_MUL_DOUBLE, /* mul-double (0xad) */
- DOP_DIV_DOUBLE, /* div-double (0xae) */
- DOP_REM_DOUBLE, /* rem-double (0xaf) */
- DOP_ADD_INT_2ADDR, /* add-int/2addr (0xb0) */
- DOP_SUB_INT_2ADDR, /* add-int/2addr (0xb1) */
- DOP_MUL_INT_2ADDR, /* mul-int/2addr (0xb2) */
- DOP_DIV_INT_2ADDR, /* div-int/2addr (0xb3) */
- DOP_REM_INT_2ADDR, /* rem-int/2addr (0xb4) */
- DOP_AND_INT_2ADDR, /* and-int/2addr (0xb5) */
- DOP_OR_INT_2ADDR, /* or-int/2addr (0xb6) */
- DOP_XOR_INT_2ADDR, /* xor-int/2addr (0xb7) */
- DOP_SHL_INT_2ADDR, /* shl-int/2addr (0xb8) */
- DOP_SHR_INT_2ADDR, /* shr-int/2addr (0xb9) */
- DOP_USHR_INT_2ADDR, /* ushr-int/2addr (0xba) */
- DOP_ADD_LONG_2ADDR, /* add-long/2addr (0xbb) */
- DOP_SUB_LONG_2ADDR, /* sub-long/2addr (0xbc) */
- DOP_MUL_LONG_2ADDR, /* mul-long/2addr (0xbd) */
- DOP_DIV_LONG_2ADDR, /* div-long/2addr (0xbe) */
- DOP_REM_LONG_2ADDR, /* rem-long/2addr (0xbf) */
- DOP_AND_LONG_2ADDR, /* and-long/2addr (0xc0) */
- DOP_OR_LONG_2ADDR, /* or-long/2addr (0xc1) */
- DOP_XOR_LONG_2ADDR, /* xor-long/2addr (0xc2) */
- DOP_SHL_LONG_2ADDR, /* shl-long/2addr (0xc3) */
- DOP_SHR_LONG_2ADDR, /* shr-long/2addr (0xc4) */
- DOP_USHR_LONG_2ADDR, /* ushr-long/2addr (0xc5) */
- DOP_ADD_FLOAT_2ADDR, /* add-float/2addr (0xc6) */
- DOP_SUB_FLOAT_2ADDR, /* sub-float/2addr (0xc7) */
- DOP_MUL_FLOAT_2ADDR, /* mul-float/2addr (0xc8) */
- DOP_DIV_FLOAT_2ADDR, /* div-float/2addr (0xc9) */
- DOP_REM_FLOAT_2ADDR, /* rem-float/2addr (0xca) */
- DOP_ADD_DOUBLE_2ADDR, /* add-double/2addr (0xcb) */
- DOP_SUB_DOUBLE_2ADDR, /* sub-double/2addr (0xcc) */
- DOP_MUL_DOUBLE_2ADDR, /* mul-double/2addr (0xcd) */
- DOP_DIV_DOUBLE_2ADDR, /* div-double/2addr (0xce) */
- DOP_REM_DOUBLE_2ADDR, /* rem-double/2addr (0xcf) */
- DOP_ADD_INT_LIT16, /* add-int/lit16 (0xd0) */
- DOP_RSUB_INT, /* rsub-int (0xd1) */
- DOP_MUL_INT_LIT16, /* mul-int/lit16 (0xd2) */
- DOP_DIV_INT_LIT16, /* div-int/lit16 (0xd3) */
- DOP_REM_INT_LIT16, /* rem-int/lit16 (0xd4) */
- DOP_AND_INT_LIT16, /* and-int/lit16 (0xd5) */
- DOP_OR_INT_LIT16, /* or-int/lit16 (0xd6) */
- DOP_XOR_INT_LIT16, /* xor-int/lit16 (0xd7) */
- DOP_ADD_INT_LIT8, /* add-int/lit8 (0xd8) */
- DOP_RSUB_INT_LIT8, /* rsub-int/lit8 (0xd9) */
- DOP_MUL_INT_LIT8, /* mul-int/lit8 (0xda) */
- DOP_DIV_INT_LIT8, /* div-int/lit8 (0xdb) */
- DOP_REM_INT_LIT8, /* rem-int/lit8 (0xdc) */
- DOP_AND_INT_LIT8, /* and-int/lit8 (0xdd) */
- DOP_OR_INT_LIT8, /* or-int/lit8 (0xde) */
- DOP_XOR_INT_LIT8, /* xor-int/lit8 (0xdf) */
- DOP_SHL_INT_LIT8, /* shl-int/lit8 (0xe0) */
- DOP_SHR_INT_LIT8, /* shr-int/lit8 (0xe1) */
- DOP_USHR_INT_LIT8, /* ushr-int/lit8 (0xe2) */
- DOP_UNUSED_E3, /* -unused- (0xe3) */
- DOP_UNUSED_E4, /* -unused- (0xe4) */
- DOP_UNUSED_E5, /* -unused- (0xe5) */
- DOP_UNUSED_E6, /* -unused- (0xe6) */
- DOP_UNUSED_E7, /* -unused- (0xe7) */
- DOP_UNUSED_E8, /* -unused- (0xe8) */
- DOP_UNUSED_E9, /* -unused- (0xe9) */
- DOP_UNUSED_EA, /* -unused- (0xea) */
- DOP_UNUSED_EB, /* -unused- (0xeb) */
- DOP_UNUSED_EC, /* -unused- (0xec) */
- DOP_UNUSED_ED, /* -unused- (0xed) */
- DOP_UNUSED_EE, /* -unused- (0xee) */
- DOP_UNUSED_EF, /* -unused- (0xef) */
- DOP_UNUSED_F0, /* -unused- (0xf0) */
- DOP_UNUSED_F1, /* -unused- (0xf1) */
- DOP_UNUSED_F2, /* -unused- (0xf2) */
- DOP_UNUSED_F3, /* -unused- (0xf3) */
- DOP_UNUSED_F4, /* -unused- (0xf4) */
- DOP_UNUSED_F5, /* -unused- (0xf5) */
- DOP_UNUSED_F6, /* -unused- (0xf6) */
- DOP_UNUSED_F7, /* -unused- (0xf7) */
- DOP_UNUSED_F8, /* -unused- (0xf8) */
- DOP_UNUSED_F9, /* -unused- (0xf9) */
- DOP_UNUSED_FA, /* -unused- (0xfa) */
- DOP_UNUSED_FB, /* -unused- (0xfb) */
- DOP_UNUSED_FC, /* -unused- (0xfc) */
- DOP_UNUSED_FD, /* -unused- (0xfd) */
- DOP_UNUSED_FE, /* -unused- (0xfe) */
- DOP_UNUSED_FF, /* -unused- (0xff) */
-
- DOP_COUNT
-
-} DalvikOpcodes;
-
-
-/* Enumération de tous les pseudo-opcodes */
-typedef enum _DalvikPseudoOpcodes
-{
- DPO_PACKED_SWITCH = 0x0100, /* Switch aux clefs compactes */
- DPO_SPARSE_SWITCH = 0x0200, /* Switch aux clefs éclatées */
- DPO_FILL_ARRAY_DATA = 0x0300 /* Contenu de tableau */
-
-} DalvikPseudoOpcodes;
-
-
-
-#endif /* _ARCH_DALVIK_INSTRUCTION_DEF_H */
diff --git a/plugins/dalvik/instruction-int.h b/plugins/dalvik/instruction-int.h
index b4e59b0..847b112 100644
--- a/plugins/dalvik/instruction-int.h
+++ b/plugins/dalvik/instruction-int.h
@@ -21,14 +21,14 @@
*/
-#ifndef _ARCH_DALVIK_INSTRUCTION_INT_H
-#define _ARCH_DALVIK_INSTRUCTION_INT_H
+#ifndef _PLUGINS_DALVIK_INSTRUCTION_INT_H
+#define _PLUGINS_DALVIK_INSTRUCTION_INT_H
-#include <arch/instruction-int.h>
+#include "instruction.h"
-#include "instruction-def.h"
+#include <arch/instruction-int.h>
@@ -37,11 +37,6 @@ struct _GDalvikInstruction
{
GArchInstruction parent; /* A laisser en premier */
- const char *keyword; /* Nom clef de l'instruction */
-
- DalvikOpcodes type; /* Position dans la liste */
- DalvikPseudoOpcodes ptype; /* Position dans la liste #2 */
-
};
/* Définition générique d'une instruction d'architecture Dalvik (classe) */
@@ -53,4 +48,4 @@ struct _GDalvikInstructionClass
-#endif /* _ARCH_DALVIK_INSTRUCTION_INT_H */
+#endif /* _PLUGINS_DALVIK_INSTRUCTION_INT_H */
diff --git a/plugins/dalvik/instruction.c b/plugins/dalvik/instruction.c
index 7105dc9..bd41cf9 100644
--- a/plugins/dalvik/instruction.c
+++ b/plugins/dalvik/instruction.c
@@ -32,7 +32,6 @@
#include "instruction-int.h"
-#include "operands/register.h"
@@ -48,12 +47,6 @@ static void g_dalvik_instruction_dispose(GDalvikInstruction *);
/* Procède à la libération totale de la mémoire. */
static void g_dalvik_instruction_finalize(GDalvikInstruction *);
-/* Indique l'encodage d'une instruction de façon détaillée. */
-static const char *g_dalvik_instruction_get_encoding(const GDalvikInstruction *);
-
-/* Fournit le nom humain de l'instruction manipulée. */
-static const char *g_dalvik_instruction_get_keyword(const GDalvikInstruction *, AsmSyntax);
-
/* Construit un petit résumé concis de l'instruction. */
static char *g_dalvik_instruction_build_tooltip(const GDalvikInstruction *);
@@ -63,7 +56,6 @@ static char *g_dalvik_instruction_build_tooltip(const GDalvikInstruction *);
G_DEFINE_TYPE(GDalvikInstruction, g_dalvik_instruction, G_TYPE_ARCH_INSTRUCTION);
-
/******************************************************************************
* *
* Paramètres : klass = classe à initialiser. *
@@ -88,8 +80,6 @@ static void g_dalvik_instruction_class_init(GDalvikInstructionClass *klass)
instr = G_ARCH_INSTRUCTION_CLASS(klass);
- instr->get_encoding = (get_instruction_encoding_fc)g_dalvik_instruction_get_encoding;
- instr->get_keyword = (get_instruction_keyword_fc)g_dalvik_instruction_get_keyword;
instr->build_tooltip = (build_instruction_tooltip_fc)g_dalvik_instruction_build_tooltip;
}
@@ -153,74 +143,6 @@ static void g_dalvik_instruction_finalize(GDalvikInstruction *instr)
/******************************************************************************
* *
-* Paramètres : keyword = définition du nom humaine de l'instruction. *
-* *
-* Description : Crée une instruction pour l'architecture Dalvik. *
-* *
-* Retour : Adresse de la structure mise en place. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *g_dalvik_instruction_new(const char *keyword)
-{
- GArchInstruction *result; /* Structure à retourner */
-
- result = g_object_new(G_TYPE_DALVIK_INSTRUCTION, NULL);
-
- G_DALVIK_INSTRUCTION(result)->keyword = keyword;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : instr = instruction quelconque à consulter. *
-* *
-* Description : Indique l'encodage d'une instruction de façon détaillée. *
-* *
-* Retour : Description humaine de l'encodage utilisé. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static const char *g_dalvik_instruction_get_encoding(const GDalvikInstruction *instr)
-{
- const char *result; /* Description à retourner */
-
- result = "Dalvik";
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : instr = instruction d'assemblage à consulter. *
-* syntax = type de représentation demandée. *
-* *
-* Description : Fournit le nom humain de l'instruction manipulée. *
-* *
-* Retour : Mot clef de bas niveau. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static const char *g_dalvik_instruction_get_keyword(const GDalvikInstruction *instr, AsmSyntax syntax)
-{
- return instr->keyword;
-
-}
-
-
-/******************************************************************************
-* *
* Paramètres : instr = instruction Dalvik à consulter. *
* *
* Description : Construit un petit résumé concis de l'instruction. *
@@ -240,22 +162,3 @@ static char *g_dalvik_instruction_build_tooltip(const GDalvikInstruction *instr)
return result;
}
-
-
-/******************************************************************************
-* *
-* Paramètres : instr = instruction Dalvik à consulter. *
-* *
-* Description : Indique l'opcode associé à une instruction Dalvik. *
-* *
-* Retour : Identifiant de l'instruction en place. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-DalvikOpcodes g_dalvik_instruction_get_opcode(const GDalvikInstruction *instr)
-{
- return instr->type;
-
-}
diff --git a/plugins/dalvik/instruction.h b/plugins/dalvik/instruction.h
index 8f05cc5..e11a249 100644
--- a/plugins/dalvik/instruction.h
+++ b/plugins/dalvik/instruction.h
@@ -21,16 +21,13 @@
*/
-#ifndef _ARCH_DALVIK_INSTRUCTION_H
-#define _ARCH_DALVIK_INSTRUCTION_H
+#ifndef _PLUGINS_DALVIK_INSTRUCTION_H
+#define _PLUGINS_DALVIK_INSTRUCTION_H
#include <arch/instruction.h>
-#include "instruction-def.h"
-
-
#define G_TYPE_DALVIK_INSTRUCTION g_dalvik_instruction_get_type()
#define G_DALVIK_INSTRUCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_dalvik_instruction_get_type(), GDalvikInstruction))
@@ -48,21 +45,6 @@ typedef struct _GDalvikInstructionClass GDalvikInstructionClass;
/* Indique le type défini pour une instruction d'architecture Dalvik. */
GType g_dalvik_instruction_get_type(void);
-/* Crée une instruction pour l'architecture Dalvik. */
-GArchInstruction *g_dalvik_instruction_new(const char *);
-
-/* Indique l'opcode associé à une instruction Dalvik. */
-DalvikOpcodes g_dalvik_instruction_get_opcode(const struct _GDalvikInstruction *);
-
-
-
-/* --------------------- AIDE A LA MISE EN PLACE D'INSTRUCTIONS --------------------- */
-
-
-
-
-/* ------------------------ AIDE A LA PHASE DE DECOMPILATION ------------------------ */
-
-#endif /* _ARCH_DALVIK_INSTRUCTION_H */
+#endif /* _PLUGINS_DALVIK_INSTRUCTION_H */
diff --git a/plugins/dalvik/link.h b/plugins/dalvik/link.h
index 41d03ec..36584b2 100644
--- a/plugins/dalvik/link.h
+++ b/plugins/dalvik/link.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_LINK_H
-#define _ARCH_DALVIK_LINK_H
+#ifndef _PLUGINS_DALVIK_LINK_H
+#define _PLUGINS_DALVIK_LINK_H
#include <arch/link.h>
@@ -45,4 +45,4 @@ void handle_dalvik_packed_switch_links(GArchInstruction *, GArchProcessor *, GPr
-#endif /* _ARCH_DALVIK_LINK_H */
+#endif /* _PLUGINS_DALVIK_LINK_H */
diff --git a/plugins/dalvik/opdefs/invoke_6e.d b/plugins/dalvik/opdefs/invoke_6e.d
deleted file mode 100644
index e7b3f0d..0000000
--- a/plugins/dalvik/opdefs/invoke_6e.d
+++ /dev/null
@@ -1,30 +0,0 @@
-
-/* 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 | pool_meth
-
-}
diff --git a/plugins/dalvik/opdefs/invoke_6f.d b/plugins/dalvik/opdefs/invoke_6f.d
deleted file mode 100644
index 9fa4666..0000000
--- a/plugins/dalvik/opdefs/invoke_6f.d
+++ /dev/null
@@ -1,30 +0,0 @@
-
-/* 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 | pool_meth
-
-}
diff --git a/plugins/dalvik/opdefs/invoke_70.d b/plugins/dalvik/opdefs/invoke_70.d
deleted file mode 100644
index 6662ce3..0000000
--- a/plugins/dalvik/opdefs/invoke_70.d
+++ /dev/null
@@ -1,30 +0,0 @@
-
-/* 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 | pool_meth
-
-}
diff --git a/plugins/dalvik/opdefs/invoke_71.d b/plugins/dalvik/opdefs/invoke_71.d
deleted file mode 100644
index f179dbd..0000000
--- a/plugins/dalvik/opdefs/invoke_71.d
+++ /dev/null
@@ -1,30 +0,0 @@
-
-/* 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 | pool_meth
-
-}
diff --git a/plugins/dalvik/opdefs/invoke_72.d b/plugins/dalvik/opdefs/invoke_72.d
deleted file mode 100644
index 6ad8e09..0000000
--- a/plugins/dalvik/opdefs/invoke_72.d
+++ /dev/null
@@ -1,30 +0,0 @@
-
-/* 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 | pool_meth
-
-}
diff --git a/plugins/dalvik/opdefs/nop_00.d b/plugins/dalvik/opdefs/nop_00.d
deleted file mode 100644
index d10d439..0000000
--- a/plugins/dalvik/opdefs/nop_00.d
+++ /dev/null
@@ -1,30 +0,0 @@
-
-/* 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/plugins/dalvik/operand.h b/plugins/dalvik/operand.h
index b34c87c..f5ef9ed 100644
--- a/plugins/dalvik/operand.h
+++ b/plugins/dalvik/operand.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_OPERAND_H
-#define _ARCH_DALVIK_OPERAND_H
+#ifndef _PLUGINS_DALVIK_OPERAND_H
+#define _PLUGINS_DALVIK_OPERAND_H
#include <arch/instruction.h>
@@ -122,4 +122,4 @@ void dalvik_mark_first_operand_as_written(GArchInstruction *);
-#endif /* _ARCH_DALVIK_OPERAND_H */
+#endif /* _PLUGINS_DALVIK_OPERAND_H */
diff --git a/plugins/dalvik/operands/args.h b/plugins/dalvik/operands/args.h
index 354333d..9c4ba84 100644
--- a/plugins/dalvik/operands/args.h
+++ b/plugins/dalvik/operands/args.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_OPERANDS_ARGS_H
-#define _ARCH_DALVIK_OPERANDS_ARGS_H
+#ifndef _PLUGINS_DALVIK_OPERANDS_ARGS_H
+#define _PLUGINS_DALVIK_OPERANDS_ARGS_H
#include <glib-object.h>
@@ -64,4 +64,4 @@ GArchOperand *g_dalvik_args_operand_get(const GDalvikArgsOperand *, size_t);
-#endif /* _ARCH_DALVIK_OPERANDS_ARGS_H */
+#endif /* _PLUGINS_DALVIK_OPERANDS_ARGS_H */
diff --git a/plugins/dalvik/operands/pool.h b/plugins/dalvik/operands/pool.h
index 3045a2c..d4e9722 100644
--- a/plugins/dalvik/operands/pool.h
+++ b/plugins/dalvik/operands/pool.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_OPERANDS_POOL_H
-#define _ARCH_DALVIK_OPERANDS_POOL_H
+#ifndef _PLUGINS_DALVIK_OPERANDS_POOL_H
+#define _PLUGINS_DALVIK_OPERANDS_POOL_H
#include <glib-object.h>
@@ -77,4 +77,4 @@ uint32_t g_dalvik_pool_operand_get_index(const GDalvikPoolOperand *);
-#endif /* _ARCH_DALVIK_OPERANDS_POOL_H */
+#endif /* _PLUGINS_DALVIK_OPERANDS_POOL_H */
diff --git a/plugins/dalvik/operands/register.h b/plugins/dalvik/operands/register.h
index f1dec72..58be978 100644
--- a/plugins/dalvik/operands/register.h
+++ b/plugins/dalvik/operands/register.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_OPERANDS_REGISTER_H
-#define _ARCH_DALVIK_OPERANDS_REGISTER_H
+#ifndef _PLUGINS_DALVIK_OPERANDS_REGISTER_H
+#define _PLUGINS_DALVIK_OPERANDS_REGISTER_H
#include <glib-object.h>
@@ -72,4 +72,4 @@ bool g_dalvik_register_operand_is_written(const GDalvikRegisterOperand *);
-#endif /* _ARCH_DALVIK_OPERANDS_REGISTER_H */
+#endif /* _PLUGINS_DALVIK_OPERANDS_REGISTER_H */
diff --git a/plugins/dalvik/post.h b/plugins/dalvik/post.h
index 63d35c3..7c867fd 100644
--- a/plugins/dalvik/post.h
+++ b/plugins/dalvik/post.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_POST_H
-#define _ARCH_DALVIK_POST_H
+#ifndef _PLUGINS_DALVIK_POST_H
+#define _PLUGINS_DALVIK_POST_H
#include <arch/post.h>
@@ -49,4 +49,4 @@ static inline void post_process_dalvik_ifz_target_resolution(GArchInstruction *i
-#endif /* _ARCH_DALVIK_POST_H */
+#endif /* _PLUGINS_DALVIK_POST_H */
diff --git a/plugins/dalvik/processor-int.h b/plugins/dalvik/processor-int.h
new file mode 100644
index 0000000..6d551fa
--- /dev/null
+++ b/plugins/dalvik/processor-int.h
@@ -0,0 +1,59 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * processor-int.h - prototypes pour la définition générique interne du processeur de la VM Dalvik
+ *
+ * Copyright (C) 2018 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/>.
+ */
+
+
+#ifndef _PLUGINS_DALVIK_PROCESSOR_INT_H
+#define _PLUGINS_DALVIK_PROCESSOR_INT_H
+
+
+#include "processor.h"
+
+
+#include <arch/processor-int.h>
+
+
+#include "context.h"
+
+
+
+/* Définition du processeur de la VM Dalvik (instance) */
+struct _GDalvikProcessor
+{
+ GArchProcessor parent; /* Instance parente */
+
+};
+
+
+/* Définition du processeur de la VM Dalvik (classe) */
+struct _GDalvikProcessorClass
+{
+ GArchProcessorClass parent; /* Classe parente */
+
+};
+
+
+/* Décode une pseudo-instruction dans un flux de données. */
+GArchInstruction *g_dalvik_processor_disassemble_pseudo(const GArchProcessor *, GDalvikContext *, const GBinContent *, vmpa2t *, uint8_t);
+
+
+
+#endif /* _PLUGINS_DALVIK_PROCESSOR_INT_H */
diff --git a/plugins/dalvik/processor.c b/plugins/dalvik/processor.c
index ff8b805..c3bce8f 100644
--- a/plugins/dalvik/processor.c
+++ b/plugins/dalvik/processor.c
@@ -27,34 +27,17 @@
#include <assert.h>
-#include <arch/processor-int.h>
#include <plugins/dex/format.h>
-#include "context.h"
#include "instruction.h"
-#include "opcodes/opcodes.h"
+#include "processor-int.h"
#include "pseudo/fill.h"
+#include "pseudo/identifiers.h"
#include "pseudo/switch.h"
-/* Définition du processeur de la VM Dalvik (instance) */
-struct _GDalvikProcessor
-{
- GArchProcessor parent; /* Instance parente */
-
-};
-
-
-/* Définition du processeur de la VM Dalvik (classe) */
-struct _GDalvikProcessorClass
-{
- GArchProcessorClass parent; /* Classe parente */
-
-};
-
-
/* Initialise la classe des processeurs de VM Dalvik. */
static void g_dalvik_processor_class_init(GDalvikProcessorClass *);
@@ -73,19 +56,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_processor_disassemble_pseudo(const GArchProcessor *, GDalvikContext *, const GBinContent *, vmpa2t *, uint8_t);
-
/* Indique le type défini par la GLib pour le processeur DALVIK. */
G_DEFINE_TYPE(GDalvikProcessor, g_dalvik_processor, G_TYPE_ARCH_PROCESSOR);
-
/******************************************************************************
* *
* Paramètres : klass = classe à initialiser. *
@@ -113,8 +89,6 @@ static void g_dalvik_processor_class_init(GDalvikProcessorClass *klass)
proc->get_ctx = (get_processor_context_fc)g_dalvik_processor_get_context;
//proc->get_dec_ctx = (get_decomp_context_fc)g_dalvik_processor_get_decomp_context;
- proc->disassemble = (disass_instr_fc)g_dalvik_processor_disassemble;
-
}
@@ -183,29 +157,6 @@ static void g_dalvik_processor_finalize(GDalvikProcessor *proc)
/******************************************************************************
* *
-* Paramètres : - *
-* *
-* Description : Crée le support de l'architecture Dalvik. *
-* *
-* Retour : Architecture mise en place. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchProcessor *g_dalvik_processor_new(void)
-{
- GArchProcessor *result; /* Structure à retourner */
-
- result = g_object_new(G_TYPE_DALVIK_PROCESSOR, NULL);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
* Paramètres : proc = architecture, spectatrice ici. *
* *
* Description : Fournit un contexte pour l'exécution du processeur Dalvik. *
@@ -245,282 +196,6 @@ static GDalvikDContext *g_dalvik_processor_get_decomp_context(const GDalvikProce
/******************************************************************************
* *
-* 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ésassemble une instruction dans un flux de données. *
-* *
-* Retour : Instruction mise en place ou NULL en cas d'échec. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-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 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_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_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_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,
- [DOP_MOVE_RESULT_OBJECT] = dalvik_read_instr_move_result_object,
- [DOP_MOVE_EXCEPTION] = dalvik_read_instr_move_exception,
- [DOP_RETURN_VOID] = dalvik_read_instr_return_void,
- [DOP_RETURN] = dalvik_read_instr_return,
- [DOP_RETURN_WIDE] = dalvik_read_instr_return_wide,
- [DOP_RETURN_OBJECT] = dalvik_read_instr_return_object,
- [DOP_CONST_4] = dalvik_read_instr_const_4,
- [DOP_CONST_16] = dalvik_read_instr_const_16,
- [DOP_CONST] = dalvik_read_instr_const,
- [DOP_CONST_HIGH16] = dalvik_read_instr_const_high16,
- [DOP_CONST_WIDE_16] = dalvik_read_instr_const_wide_16,
- [DOP_CONST_WIDE_32] = dalvik_read_instr_const_wide_32,
- [DOP_CONST_WIDE] = dalvik_read_instr_const_wide,
- [DOP_CONST_WIDE_HIGH16] = dalvik_read_instr_const_wide_high16,
- [DOP_CONST_STRING] = dalvik_read_instr_const_string,
- [DOP_CONST_STRING_JUMBO] = dalvik_read_instr_const_string_jumbo,
- [DOP_CONST_CLASS] = dalvik_read_instr_const_class,
- [DOP_MONITOR_ENTER] = dalvik_read_instr_monitor_enter,
- [DOP_MONITOR_EXIT] = dalvik_read_instr_monitor_exit,
- [DOP_CHECK_CAST] = dalvik_read_instr_check_cast,
- [DOP_INSTANCE_OF] = dalvik_read_instr_instance_of,
- [DOP_ARRAY_LENGTH] = dalvik_read_instr_array_length,
- [DOP_NEW_INSTANCE] = dalvik_read_instr_new_instance,
- [DOP_NEW_ARRAY] = dalvik_read_instr_new_array,
- [DOP_FILLED_NEW_ARRAY] = dalvik_read_instr_filled_new_array,
- [DOP_FILLED_NEW_ARRAY_RANGE]= dalvik_read_instr_filled_new_array_range,
- [DOP_FILL_ARRAY_DATA] = dalvik_read_instr_fill_array_data,
- [DOP_THROW] = dalvik_read_instr_throw,
- [DOP_GOTO] = dalvik_read_instr_goto,
- [DOP_GOTO_16] = dalvik_read_instr_goto_16,
- [DOP_GOTO_32] = dalvik_read_instr_goto_32,
- [DOP_PACKED_SWITCH] = dalvik_read_instr_packed_switch,
- [DOP_SPARSE_SWITCH] = dalvik_read_instr_sparse_switch,
- [DOP_CMPL_FLOAT] = dalvik_read_instr_cmpl_float,
- [DOP_CMPG_FLOAT] = dalvik_read_instr_cmpg_float,
- [DOP_CMPL_DOUBLE] = dalvik_read_instr_cmpl_double,
- [DOP_CMPG_DOUBLE] = dalvik_read_instr_cmpg_double,
- [DOP_CMP_LONG] = dalvik_read_instr_cmp_long,
- [DOP_IF_EQ] = dalvik_read_instr_if_eq,
- [DOP_IF_NE] = dalvik_read_instr_if_ne,
- [DOP_IF_LT] = dalvik_read_instr_if_lt,
- [DOP_IF_GE] = dalvik_read_instr_if_ge,
- [DOP_IF_GT] = dalvik_read_instr_if_gt,
- [DOP_IF_LE] = dalvik_read_instr_if_le,
- [DOP_IF_EQZ] = dalvik_read_instr_if_eqz,
- [DOP_IF_NEZ] = dalvik_read_instr_if_nez,
- [DOP_IF_LTZ] = dalvik_read_instr_if_ltz,
- [DOP_IF_GEZ] = dalvik_read_instr_if_gez,
- [DOP_IF_GTZ] = dalvik_read_instr_if_gtz,
- [DOP_IF_LEZ] = dalvik_read_instr_if_lez,
- [DOP_AGET] = dalvik_read_instr_aget,
- [DOP_AGET_WIDE] = dalvik_read_instr_aget_wide,
- [DOP_AGET_OBJECT] = dalvik_read_instr_aget_object,
- [DOP_AGET_BOOLEAN] = dalvik_read_instr_aget_boolean,
- [DOP_AGET_BYTE] = dalvik_read_instr_aget_byte,
- [DOP_AGET_CHAR] = dalvik_read_instr_aget_char,
- [DOP_AGET_SHORT] = dalvik_read_instr_aget_short,
- [DOP_APUT] = dalvik_read_instr_aput,
- [DOP_APUT_WIDE] = dalvik_read_instr_aput_wide,
- [DOP_APUT_OBJECT] = dalvik_read_instr_aput_object,
- [DOP_APUT_BOOLEAN] = dalvik_read_instr_aput_boolean,
- [DOP_APUT_BYTE] = dalvik_read_instr_aput_byte,
- [DOP_APUT_CHAR] = dalvik_read_instr_aput_char,
- [DOP_APUT_SHORT] = dalvik_read_instr_aput_short,
- [DOP_IGET] = dalvik_read_instr_iget,
- [DOP_IGET_WIDE] = dalvik_read_instr_iget_wide,
- [DOP_IGET_OBJECT] = dalvik_read_instr_iget_object,
- [DOP_IGET_BOOLEAN] = dalvik_read_instr_iget_boolean,
- [DOP_IGET_BYTE] = dalvik_read_instr_iget_byte,
- [DOP_IGET_CHAR] = dalvik_read_instr_iget_char,
- [DOP_IGET_SHORT] = dalvik_read_instr_iget_short,
- [DOP_IPUT] = dalvik_read_instr_iput,
- [DOP_IPUT_WIDE] = dalvik_read_instr_iput_wide,
- [DOP_IPUT_OBJECT] = dalvik_read_instr_iput_object,
- [DOP_IPUT_BOOLEAN] = dalvik_read_instr_iput_boolean,
- [DOP_IPUT_BYTE] = dalvik_read_instr_iput_byte,
- [DOP_IPUT_CHAR] = dalvik_read_instr_iput_char,
- [DOP_IPUT_SHORT] = dalvik_read_instr_iput_short,
- [DOP_SGET] = dalvik_read_instr_sget,
- [DOP_SGET_WIDE] = dalvik_read_instr_sget_wide,
- [DOP_SGET_OBJECT] = dalvik_read_instr_sget_object,
- [DOP_SGET_BOOLEAN] = dalvik_read_instr_sget_boolean,
- [DOP_SGET_BYTE] = dalvik_read_instr_sget_byte,
- [DOP_SGET_CHAR] = dalvik_read_instr_sget_char,
- [DOP_SGET_SHORT] = dalvik_read_instr_sget_short,
- [DOP_SPUT] = dalvik_read_instr_sput,
- [DOP_SPUT_WIDE] = dalvik_read_instr_sput_wide,
- [DOP_SPUT_OBJECT] = dalvik_read_instr_sput_object,
- [DOP_SPUT_BOOLEAN] = dalvik_read_instr_sput_boolean,
- [DOP_SPUT_BYTE] = dalvik_read_instr_sput_byte,
- [DOP_SPUT_CHAR] = dalvik_read_instr_sput_char,
- [DOP_SPUT_SHORT] = dalvik_read_instr_sput_short,
- [DOP_INVOKE_VIRTUAL] = dalvik_read_instr_invoke_virtual,
- [DOP_INVOKE_SUPER] = dalvik_read_instr_invoke_super,
- [DOP_INVOKE_DIRECT] = dalvik_read_instr_invoke_direct,
- [DOP_INVOKE_STATIC] = dalvik_read_instr_invoke_static,
- [DOP_INVOKE_INTERFACE] = dalvik_read_instr_invoke_interface,
- [DOP_INVOKE_VIRTUAL_RANGE] = dalvik_read_instr_invoke_virtual_range,
- [DOP_INVOKE_SUPER_RANGE] = dalvik_read_instr_invoke_super_range,
- [DOP_INVOKE_DIRECT_RANGE] = dalvik_read_instr_invoke_direct_range,
- [DOP_INVOKE_STATIC_RANGE] = dalvik_read_instr_invoke_static_range,
- [DOP_INVOKE_INTERFACE_RANGE]= dalvik_read_instr_invoke_interface_range,
- [DOP_NEG_INT] = dalvik_read_instr_neg_int,
- [DOP_NOT_INT] = dalvik_read_instr_not_int,
- [DOP_NEG_LONG] = dalvik_read_instr_neg_long,
- [DOP_NOT_LONG] = dalvik_read_instr_not_long,
- [DOP_NEG_FLOAT] = dalvik_read_instr_neg_float,
- [DOP_NEG_DOUBLE] = dalvik_read_instr_neg_double,
- [DOP_TO_INT_LONG] = dalvik_read_instr_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,
- [DOP_DIV_INT] = dalvik_read_instr_div_int,
- [DOP_REM_INT] = dalvik_read_instr_rem_int,
- [DOP_AND_INT] = dalvik_read_instr_and_int,
- [DOP_OR_INT] = dalvik_read_instr_or_int,
- [DOP_XOR_INT] = dalvik_read_instr_xor_int,
- [DOP_SHL_INT] = dalvik_read_instr_shl_int,
- [DOP_SHR_INT] = dalvik_read_instr_shr_int,
- [DOP_USHR_INT] = dalvik_read_instr_ushr_int,
- [DOP_ADD_LONG] = dalvik_read_instr_add_long,
- [DOP_SUB_LONG] = dalvik_read_instr_sub_long,
- [DOP_MUL_LONG] = dalvik_read_instr_mul_long,
- [DOP_DIV_LONG] = dalvik_read_instr_div_long,
- [DOP_REM_LONG] = dalvik_read_instr_rem_long,
- [DOP_AND_LONG] = dalvik_read_instr_and_long,
- [DOP_OR_LONG] = dalvik_read_instr_or_long,
- [DOP_XOR_LONG] = dalvik_read_instr_xor_long,
- [DOP_SHL_LONG] = dalvik_read_instr_shl_long,
- [DOP_SHR_LONG] = dalvik_read_instr_shr_long,
- [DOP_USHR_LONG] = dalvik_read_instr_ushr_long,
- [DOP_ADD_FLOAT] = dalvik_read_instr_add_float,
- [DOP_SUB_FLOAT] = dalvik_read_instr_sub_float,
- [DOP_MUL_FLOAT] = dalvik_read_instr_mul_float,
- [DOP_DIV_FLOAT] = dalvik_read_instr_div_float,
- [DOP_REM_FLOAT] = dalvik_read_instr_rem_float,
- [DOP_ADD_DOUBLE] = dalvik_read_instr_add_double,
- [DOP_SUB_DOUBLE] = dalvik_read_instr_sub_double,
- [DOP_MUL_DOUBLE] = dalvik_read_instr_mul_double,
- [DOP_DIV_DOUBLE] = dalvik_read_instr_div_double,
- [DOP_REM_DOUBLE] = dalvik_read_instr_rem_double,
- [DOP_ADD_INT_2ADDR] = dalvik_read_instr_add_int_2addr,
- [DOP_SUB_INT_2ADDR] = dalvik_read_instr_sub_int_2addr,
- [DOP_MUL_INT_2ADDR] = dalvik_read_instr_mul_int_2addr,
- [DOP_DIV_INT_2ADDR] = dalvik_read_instr_div_int_2addr,
- [DOP_REM_INT_2ADDR] = dalvik_read_instr_rem_int_2addr,
- [DOP_AND_INT_2ADDR] = dalvik_read_instr_and_int_2addr,
- [DOP_OR_INT_2ADDR] = dalvik_read_instr_or_int_2addr,
- [DOP_XOR_INT_2ADDR] = dalvik_read_instr_xor_int_2addr,
- [DOP_SHL_INT_2ADDR] = dalvik_read_instr_shl_int_2addr,
- [DOP_SHR_INT_2ADDR] = dalvik_read_instr_shr_int_2addr,
- [DOP_USHR_INT_2ADDR] = dalvik_read_instr_ushr_int_2addr,
- [DOP_ADD_LONG_2ADDR] = dalvik_read_instr_add_long_2addr,
- [DOP_SUB_LONG_2ADDR] = dalvik_read_instr_sub_long_2addr,
- [DOP_MUL_LONG_2ADDR] = dalvik_read_instr_mul_long_2addr,
- [DOP_DIV_LONG_2ADDR] = dalvik_read_instr_div_long_2addr,
- [DOP_REM_LONG_2ADDR] = dalvik_read_instr_rem_long_2addr,
- [DOP_AND_LONG_2ADDR] = dalvik_read_instr_and_long_2addr,
- [DOP_OR_LONG_2ADDR] = dalvik_read_instr_or_long_2addr,
- [DOP_XOR_LONG_2ADDR] = dalvik_read_instr_xor_long_2addr,
- [DOP_SHL_LONG_2ADDR] = dalvik_read_instr_shl_long_2addr,
- [DOP_SHR_LONG_2ADDR] = dalvik_read_instr_shr_long_2addr,
- [DOP_USHR_LONG_2ADDR] = dalvik_read_instr_ushr_long_2addr,
- [DOP_ADD_FLOAT_2ADDR] = dalvik_read_instr_add_float_2addr,
- [DOP_SUB_FLOAT_2ADDR] = dalvik_read_instr_sub_float_2addr,
- [DOP_MUL_FLOAT_2ADDR] = dalvik_read_instr_mul_float_2addr,
- [DOP_DIV_FLOAT_2ADDR] = dalvik_read_instr_div_float_2addr,
- [DOP_REM_FLOAT_2ADDR] = dalvik_read_instr_rem_float_2addr,
- [DOP_ADD_DOUBLE_2ADDR] = dalvik_read_instr_add_double_2addr,
- [DOP_SUB_DOUBLE_2ADDR] = dalvik_read_instr_sub_double_2addr,
- [DOP_MUL_DOUBLE_2ADDR] = dalvik_read_instr_mul_double_2addr,
- [DOP_DIV_DOUBLE_2ADDR] = dalvik_read_instr_div_double_2addr,
- [DOP_REM_DOUBLE_2ADDR] = dalvik_read_instr_rem_double_2addr,
- [DOP_ADD_INT_LIT16] = dalvik_read_instr_add_int_lit16,
- [DOP_RSUB_INT] = dalvik_read_instr_rsub_int,
- [DOP_MUL_INT_LIT16] = dalvik_read_instr_mul_int_lit16,
- [DOP_DIV_INT_LIT16] = dalvik_read_instr_div_int_lit16,
- [DOP_REM_INT_LIT16] = dalvik_read_instr_rem_int_lit16,
- [DOP_AND_INT_LIT16] = dalvik_read_instr_and_int_lit16,
- [DOP_OR_INT_LIT16] = dalvik_read_instr_or_int_lit16,
- [DOP_XOR_INT_LIT16] = dalvik_read_instr_xor_int_lit16,
- [DOP_ADD_INT_LIT8] = dalvik_read_instr_add_int_lit8,
- [DOP_RSUB_INT_LIT8] = dalvik_read_instr_rsub_int_lit8,
- [DOP_MUL_INT_LIT8] = dalvik_read_instr_mul_int_lit8,
- [DOP_DIV_INT_LIT8] = dalvik_read_instr_div_int_lit8,
- [DOP_REM_INT_LIT8] = dalvik_read_instr_rem_int_lit8,
- [DOP_AND_INT_LIT8] = dalvik_read_instr_and_int_lit8,
- [DOP_OR_INT_LIT8] = dalvik_read_instr_or_int_lit8,
- [DOP_XOR_INT_LIT8] = dalvik_read_instr_xor_int_lit8,
- [DOP_SHL_INT_LIT8] = dalvik_read_instr_shl_int_lit8,
- [DOP_SHR_INT_LIT8] = dalvik_read_instr_shr_int_lit8,
- [DOP_USHR_INT_LIT8] = dalvik_read_instr_ushr_int_lit8
-
- };
-
- /* Données brutes associées à une instruction ? */
-
- result = g_dalvik_context_get_raw_data(ctx, content, pos);
-
- if (result != NULL) goto gdpd_done;
-
- /* Pseudo-instruction... */
-
- if (!g_binary_content_read_u8(content, pos, &raw8))
- return NULL;
-
- result = g_dalvik_processor_disassemble_pseudo(proc, ctx, content, pos, raw8);
-
- if (result != NULL) goto gdpd_done;
-
- /* ... ou instruction classique */
-
- assert(raw8 < DOP_COUNT);
-
- id = (DalvikOpcodes)raw8;
-
- if (decodings[id] != NULL)
- result = decodings[id](proc, G_PROC_CONTEXT(ctx), content, pos, format);
-
- gdpd_done:
-
- 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] *
@@ -536,7 +211,7 @@ static GArchInstruction *g_dalvik_processor_disassemble(const GArchProcessor *pr
* *
******************************************************************************/
-static GArchInstruction *g_dalvik_processor_disassemble_pseudo(const GArchProcessor *proc, GDalvikContext *ctx, const GBinContent *content, vmpa2t *pos, uint8_t low8)
+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 */
diff --git a/plugins/dalvik/processor.h b/plugins/dalvik/processor.h
index c6c1278..ffddb2a 100644
--- a/plugins/dalvik/processor.h
+++ b/plugins/dalvik/processor.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_PROCESSOR_H
-#define _ARCH_DALVIK_PROCESSOR_H
+#ifndef _PLUGINS_DALVIK_PROCESSOR_H
+#define _PLUGINS_DALVIK_PROCESSOR_H
#include <arch/processor.h>
@@ -45,9 +45,6 @@ typedef struct _GDalvikProcessorClass GDalvikProcessorClass;
/* Indique le type défini par la GLib pour le processeur Dalvik. */
GType g_dalvik_processor_get_type(void);
-/* Crée le support de l'architecture Dalvik. */
-GArchProcessor *g_dalvik_processor_new(void);
-
-#endif /* _ARCH_DALVIK_PROCESSOR_H */
+#endif /* _PLUGINS_DALVIK_PROCESSOR_H */
diff --git a/plugins/dalvik/pseudo/fill.c b/plugins/dalvik/pseudo/fill.c
index dc5683c..5c86a80 100644
--- a/plugins/dalvik/pseudo/fill.c
+++ b/plugins/dalvik/pseudo/fill.c
@@ -28,6 +28,7 @@
#include <string.h>
+#include "identifiers.h"
#include "../instruction-int.h"
@@ -63,6 +64,9 @@ static void g_dalvik_fill_instr_dispose(GDalvikFillInstr *);
/* Procède à la libération totale de la mémoire. */
static void g_dalvik_fill_instr_finalize(GDalvikFillInstr *);
+/* Fournit le nom humain de l'instruction manipulée. */
+static const char *g_dalvik_fill_instruction_get_keyword(const GDalvikFillInstr *, AsmSyntax);
+
/* Indique le type défini pour une pseudo-instruction Dalvik de remplissage. */
@@ -84,12 +88,17 @@ G_DEFINE_TYPE(GDalvikFillInstr, g_dalvik_fill_instr, G_TYPE_DALVIK_INSTRUCTION);
static void g_dalvik_fill_instr_class_init(GDalvikFillInstrClass *klass)
{
GObjectClass *object; /* Autre version de la classe */
+ GArchInstructionClass *instr; /* Encore une autre vision... */
object = G_OBJECT_CLASS(klass);
object->dispose = (GObjectFinalizeFunc/* ! */)g_dalvik_fill_instr_dispose;
object->finalize = (GObjectFinalizeFunc)g_dalvik_fill_instr_finalize;
+ instr = G_ARCH_INSTRUCTION_CLASS(klass);
+
+ instr->get_keyword = (get_instruction_keyword_fc)g_dalvik_fill_instruction_get_keyword;
+
}
@@ -107,7 +116,6 @@ static void g_dalvik_fill_instr_class_init(GDalvikFillInstrClass *klass)
static void g_dalvik_fill_instr_init(GDalvikFillInstr *instr)
{
- G_DALVIK_INSTRUCTION(instr)->keyword = "array-data";
}
@@ -174,7 +182,7 @@ GArchInstruction *g_dalvik_fill_instr_new(uint16_t ident, GDalvikContext *ctx, c
result = g_object_new(G_TYPE_DALVIK_FILL_INSTR, NULL);
- G_DALVIK_INSTRUCTION(result)->ptype = ident;
+ G_ARCH_INSTRUCTION(result)->uid = DPO_FILL_ARRAY_DATA;
if (!g_binary_content_read_u16(content, pos, SRE_LITTLE, &result->item_width))
goto gdfin_bad;
@@ -196,3 +204,27 @@ GArchInstruction *g_dalvik_fill_instr_new(uint16_t ident, GDalvikContext *ctx, c
return NULL;
}
+
+
+/******************************************************************************
+* *
+* Paramètres : instr = instruction d'assemblage à consulter. *
+* syntax = type de représentation demandée. *
+* *
+* Description : Fournit le nom humain de l'instruction manipulée. *
+* *
+* Retour : Mot clef de bas niveau. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static const char *g_dalvik_fill_instruction_get_keyword(const GDalvikFillInstr *instr, AsmSyntax syntax)
+{
+ const char *result; /* Désignation à retourner */
+
+ result = "array-data";
+
+ return result;
+
+}
diff --git a/plugins/dalvik/pseudo/fill.h b/plugins/dalvik/pseudo/fill.h
index 2a63df9..a022ed2 100644
--- a/plugins/dalvik/pseudo/fill.h
+++ b/plugins/dalvik/pseudo/fill.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_PSEUDO_FILL_H
-#define _ARCH_DALVIK_PSEUDO_FILL_H
+#ifndef _PLUGINS_DALVIK_PSEUDO_FILL_H
+#define _PLUGINS_DALVIK_PSEUDO_FILL_H
#include "../context.h"
@@ -57,4 +57,4 @@ GArchInstruction *g_dalvik_fill_instr_new(uint16_t, GDalvikContext *, const GBin
-#endif /* _ARCH_DALVIK_PSEUDO_FILL_H */
+#endif /* _PLUGINS_DALVIK_PSEUDO_FILL_H */
diff --git a/plugins/dalvik/pseudo/identifiers.h b/plugins/dalvik/pseudo/identifiers.h
new file mode 100644
index 0000000..e1ab8fc
--- /dev/null
+++ b/plugins/dalvik/pseudo/identifiers.h
@@ -0,0 +1,39 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * identifiers.h - définition d'identifiants uniques pour Dalvik
+ *
+ * Copyright (C) 2018 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 Chrysalide. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef _PLUGINS_DALVIK_PSEUDO_IDENTIFIERS_H
+#define _PLUGINS_DALVIK_PSEUDO_IDENTIFIERS_H
+
+
+/* Enumération de tous les pseudo-opcodes */
+typedef enum _DalvikPseudoOpcodes
+{
+ DPO_PACKED_SWITCH = 0x0100, /* Switch aux clefs compactes */
+ DPO_SPARSE_SWITCH = 0x0200, /* Switch aux clefs éclatées */
+ DPO_FILL_ARRAY_DATA = 0x0300 /* Contenu de tableau */
+
+} DalvikPseudoOpcodes;
+
+
+
+#endif /* _PLUGINS_DALVIK_PSEUDO_IDENTIFIERS_H */
diff --git a/plugins/dalvik/pseudo/switch.c b/plugins/dalvik/pseudo/switch.c
index 90cff87..d6d255c 100644
--- a/plugins/dalvik/pseudo/switch.c
+++ b/plugins/dalvik/pseudo/switch.c
@@ -28,6 +28,7 @@
#include <malloc.h>
+#include "identifiers.h"
#include "../instruction-int.h"
@@ -68,6 +69,9 @@ static void g_dalvik_switch_instr_finalize(GDalvikSwitchInstr *);
/* Lit toutes les valeurs associés aux branchements. */
static bool g_dalvik_switch_decode_data(GDalvikSwitchInstr *, const GBinContent *, const vmpa2t *);
+/* Fournit le nom humain de l'instruction manipulée. */
+static const char *g_dalvik_switch_instruction_get_keyword(const GDalvikSwitchInstr *, AsmSyntax);
+
/* Indique le type défini pour une pseudo-instruction Dalvik de remplissage. */
@@ -89,12 +93,17 @@ G_DEFINE_TYPE(GDalvikSwitchInstr, g_dalvik_switch_instr, G_TYPE_DALVIK_INSTRUCTI
static void g_dalvik_switch_instr_class_init(GDalvikSwitchInstrClass *klass)
{
GObjectClass *object; /* Autre version de la classe */
+ GArchInstructionClass *instr; /* Encore une autre vision... */
object = G_OBJECT_CLASS(klass);
object->dispose = (GObjectFinalizeFunc/* ! */)g_dalvik_switch_instr_dispose;
object->finalize = (GObjectFinalizeFunc)g_dalvik_switch_instr_finalize;
+ instr = G_ARCH_INSTRUCTION_CLASS(klass);
+
+ instr->get_keyword = (get_instruction_keyword_fc)g_dalvik_switch_instruction_get_keyword;
+
}
@@ -112,7 +121,6 @@ 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-data";
}
@@ -185,7 +193,7 @@ GArchInstruction *g_dalvik_switch_instr_new(uint16_t ident, GDalvikContext *ctx,
result = g_object_new(G_TYPE_DALVIK_SWITCH_INSTR, NULL);
- G_DALVIK_INSTRUCTION(result)->ptype = ident;
+ G_ARCH_INSTRUCTION(result)->uid = ident;
if (!g_binary_content_read_u16(content, pos, SRE_LITTLE, &result->switch_size))
goto gdsin_bad;
@@ -237,7 +245,7 @@ static bool g_dalvik_switch_decode_data(GDalvikSwitchInstr *instr, const GBinCon
copy_vmpa(&iter, pos);
- if (G_DALVIK_INSTRUCTION(instr)->ptype == DPO_PACKED_SWITCH)
+ if (G_ARCH_INSTRUCTION(instr)->uid == DPO_PACKED_SWITCH)
{
if (!g_binary_content_read_s32(content, &iter, SRE_LITTLE, &first_key))
goto gdsdd_bad;
@@ -276,6 +284,30 @@ static bool g_dalvik_switch_decode_data(GDalvikSwitchInstr *instr, const GBinCon
/******************************************************************************
* *
+* Paramètres : instr = instruction d'assemblage à consulter. *
+* syntax = type de représentation demandée. *
+* *
+* Description : Fournit le nom humain de l'instruction manipulée. *
+* *
+* Retour : Mot clef de bas niveau. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static const char *g_dalvik_switch_instruction_get_keyword(const GDalvikSwitchInstr *instr, AsmSyntax syntax)
+{
+ const char *result; /* Désignation à retourner */
+
+ result = "switch-data";
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : instr = instruction d'assemblage à compléter. *
* keys = tableau renseignant les conditions de saut. [OUT] *
* targets = tableau renseignant les sauts relatifs. [OUT] *
diff --git a/plugins/dalvik/pseudo/switch.h b/plugins/dalvik/pseudo/switch.h
index d672f86..b17a9c9 100644
--- a/plugins/dalvik/pseudo/switch.h
+++ b/plugins/dalvik/pseudo/switch.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_PSEUDO_SWITCH_H
-#define _ARCH_DALVIK_PSEUDO_SWITCH_H
+#ifndef _PLUGINS_DALVIK_PSEUDO_SWITCH_H
+#define _PLUGINS_DALVIK_PSEUDO_SWITCH_H
#include "../context.h"
@@ -60,4 +60,4 @@ uint16_t g_dalvik_switch_get_data(GDalvikSwitchInstr *, const int32_t **, const
-#endif /* _ARCH_DALVIK_PSEUDO_SWITCH_H */
+#endif /* _PLUGINS_DALVIK_PSEUDO_SWITCH_H */
diff --git a/plugins/dalvik/register.h b/plugins/dalvik/register.h
index de5efe5..d678bfd 100644
--- a/plugins/dalvik/register.h
+++ b/plugins/dalvik/register.h
@@ -21,8 +21,8 @@
*/
-#ifndef _ARCH_DALVIK_REGISTERS_H
-#define _ARCH_DALVIK_REGISTERS_H
+#ifndef _PLUGINS_DALVIK_REGISTERS_H
+#define _PLUGINS_DALVIK_REGISTERS_H
#include <glib-object.h>
@@ -73,4 +73,4 @@ void clean_dalvik_register_cache(void);
-#endif /* _ARCH_DALVIK_REGISTERS_H */
+#endif /* _PLUGINS_DALVIK_REGISTERS_H */
diff --git a/plugins/dalvik/v35/Makefile.am b/plugins/dalvik/v35/Makefile.am
new file mode 100644
index 0000000..a29d4a5
--- /dev/null
+++ b/plugins/dalvik/v35/Makefile.am
@@ -0,0 +1,20 @@
+
+lib_LTLIBRARIES = libdalvik35.la
+
+libdalvik35_la_SOURCES = \
+ instruction.h instruction.c \
+ operand.h \
+ processor.h processor.c
+
+libdalvik35_la_LIBADD = \
+ opcodes/libdalvik35opcodes.la
+
+libdalvik35_la_CFLAGS = $(AM_CFLAGS)
+
+
+AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBPYTHON_CFLAGS) $(LIBPYGOBJECT_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
+
+AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
+
+
+SUBDIRS = opdefs opcodes
diff --git a/plugins/dalvik/v35/instruction.c b/plugins/dalvik/v35/instruction.c
new file mode 100644
index 0000000..99d51d0
--- /dev/null
+++ b/plugins/dalvik/v35/instruction.c
@@ -0,0 +1,267 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * instruction.c - gestion des instructions de la VM Dalvik v35
+ *
+ * Copyright (C) 2018 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/>.
+ */
+
+
+#include "instruction.h"
+
+
+#include <assert.h>
+
+
+#include "opcodes/descriptions.h"
+#include "opcodes/keywords.h"
+#include "../instruction-int.h"
+
+
+
+/* Définition générique d'une instruction d'architecture Dalvik v35 (instance) */
+struct _GDalvik35Instruction
+{
+ GDalvikInstruction parent; /* A laisser en premier */
+
+};
+
+/* Définition générique d'une instruction d'architecture Dalvik v35 (classe) */
+struct _GDalvik35InstructionClass
+{
+ GDalvikInstructionClass parent; /* A laisser en premier */
+
+};
+
+
+/* Initialise la classe des instructions pour Dalvik v35. */
+static void g_dalvik35_instruction_class_init(GDalvik35InstructionClass *);
+
+/* Initialise une instance d'opérande d'architecture Dalvik. */
+static void g_dalvik35_instruction_init(GDalvik35Instruction *);
+
+/* Supprime toutes les références externes. */
+static void g_dalvik35_instruction_dispose(GDalvik35Instruction *);
+
+/* Procède à la libération totale de la mémoire. */
+static void g_dalvik35_instruction_finalize(GDalvik35Instruction *);
+
+/* Indique l'encodage d'une instruction de façon détaillée. */
+static const char *g_dalvik35_instruction_get_encoding(const GDalvik35Instruction *);
+
+/* Fournit le nom humain de l'instruction manipulée. */
+static const char *g_dalvik35_instruction_get_keyword(const GDalvik35Instruction *, AsmSyntax);
+
+/* Fournit une description pour l'instruction manipulée. */
+static const char *g_dalvik35_instruction_get_description(const GDalvik35Instruction *);
+
+
+
+/* Indique le type défini pour une instruction d'architecture Dalvik v35. */
+G_DEFINE_TYPE(GDalvik35Instruction, g_dalvik35_instruction, G_TYPE_DALVIK_INSTRUCTION);
+
+
+/******************************************************************************
+* *
+* Paramètres : klass = classe à initialiser. *
+* *
+* Description : Initialise la classe des instructions pour Dalvik v35. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_dalvik35_instruction_class_init(GDalvik35InstructionClass *klass)
+{
+ GObjectClass *object; /* Autre version de la classe */
+ GArchInstructionClass *instr; /* Encore une autre vision... */
+
+ object = G_OBJECT_CLASS(klass);
+
+ object->dispose = (GObjectFinalizeFunc/* ! */)g_dalvik35_instruction_dispose;
+ object->finalize = (GObjectFinalizeFunc)g_dalvik35_instruction_finalize;
+
+ instr = G_ARCH_INSTRUCTION_CLASS(klass);
+
+ instr->get_encoding = (get_instruction_encoding_fc)g_dalvik35_instruction_get_encoding;
+ instr->get_keyword = (get_instruction_keyword_fc)g_dalvik35_instruction_get_keyword;
+ instr->get_desc = (get_instruction_desc_fc)g_dalvik35_instruction_get_description;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : instr = instance à initialiser. *
+* *
+* Description : Initialise une instance d'instruction d'architecture Dalvik. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_dalvik35_instruction_init(GDalvik35Instruction *instr)
+{
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : instr = instance d'objet GLib à traiter. *
+* *
+* Description : Supprime toutes les références externes. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_dalvik35_instruction_dispose(GDalvik35Instruction *instr)
+{
+ G_OBJECT_CLASS(g_dalvik35_instruction_parent_class)->dispose(G_OBJECT(instr));
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : instr = instance d'objet GLib à traiter. *
+* *
+* Description : Procède à la libération totale de la mémoire. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_dalvik35_instruction_finalize(GDalvik35Instruction *instr)
+{
+ G_OBJECT_CLASS(g_dalvik35_instruction_parent_class)->finalize(G_OBJECT(instr));
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : keyword = définition du nom humaine de l'instruction. *
+* *
+* Description : Crée une instruction pour l'architecture Dalvik v35. *
+* *
+* Retour : Adresse de la structure mise en place. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GArchInstruction *g_dalvik35_instruction_new(itid_t uid)
+{
+ GArchInstruction *result; /* Structure à retourner */
+
+ result = g_object_new(G_TYPE_DALVIK35_INSTRUCTION, NULL);
+
+ G_ARCH_INSTRUCTION(result)->uid = uid;
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : instr = instruction quelconque à consulter. *
+* *
+* Description : Indique l'encodage d'une instruction de façon détaillée. *
+* *
+* Retour : Description humaine de l'encodage utilisé. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static const char *g_dalvik35_instruction_get_encoding(const GDalvik35Instruction *instr)
+{
+ const char *result; /* Description à retourner */
+
+ result = "Dalvik v35";
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : instr = instruction d'assemblage à consulter. *
+* syntax = type de représentation demandée. *
+* *
+* Description : Fournit le nom humain de l'instruction manipulée. *
+* *
+* Retour : Mot clef de bas niveau. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static const char *g_dalvik35_instruction_get_keyword(const GDalvik35Instruction *instr, AsmSyntax syntax)
+{
+ const char *result; /* Désignation à retourner */
+ itid_t uid; /* Accès simplifié */
+
+ uid = G_ARCH_INSTRUCTION(instr)->uid;
+
+ assert(uid < DOP35_COUNT);
+
+ result = _dalvik35_keywords[uid];
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : instr = instruction d'assemblage à consulter. *
+* *
+* Description : Fournit une description pour l'instruction manipulée. *
+* *
+* Retour : Chaîne de caractères avec balises éventuelles. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static const char *g_dalvik35_instruction_get_description(const GDalvik35Instruction *instr)
+{
+ const char *result; /* Description à retourner */
+ itid_t uid; /* Accès simplifié */
+
+ uid = G_ARCH_INSTRUCTION(instr)->uid;
+
+ assert(uid < DOP35_COUNT);
+
+ result = _dalvik35_descriptions[uid];
+
+ return result;
+
+}
diff --git a/plugins/dalvik/v35/instruction.h b/plugins/dalvik/v35/instruction.h
new file mode 100644
index 0000000..152c224
--- /dev/null
+++ b/plugins/dalvik/v35/instruction.h
@@ -0,0 +1,55 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * instruction.h - prototypes pour la gestion des instructions de la VM Dalvik v35
+ *
+ * Copyright (C) 2018 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/>.
+ */
+
+
+#ifndef _PLUGINS_DALVIK_V35_INSTRUCTION_H
+#define _PLUGINS_DALVIK_V35_INSTRUCTION_H
+
+
+#include <arch/instruction.h>
+
+
+
+#define G_TYPE_DALVIK35_INSTRUCTION g_dalvik35_instruction_get_type()
+#define G_DALVIK35_INSTRUCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_DALVIK35_INSTRUCTION, GDalvik35Instruction))
+#define G_IS_DALVIK35_INSTRUCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_DALVIK35_INSTRUCTION))
+#define G_DALVIK35_INSTRUCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_DALVIK35_INSTRUCTION, GDalvik35InstructionClass))
+#define G_IS_DALVIK35_INSTRUCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_DALVIK35_INSTRUCTION))
+#define G_DALVIK35_INSTRUCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_DALVIK35_INSTRUCTION, GDalvik35InstructionClass))
+
+
+/* Définition générique d'une instruction d'architecture Dalvik v35 (instance) */
+typedef struct _GDalvik35Instruction GDalvik35Instruction;
+
+/* Définition générique d'une instruction d'architecture Dalvik v35 (classe) */
+typedef struct _GDalvik35InstructionClass GDalvik35InstructionClass;
+
+
+/* Indique le type défini pour une instruction d'architecture Dalvik v35. */
+GType g_dalvik35_instruction_get_type(void);
+
+/* Crée une instruction pour l'architecture Dalvik v35. */
+GArchInstruction *g_dalvik35_instruction_new(itid_t);
+
+
+
+#endif /* _PLUGINS_DALVIK_V35_INSTRUCTION_H */
diff --git a/plugins/dalvik/opcodes/Makefile.am b/plugins/dalvik/v35/opcodes/Makefile.am
index 9889cfa..4746f5c 100644
--- a/plugins/dalvik/opcodes/Makefile.am
+++ b/plugins/dalvik/v35/opcodes/Makefile.am
@@ -9,15 +9,18 @@ am__depfiles_maybe = depfiles
include gencode.mk
-noinst_LTLIBRARIES = libdalvikopcodes.la
+noinst_LTLIBRARIES = libdalvik35opcodes.la
-libdalvikopcodes_la_SOURCES = $(GENERATED_FILES)
+libdalvik35opcodes_la_SOURCES = $(GENERATED_FILES)
-libdalvikopcodes_la_LIBADD =
+libdalvik35opcodes_la_LIBADD =
-libdalvikopcodes_la_CFLAGS = $(AM_CFLAGS)
+libdalvik35opcodes_la_CFLAGS = $(AM_CFLAGS)
AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
+
+
+CLEANFILES = $(GENERATED_FILES)
diff --git a/plugins/dalvik/opdefs/Makefile.am b/plugins/dalvik/v35/opdefs/Makefile.am
index fed398f..f660e3d 100644
--- a/plugins/dalvik/opdefs/Makefile.am
+++ b/plugins/dalvik/v35/opdefs/Makefile.am
@@ -5,44 +5,44 @@ include $(top_srcdir)/tools/d2c/d2c.mk
D2C_BIN = $(top_srcdir)/tools/d2c/d2c
GEN_BIN = $(top_srcdir)/tools/d2c/d2c_genmakefile.sh
-D2C_TYPE = format
-D2C_OUTDIR = $(PWD)/..
+D2C_OUTDIR = $(PWD)/../opcodes/
+
+D2C_TYPE = format
-D2C_ARCH = dalvik
-D2C_HEADER = _ARCH_DALVIK
-D2C_PREFIX = DALVIK_OPT_
+D2C_ARCH = "Dalvik v35"
+D2C_ARCH_CN = Dalvik35
+D2C_GUARD = PLUGINS_DALVIK_V35_OPCODES
D2C_ENCODINGS = \
-e none
-D2C_MACROS = \
- -M SetInsFlag=g_arch_instruction_set_flag
+D2C_ID_PREFIX = DOP35
+D2C_ID_COUNT = 255
+
+D2C_SPECIFIC = --op-prefix=DALVIK_OPT_
-FIXED_C_INCLUDES = \
- \n\#include \<stdint.h\> \
- \n \
- \n\#include <analysis\/content.h> \
- \n\#include <arch/context.h> \
- \n\#include <format\/executable.h> \
- \n \
- \n\#include \"..\/fetch.h\" \
- \n\#include \"..\/helpers.h\" \
- \n\#include \"..\/instruction.h\" \
- \n\#include \"..\/link.h\" \
- \n\#include \"..\/post.h\" \
- \n\#include \"..\/processor.h\" \
- \n\n
-FIXED_H_INCLUDES = \
- \#include <stdint.h> \
- \n \
- \n\#include <arch/context.h> \
- \n\#include <analysis/content.h> \
- \n\#include <format/executable.h> \
- \n \
+FIXED_C_INCLUDES = \
+ \#include <stdint.h> \
+ \n \
+ \n\#include "../instruction.h" \
+ \n\#include "../operand.h" \
+ \n\#include "../../fetch.h" \
+ \n\#include "../../helpers.h" \
+ \n\#include "../../link.h" \
+ \n\#include "../../post.h"
+
+FIXED_H_INCLUDES = \
+ \#include <stdint.h> \
+ \n \
+ \n\#include <analysis/content.h> \
+ \n\#include <arch/context.h> \
+ \n\#include <format/executable.h> \
+ \n \
\n\#include "../processor.h"
+
# 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 \
@@ -107,6 +107,12 @@ DALVIK_DEFS = \
if_3b.d \
if_3c.d \
if_3d.d \
+ unused_3e.d \
+ unused_3f.d \
+ unused_40.d \
+ unused_41.d \
+ unused_42.d \
+ unused_43.d \
aget_44.d \
aget_45.d \
aget_46.d \
@@ -154,11 +160,14 @@ DALVIK_DEFS = \
invoke_70.d \
invoke_71.d \
invoke_72.d \
+ unused_73.d \
invoke_74.d \
invoke_75.d \
invoke_76.d \
invoke_77.d \
invoke_78.d \
+ unused_79.d \
+ unused_7a.d \
neg_7b.d \
not_7c.d \
neg_7d.d \
@@ -262,7 +271,37 @@ DALVIK_DEFS = \
xor_df.d \
shl_e0.d \
shr_e1.d \
- ushr_e2.d
+ ushr_e2.d \
+ unused_e3.d \
+ unused_e4.d \
+ unused_e5.d \
+ unused_e6.d \
+ unused_e7.d \
+ unused_e8.d \
+ unused_e9.d \
+ unused_ea.d \
+ unused_eb.d \
+ unused_ec.d \
+ unused_ed.d \
+ unused_ee.d \
+ unused_ef.d \
+ unused_f0.d \
+ unused_f1.d \
+ unused_f2.d \
+ unused_f3.d \
+ unused_f4.d \
+ unused_f5.d \
+ unused_f6.d \
+ unused_f7.d \
+ unused_f8.d \
+ unused_f9.d \
+ unused_fa.d \
+ unused_fb.d \
+ unused_fc.d \
+ unused_fd.d \
+ unused_fe.d \
+ unused_ff.d
+
# make dist procède répertoire par répertoire. Or le répertoire opcodes utilise
# le contenu du répertoire opdefs. Il faut donc générer les fichiers nécessaires
@@ -279,7 +318,7 @@ dist-hook:
all: $(DALVIK_DEFS:.d=.g) fmk.done d2c_final_rules
fmk.done: $(DALVIK_DEFS)
- $(GEN_BIN) ../opcodes/ ../opdefs/.gen $(top_srcdir)/tools/d2c/globalgen.mk -
+ $(GEN_BIN) $(D2C_OUTDIR) -
touch $@
clean:
diff --git a/plugins/dalvik/v35/opdefs/add_90.d b/plugins/dalvik/v35/opdefs/add_90.d
new file mode 100644
index 0000000..a4eae0d
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/add_90.d
@@ -0,0 +1,40 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 144
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/add_9b.d b/plugins/dalvik/v35/opdefs/add_9b.d
new file mode 100644
index 0000000..c26a453
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/add_9b.d
@@ -0,0 +1,40 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 155
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/add_a6.d b/plugins/dalvik/v35/opdefs/add_a6.d
new file mode 100644
index 0000000..16b95f1
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/add_a6.d
@@ -0,0 +1,40 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 166
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/add_ab.d b/plugins/dalvik/v35/opdefs/add_ab.d
new file mode 100644
index 0000000..20670ad
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/add_ab.d
@@ -0,0 +1,40 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 171
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
+@encoding() {
+
+ @format 23x
+
+}
diff --git a/plugins/dalvik/opdefs/add_b0.d b/plugins/dalvik/v35/opdefs/add_b0.d
index 9c5605e..11a415e 100644
--- a/plugins/dalvik/opdefs/add_b0.d
+++ b/plugins/dalvik/v35/opdefs/add_b0.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title add-int/2addr
+@id 176
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/add_bb.d b/plugins/dalvik/v35/opdefs/add_bb.d
index aba27f3..05f471d 100644
--- a/plugins/dalvik/opdefs/add_bb.d
+++ b/plugins/dalvik/v35/opdefs/add_bb.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title add-long/2addr
+@id 187
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/add_c6.d b/plugins/dalvik/v35/opdefs/add_c6.d
index 3394b92..46a5025 100644
--- a/plugins/dalvik/opdefs/add_c6.d
+++ b/plugins/dalvik/v35/opdefs/add_c6.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title add-float/2addr
+@id 198
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/add_cb.d b/plugins/dalvik/v35/opdefs/add_cb.d
index 896f614..4b12d63 100644
--- a/plugins/dalvik/opdefs/add_cb.d
+++ b/plugins/dalvik/v35/opdefs/add_cb.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title add-double/2addr
+@id 203
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/add_d0.d b/plugins/dalvik/v35/opdefs/add_d0.d
index f6f4324..383d25c 100644
--- a/plugins/dalvik/opdefs/add_d0.d
+++ b/plugins/dalvik/v35/opdefs/add_d0.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title add-int/lit16
+@id 208
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> <b>rsub-int</b> does not have a suffix since this version is the main opb of its family. Also, see below for details on its semantics.
+
+}
+
@encoding() {
@format 22s
diff --git a/plugins/dalvik/opdefs/add_d8.d b/plugins/dalvik/v35/opdefs/add_d8.d
index ec4ee01..e88a5c9 100644
--- a/plugins/dalvik/opdefs/add_d8.d
+++ b/plugins/dalvik/v35/opdefs/add_d8.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title add-int/lit8
+@id 216
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/aget_44.d b/plugins/dalvik/v35/opdefs/aget_44.d
index b3a26cb..6931af6 100644
--- a/plugins/dalvik/opdefs/aget_44.d
+++ b/plugins/dalvik/v35/opdefs/aget_44.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aget
+@id 68
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aget_45.d b/plugins/dalvik/v35/opdefs/aget_45.d
index 184667b..9268f6f 100644
--- a/plugins/dalvik/opdefs/aget_45.d
+++ b/plugins/dalvik/v35/opdefs/aget_45.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aget-wide
+@id 69
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aget_46.d b/plugins/dalvik/v35/opdefs/aget_46.d
index b951c09..0d2185e 100644
--- a/plugins/dalvik/opdefs/aget_46.d
+++ b/plugins/dalvik/v35/opdefs/aget_46.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aget-object
+@id 70
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aget_47.d b/plugins/dalvik/v35/opdefs/aget_47.d
index 0a5e90b..5b75c11 100644
--- a/plugins/dalvik/opdefs/aget_47.d
+++ b/plugins/dalvik/v35/opdefs/aget_47.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aget-boolean
+@id 71
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aget_48.d b/plugins/dalvik/v35/opdefs/aget_48.d
index c84f513..8765831 100644
--- a/plugins/dalvik/opdefs/aget_48.d
+++ b/plugins/dalvik/v35/opdefs/aget_48.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aget-byte
+@id 72
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aget_49.d b/plugins/dalvik/v35/opdefs/aget_49.d
index 396434b..24e0fa9 100644
--- a/plugins/dalvik/opdefs/aget_49.d
+++ b/plugins/dalvik/v35/opdefs/aget_49.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aget-char
+@id 73
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aget_4a.d b/plugins/dalvik/v35/opdefs/aget_4a.d
index ce9497f..841ec31 100644
--- a/plugins/dalvik/opdefs/aget_4a.d
+++ b/plugins/dalvik/v35/opdefs/aget_4a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aget-short
+@id 74
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/and_95.d b/plugins/dalvik/v35/opdefs/and_95.d
index 3926c05..a75999d 100644
--- a/plugins/dalvik/opdefs/and_95.d
+++ b/plugins/dalvik/v35/opdefs/and_95.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title and-int
+@id 149
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/and_a0.d b/plugins/dalvik/v35/opdefs/and_a0.d
index b011156..488233e 100644
--- a/plugins/dalvik/opdefs/and_a0.d
+++ b/plugins/dalvik/v35/opdefs/and_a0.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title and-long
+@id 160
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/and_b5.d b/plugins/dalvik/v35/opdefs/and_b5.d
index dec2ffb..34547da 100644
--- a/plugins/dalvik/opdefs/and_b5.d
+++ b/plugins/dalvik/v35/opdefs/and_b5.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title and-int/2addr
+@id 181
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/and_c0.d b/plugins/dalvik/v35/opdefs/and_c0.d
index 6fb52b6..17bf2c6 100644
--- a/plugins/dalvik/opdefs/and_c0.d
+++ b/plugins/dalvik/v35/opdefs/and_c0.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title and-long/2addr
+@id 192
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/and_d5.d b/plugins/dalvik/v35/opdefs/and_d5.d
index 081c0d0..84c88c8 100644
--- a/plugins/dalvik/opdefs/and_d5.d
+++ b/plugins/dalvik/v35/opdefs/and_d5.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title and-int/lit16
+@id 213
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> <b>rsub-int</b> does not have a suffix since this version is the main opb of its family. Also, see below for details on its semantics.
+
+}
+
@encoding() {
@format 22s
diff --git a/plugins/dalvik/opdefs/and_dd.d b/plugins/dalvik/v35/opdefs/and_dd.d
index 8adae05..0296b07 100644
--- a/plugins/dalvik/opdefs/and_dd.d
+++ b/plugins/dalvik/v35/opdefs/and_dd.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title and-int/lit8
+@id 221
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/aput_4b.d b/plugins/dalvik/v35/opdefs/aput_4b.d
index 90cc75f..dc6a820 100644
--- a/plugins/dalvik/opdefs/aput_4b.d
+++ b/plugins/dalvik/v35/opdefs/aput_4b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aput
+@id 75
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aput_4c.d b/plugins/dalvik/v35/opdefs/aput_4c.d
index ff545f4..83c38ac 100644
--- a/plugins/dalvik/opdefs/aput_4c.d
+++ b/plugins/dalvik/v35/opdefs/aput_4c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aput-wide
+@id 76
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aput_4d.d b/plugins/dalvik/v35/opdefs/aput_4d.d
index 4c9ae98..8c1a9d1 100644
--- a/plugins/dalvik/opdefs/aput_4d.d
+++ b/plugins/dalvik/v35/opdefs/aput_4d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aput-object
+@id 77
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aput_4e.d b/plugins/dalvik/v35/opdefs/aput_4e.d
index 1602e62..5c7c923 100644
--- a/plugins/dalvik/opdefs/aput_4e.d
+++ b/plugins/dalvik/v35/opdefs/aput_4e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aput-boolean
+@id 78
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aput_4f.d b/plugins/dalvik/v35/opdefs/aput_4f.d
index 3632974..29a4c70 100644
--- a/plugins/dalvik/opdefs/aput_4f.d
+++ b/plugins/dalvik/v35/opdefs/aput_4f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aput-byte
+@id 79
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aput_50.d b/plugins/dalvik/v35/opdefs/aput_50.d
index c295386..2c093ec 100644
--- a/plugins/dalvik/opdefs/aput_50.d
+++ b/plugins/dalvik/v35/opdefs/aput_50.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aput-char
+@id 80
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/aput_51.d b/plugins/dalvik/v35/opdefs/aput_51.d
index 11ad5b2..aeb9dd6 100644
--- a/plugins/dalvik/opdefs/aput_51.d
+++ b/plugins/dalvik/v35/opdefs/aput_51.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title aput-short
+@id 81
+
+@desc {
+
+ Perform the identified array operation at the identified index of the given array, loading or storing into the value register.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/array_21.d b/plugins/dalvik/v35/opdefs/array_21.d
index e0ca860..56f5c4f 100644
--- a/plugins/dalvik/opdefs/array_21.d
+++ b/plugins/dalvik/v35/opdefs/array_21.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title array-length
+@id 33
+
+@desc {
+
+ Store in the given destination register the length of the indicated array, in entries
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/array_24.d b/plugins/dalvik/v35/opdefs/array_24.d
index 00b7896..5c5be4f 100644
--- a/plugins/dalvik/opdefs/array_24.d
+++ b/plugins/dalvik/v35/opdefs/array_24.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title filled-new-array
+@id 36
+
+@desc {
+
+ Construct an array of the given type and size, filling it with the supplied contents. The type must be an array type. The array's contents must be single-word (that is, no arrays of <b>long</b> or <b>double</b>, but reference types are acceptable). The constructed instance is stored as a "result" in the same way that the method invocation instructions store their results, so the constructed instance must be moved to a register with an immediately subsequent <b>move-result-object</b> instruction (if it is to be used).
+
+}
+
@encoding() {
@format 35c | pool_type
diff --git a/plugins/dalvik/opdefs/array_26.d b/plugins/dalvik/v35/opdefs/array_26.d
index f57afd1..adceb24 100644
--- a/plugins/dalvik/opdefs/array_26.d
+++ b/plugins/dalvik/v35/opdefs/array_26.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title fill-array-data
+@id 38
+
+@desc {
+
+ Fill the given array with the indicated data. The reference must be to an array of primitives, and the data table must match it in type and must contain no more elements than will fit in the array. That is, the array may be larger than the table, and if so, only the initial elements of the array are set, leaving the remainder alone.
+
+}
+
@encoding() {
@format 31t
diff --git a/plugins/dalvik/opdefs/check_1f.d b/plugins/dalvik/v35/opdefs/check_1f.d
index 0f59ba7..4be9fef 100644
--- a/plugins/dalvik/opdefs/check_1f.d
+++ b/plugins/dalvik/v35/opdefs/check_1f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title check-cast
+@id 31
+
+@desc {
+
+ Throw a <b>ClassCastException</b> if the reference in the given register cannot be cast to the indicated type.
+
+<b>Note:</b> Since <b>A</b> must always be a reference (and not a primitive value), this will necessarily fail at runtime (that is, it will throw an exception) if <b>B</b> refers to a primitive type.
+
+}
+
@encoding() {
@format 21c | pool_type
diff --git a/plugins/dalvik/opdefs/cmp_31.d b/plugins/dalvik/v35/opdefs/cmp_31.d
index baedee6..aeea00a 100644
--- a/plugins/dalvik/opdefs/cmp_31.d
+++ b/plugins/dalvik/v35/opdefs/cmp_31.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title cmp-long
+@id 49
+
+@desc {
+
+ Perform the indicated floating point or <b>long</b> comparison, setting <b>a</b> to <b>0</b> if <b>b == c</b>, <b>1</b> if <b>b &gt; c</b>, or <b>-1</b> if <b>b &lt; c</b>. The "bias" listed for the floating point operations indicates how <b>NaN</b> comparisons are treated: "gt bias" instructions return <b>1</b> for <b>NaN</b> comparisons, and "lt bias" instructions return <b>-1</b>.
+
+For example, to check to see if floating point <b>x &lt; y</b> it is advisable to use <b>cmpg-float</b>; a result of <b>-1</b> indicates that the test was true, and the other values indicate it was false either due to a valid comparison or because one of the values was <b>NaN</b>.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/cmpg_2e.d b/plugins/dalvik/v35/opdefs/cmpg_2e.d
index 296337c..c06be47 100644
--- a/plugins/dalvik/opdefs/cmpg_2e.d
+++ b/plugins/dalvik/v35/opdefs/cmpg_2e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title cmpg-float
+@id 46
+
+@desc {
+
+ Perform the indicated floating point or <b>long</b> comparison, setting <b>a</b> to <b>0</b> if <b>b == c</b>, <b>1</b> if <b>b &gt; c</b>, or <b>-1</b> if <b>b &lt; c</b>. The "bias" listed for the floating point operations indicates how <b>NaN</b> comparisons are treated: "gt bias" instructions return <b>1</b> for <b>NaN</b> comparisons, and "lt bias" instructions return <b>-1</b>.
+
+For example, to check to see if floating point <b>x &lt; y</b> it is advisable to use <b>cmpg-float</b>; a result of <b>-1</b> indicates that the test was true, and the other values indicate it was false either due to a valid comparison or because one of the values was <b>NaN</b>.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/cmpg_30.d b/plugins/dalvik/v35/opdefs/cmpg_30.d
index dbb66ae..40917d4 100644
--- a/plugins/dalvik/opdefs/cmpg_30.d
+++ b/plugins/dalvik/v35/opdefs/cmpg_30.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title cmpg-double
+@id 48
+
+@desc {
+
+ Perform the indicated floating point or <b>long</b> comparison, setting <b>a</b> to <b>0</b> if <b>b == c</b>, <b>1</b> if <b>b &gt; c</b>, or <b>-1</b> if <b>b &lt; c</b>. The "bias" listed for the floating point operations indicates how <b>NaN</b> comparisons are treated: "gt bias" instructions return <b>1</b> for <b>NaN</b> comparisons, and "lt bias" instructions return <b>-1</b>.
+
+For example, to check to see if floating point <b>x &lt; y</b> it is advisable to use <b>cmpg-float</b>; a result of <b>-1</b> indicates that the test was true, and the other values indicate it was false either due to a valid comparison or because one of the values was <b>NaN</b>.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/cmpl_2d.d b/plugins/dalvik/v35/opdefs/cmpl_2d.d
index b76b73e..9b9e883 100644
--- a/plugins/dalvik/opdefs/cmpl_2d.d
+++ b/plugins/dalvik/v35/opdefs/cmpl_2d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title cmpl-float
+@id 45
+
+@desc {
+
+ Perform the indicated floating point or <b>long</b> comparison, setting <b>a</b> to <b>0</b> if <b>b == c</b>, <b>1</b> if <b>b &gt; c</b>, or <b>-1</b> if <b>b &lt; c</b>. The "bias" listed for the floating point operations indicates how <b>NaN</b> comparisons are treated: "gt bias" instructions return <b>1</b> for <b>NaN</b> comparisons, and "lt bias" instructions return <b>-1</b>.
+
+For example, to check to see if floating point <b>x &lt; y</b> it is advisable to use <b>cmpg-float</b>; a result of <b>-1</b> indicates that the test was true, and the other values indicate it was false either due to a valid comparison or because one of the values was <b>NaN</b>.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/cmpl_2f.d b/plugins/dalvik/v35/opdefs/cmpl_2f.d
index cebd732..4429977 100644
--- a/plugins/dalvik/opdefs/cmpl_2f.d
+++ b/plugins/dalvik/v35/opdefs/cmpl_2f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title cmpl-double
+@id 47
+
+@desc {
+
+ Perform the indicated floating point or <b>long</b> comparison, setting <b>a</b> to <b>0</b> if <b>b == c</b>, <b>1</b> if <b>b &gt; c</b>, or <b>-1</b> if <b>b &lt; c</b>. The "bias" listed for the floating point operations indicates how <b>NaN</b> comparisons are treated: "gt bias" instructions return <b>1</b> for <b>NaN</b> comparisons, and "lt bias" instructions return <b>-1</b>.
+
+For example, to check to see if floating point <b>x &lt; y</b> it is advisable to use <b>cmpg-float</b>; a result of <b>-1</b> indicates that the test was true, and the other values indicate it was false either due to a valid comparison or because one of the values was <b>NaN</b>.
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/const_12.d b/plugins/dalvik/v35/opdefs/const_12.d
index bc4e4f8..963738a 100644
--- a/plugins/dalvik/opdefs/const_12.d
+++ b/plugins/dalvik/v35/opdefs/const_12.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const/4
+@id 18
+
+@desc {
+
+ Move the given literal value (sign-extended to 32 bits) into the specified register.
+
+}
+
@encoding() {
@format 11n
diff --git a/plugins/dalvik/opdefs/const_13.d b/plugins/dalvik/v35/opdefs/const_13.d
index 9b65ba4..32c09df 100644
--- a/plugins/dalvik/opdefs/const_13.d
+++ b/plugins/dalvik/v35/opdefs/const_13.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const/16
+@id 19
+
+@desc {
+
+ Move the given literal value (sign-extended to 32 bits) into the specified register.
+
+}
+
@encoding() {
@format 21s
diff --git a/plugins/dalvik/opdefs/const_14.d b/plugins/dalvik/v35/opdefs/const_14.d
index 039d372..402a889 100644
--- a/plugins/dalvik/opdefs/const_14.d
+++ b/plugins/dalvik/v35/opdefs/const_14.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const
+@id 20
+
+@desc {
+
+ Move the given literal value into the specified register.
+
+}
+
@encoding() {
@format 31i
diff --git a/plugins/dalvik/opdefs/const_15.d b/plugins/dalvik/v35/opdefs/const_15.d
index add0673..a9d6f98 100644
--- a/plugins/dalvik/opdefs/const_15.d
+++ b/plugins/dalvik/v35/opdefs/const_15.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const/high16
+@id 21
+
+@desc {
+
+ Move the given literal value (right-zero-extended to 32 bits) into the specified register.
+
+}
+
@encoding() {
@format 21h
diff --git a/plugins/dalvik/opdefs/const_16.d b/plugins/dalvik/v35/opdefs/const_16.d
index cb1ce25..3dcc25a 100644
--- a/plugins/dalvik/opdefs/const_16.d
+++ b/plugins/dalvik/v35/opdefs/const_16.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const-wide/16
+@id 22
+
+@desc {
+
+ Move the given literal value (sign-extended to 64 bits) into the specified register-pair.
+
+}
+
@encoding() {
@format 21s
diff --git a/plugins/dalvik/opdefs/const_17.d b/plugins/dalvik/v35/opdefs/const_17.d
index 88a9f0c..093f6d6 100644
--- a/plugins/dalvik/opdefs/const_17.d
+++ b/plugins/dalvik/v35/opdefs/const_17.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const-wide/32
+@id 23
+
+@desc {
+
+ Move the given literal value (sign-extended to 64 bits) into the specified register-pair.
+
+}
+
@encoding() {
@format 31i
diff --git a/plugins/dalvik/opdefs/const_18.d b/plugins/dalvik/v35/opdefs/const_18.d
index d792add..b77fad9 100644
--- a/plugins/dalvik/opdefs/const_18.d
+++ b/plugins/dalvik/v35/opdefs/const_18.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const-wide
+@id 24
+
+@desc {
+
+ Move the given literal value into the specified register-pair.
+
+}
+
@encoding() {
@format 51l
diff --git a/plugins/dalvik/opdefs/const_19.d b/plugins/dalvik/v35/opdefs/const_19.d
index 577eaf3..731797c 100644
--- a/plugins/dalvik/opdefs/const_19.d
+++ b/plugins/dalvik/v35/opdefs/const_19.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const-wide/high16
+@id 25
+
+@desc {
+
+ Move the given literal value (right-zero-extended to 64 bits) into the specified register-pair.
+
+}
+
@encoding() {
@format 21h
diff --git a/plugins/dalvik/opdefs/const_1a.d b/plugins/dalvik/v35/opdefs/const_1a.d
index 22c11ae..a019a08 100644
--- a/plugins/dalvik/opdefs/const_1a.d
+++ b/plugins/dalvik/v35/opdefs/const_1a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const-string
+@id 26
+
+@desc {
+
+ Move a reference to the string specified by the given index into the specified register.
+
+}
+
@encoding() {
@format 21c | pool_string
diff --git a/plugins/dalvik/opdefs/const_1b.d b/plugins/dalvik/v35/opdefs/const_1b.d
index 699cef6..65323bc 100644
--- a/plugins/dalvik/opdefs/const_1b.d
+++ b/plugins/dalvik/v35/opdefs/const_1b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const-string/jumbo
+@id 27
+
+@desc {
+
+ Move a reference to the string specified by the given index into the specified register.
+
+}
+
@encoding() {
@format 31c | pool_string
diff --git a/plugins/dalvik/opdefs/const_1c.d b/plugins/dalvik/v35/opdefs/const_1c.d
index c539ee9..ff7d1ae 100644
--- a/plugins/dalvik/opdefs/const_1c.d
+++ b/plugins/dalvik/v35/opdefs/const_1c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title const-class
+@id 28
+
+@desc {
+
+ Move a reference to the class specified by the given index into the specified register. In the case where the indicated type is primitive, this will store a reference to the primitive type's degenerate class.
+
+}
+
@encoding() {
@format 21c | pool_type
diff --git a/plugins/dalvik/opdefs/div_93.d b/plugins/dalvik/v35/opdefs/div_93.d
index cfb7f34..096a084 100644
--- a/plugins/dalvik/opdefs/div_93.d
+++ b/plugins/dalvik/v35/opdefs/div_93.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-int
+@id 147
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/div_9e.d b/plugins/dalvik/v35/opdefs/div_9e.d
index b12ebd1..cbe850a 100644
--- a/plugins/dalvik/opdefs/div_9e.d
+++ b/plugins/dalvik/v35/opdefs/div_9e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-long
+@id 158
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/div_a9.d b/plugins/dalvik/v35/opdefs/div_a9.d
index f7ce52e..728eec5 100644
--- a/plugins/dalvik/opdefs/div_a9.d
+++ b/plugins/dalvik/v35/opdefs/div_a9.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-float
+@id 169
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/div_ae.d b/plugins/dalvik/v35/opdefs/div_ae.d
index fae8164..aaf9952 100644
--- a/plugins/dalvik/opdefs/div_ae.d
+++ b/plugins/dalvik/v35/opdefs/div_ae.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-double
+@id 174
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/div_b3.d b/plugins/dalvik/v35/opdefs/div_b3.d
index d1cf5d9..30c3092 100644
--- a/plugins/dalvik/opdefs/div_b3.d
+++ b/plugins/dalvik/v35/opdefs/div_b3.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-int/2addr
+@id 179
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/div_be.d b/plugins/dalvik/v35/opdefs/div_be.d
index a146c29..3506db1 100644
--- a/plugins/dalvik/opdefs/div_be.d
+++ b/plugins/dalvik/v35/opdefs/div_be.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-long/2addr
+@id 190
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/div_c9.d b/plugins/dalvik/v35/opdefs/div_c9.d
index 541ed90..9585edf 100644
--- a/plugins/dalvik/opdefs/div_c9.d
+++ b/plugins/dalvik/v35/opdefs/div_c9.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-float/2addr
+@id 201
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/div_ce.d b/plugins/dalvik/v35/opdefs/div_ce.d
index 2c735e4..96e7196 100644
--- a/plugins/dalvik/opdefs/div_ce.d
+++ b/plugins/dalvik/v35/opdefs/div_ce.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-double/2addr
+@id 206
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/div_d3.d b/plugins/dalvik/v35/opdefs/div_d3.d
index 9dde5bd..a669a66 100644
--- a/plugins/dalvik/opdefs/div_d3.d
+++ b/plugins/dalvik/v35/opdefs/div_d3.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-int/lit16
+@id 211
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> <b>rsub-int</b> does not have a suffix since this version is the main opb of its family. Also, see below for details on its semantics.
+
+}
+
@encoding() {
@format 22s
diff --git a/plugins/dalvik/opdefs/div_db.d b/plugins/dalvik/v35/opdefs/div_db.d
index 6754ed8..6c6ee91 100644
--- a/plugins/dalvik/opdefs/div_db.d
+++ b/plugins/dalvik/v35/opdefs/div_db.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title div-int/lit8
+@id 219
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/filled_25.d b/plugins/dalvik/v35/opdefs/filled_25.d
index cf31e09..aabc19f 100644
--- a/plugins/dalvik/opdefs/filled_25.d
+++ b/plugins/dalvik/v35/opdefs/filled_25.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title filled-new-array/range
+@id 37
+
+@desc {
+
+ Construct an array of the given type and size, filling it with the supplied contents. Clarifications and restrictions are the same as <b>filled-new-array</b>, described above.
+
+}
+
@encoding() {
@format 3rc | pool_type
diff --git a/plugins/dalvik/opdefs/goto_28.d b/plugins/dalvik/v35/opdefs/goto_28.d
index a9c12d1..1d99514 100644
--- a/plugins/dalvik/opdefs/goto_28.d
+++ b/plugins/dalvik/v35/opdefs/goto_28.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title goto
+@id 40
+
+@desc {
+
+ Unconditionally jump to the indicated instruction.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either with <b>goto/32</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 10t
diff --git a/plugins/dalvik/opdefs/goto_29.d b/plugins/dalvik/v35/opdefs/goto_29.d
index 8272a7d..6a19c84 100644
--- a/plugins/dalvik/opdefs/goto_29.d
+++ b/plugins/dalvik/v35/opdefs/goto_29.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title goto/16
+@id 41
+
+@desc {
+
+ Unconditionally jump to the indicated instruction.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either with <b>goto/32</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 20t
diff --git a/plugins/dalvik/opdefs/goto_2a.d b/plugins/dalvik/v35/opdefs/goto_2a.d
index 937b10d..f9108ea 100644
--- a/plugins/dalvik/opdefs/goto_2a.d
+++ b/plugins/dalvik/v35/opdefs/goto_2a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title goto/32
+@id 42
+
+@desc {
+
+ Unconditionally jump to the indicated instruction.
+
+}
+
@encoding() {
@format 30t
diff --git a/plugins/dalvik/opdefs/if_32.d b/plugins/dalvik/v35/opdefs/if_32.d
index f88098a..5fe3e80 100644
--- a/plugins/dalvik/opdefs/if_32.d
+++ b/plugins/dalvik/v35/opdefs/if_32.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-eq
+@id 50
+
+@desc {
+
+ Branch to the given destination if the given two registers' values compare as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 22t
diff --git a/plugins/dalvik/opdefs/if_33.d b/plugins/dalvik/v35/opdefs/if_33.d
index f655f67..de20c7f 100644
--- a/plugins/dalvik/opdefs/if_33.d
+++ b/plugins/dalvik/v35/opdefs/if_33.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-ne
+@id 51
+
+@desc {
+
+ Branch to the given destination if the given two registers' values compare as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 22t
diff --git a/plugins/dalvik/opdefs/if_34.d b/plugins/dalvik/v35/opdefs/if_34.d
index 1146980..d571c47 100644
--- a/plugins/dalvik/opdefs/if_34.d
+++ b/plugins/dalvik/v35/opdefs/if_34.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-lt
+@id 52
+
+@desc {
+
+ Branch to the given destination if the given two registers' values compare as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 22t
diff --git a/plugins/dalvik/opdefs/if_35.d b/plugins/dalvik/v35/opdefs/if_35.d
index b11b243..2467a6d 100644
--- a/plugins/dalvik/opdefs/if_35.d
+++ b/plugins/dalvik/v35/opdefs/if_35.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-ge
+@id 53
+
+@desc {
+
+ Branch to the given destination if the given two registers' values compare as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 22t
diff --git a/plugins/dalvik/opdefs/if_36.d b/plugins/dalvik/v35/opdefs/if_36.d
index 7436901..d4142d8 100644
--- a/plugins/dalvik/opdefs/if_36.d
+++ b/plugins/dalvik/v35/opdefs/if_36.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-gt
+@id 54
+
+@desc {
+
+ Branch to the given destination if the given two registers' values compare as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 22t
diff --git a/plugins/dalvik/opdefs/if_37.d b/plugins/dalvik/v35/opdefs/if_37.d
index 9ecbd84..8097bff 100644
--- a/plugins/dalvik/opdefs/if_37.d
+++ b/plugins/dalvik/v35/opdefs/if_37.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-le
+@id 55
+
+@desc {
+
+ Branch to the given destination if the given two registers' values compare as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 22t
diff --git a/plugins/dalvik/opdefs/if_38.d b/plugins/dalvik/v35/opdefs/if_38.d
index ff21f2b..54680c2 100644
--- a/plugins/dalvik/opdefs/if_38.d
+++ b/plugins/dalvik/v35/opdefs/if_38.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-eqz
+@id 56
+
+@desc {
+
+ Branch to the given destination if the given register's value compares with 0 as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 21t
diff --git a/plugins/dalvik/opdefs/if_39.d b/plugins/dalvik/v35/opdefs/if_39.d
index 0dbba57..d74191e 100644
--- a/plugins/dalvik/opdefs/if_39.d
+++ b/plugins/dalvik/v35/opdefs/if_39.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-nez
+@id 57
+
+@desc {
+
+ Branch to the given destination if the given register's value compares with 0 as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 21t
diff --git a/plugins/dalvik/opdefs/if_3a.d b/plugins/dalvik/v35/opdefs/if_3a.d
index b003824..ded0257 100644
--- a/plugins/dalvik/opdefs/if_3a.d
+++ b/plugins/dalvik/v35/opdefs/if_3a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-ltz
+@id 58
+
+@desc {
+
+ Branch to the given destination if the given register's value compares with 0 as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 21t
diff --git a/plugins/dalvik/opdefs/if_3b.d b/plugins/dalvik/v35/opdefs/if_3b.d
index f571d7e..bd0591f 100644
--- a/plugins/dalvik/opdefs/if_3b.d
+++ b/plugins/dalvik/v35/opdefs/if_3b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-gez
+@id 59
+
+@desc {
+
+ Branch to the given destination if the given register's value compares with 0 as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 21t
diff --git a/plugins/dalvik/opdefs/if_3c.d b/plugins/dalvik/v35/opdefs/if_3c.d
index 154fe2c..9f0e622 100644
--- a/plugins/dalvik/opdefs/if_3c.d
+++ b/plugins/dalvik/v35/opdefs/if_3c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-gtz
+@id 60
+
+@desc {
+
+ Branch to the given destination if the given register's value compares with 0 as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 21t
diff --git a/plugins/dalvik/opdefs/if_3d.d b/plugins/dalvik/v35/opdefs/if_3d.d
index 2aa5f87..92eaeb9 100644
--- a/plugins/dalvik/opdefs/if_3d.d
+++ b/plugins/dalvik/v35/opdefs/if_3d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title if-lez
+@id 61
+
+@desc {
+
+ Branch to the given destination if the given register's value compares with 0 as specified.
+
+<b>Note:</b> The branch offset must not be <b>0</b>. (A spin loop may be legally constructed either by branching around a backward <b>goto</b> or by including a <b>nop</b> as a target before the branch.)
+
+}
+
@encoding() {
@format 21t
diff --git a/plugins/dalvik/opdefs/iget_52.d b/plugins/dalvik/v35/opdefs/iget_52.d
index ca5c140..b88bb18 100644
--- a/plugins/dalvik/opdefs/iget_52.d
+++ b/plugins/dalvik/v35/opdefs/iget_52.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iget
+@id 82
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iget_53.d b/plugins/dalvik/v35/opdefs/iget_53.d
index 3d458d9..878a108 100644
--- a/plugins/dalvik/opdefs/iget_53.d
+++ b/plugins/dalvik/v35/opdefs/iget_53.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iget-wide
+@id 83
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iget_54.d b/plugins/dalvik/v35/opdefs/iget_54.d
index 343accc..6eb1235 100644
--- a/plugins/dalvik/opdefs/iget_54.d
+++ b/plugins/dalvik/v35/opdefs/iget_54.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iget-object
+@id 84
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iget_55.d b/plugins/dalvik/v35/opdefs/iget_55.d
index dc9d7a4..fa65812 100644
--- a/plugins/dalvik/opdefs/iget_55.d
+++ b/plugins/dalvik/v35/opdefs/iget_55.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iget-boolean
+@id 85
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iget_56.d b/plugins/dalvik/v35/opdefs/iget_56.d
index 92e4d6c..d77ef24 100644
--- a/plugins/dalvik/opdefs/iget_56.d
+++ b/plugins/dalvik/v35/opdefs/iget_56.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iget-byte
+@id 86
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iget_57.d b/plugins/dalvik/v35/opdefs/iget_57.d
index b8864c7..acde802 100644
--- a/plugins/dalvik/opdefs/iget_57.d
+++ b/plugins/dalvik/v35/opdefs/iget_57.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iget-char
+@id 87
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iget_58.d b/plugins/dalvik/v35/opdefs/iget_58.d
index 85a3fb8..7a0ac96 100644
--- a/plugins/dalvik/opdefs/iget_58.d
+++ b/plugins/dalvik/v35/opdefs/iget_58.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iget-short
+@id 88
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/instanceof_20.d b/plugins/dalvik/v35/opdefs/instanceof_20.d
index 7652c56..3e84fb7 100644
--- a/plugins/dalvik/opdefs/instanceof_20.d
+++ b/plugins/dalvik/v35/opdefs/instanceof_20.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title instance-of
+@id 32
+
+@desc {
+
+ Store in the given destination register <b>1</b> if the indicated reference is an instance of the given type, or <b>0</b> if not.
+
+<b>Note:</b> Since <b>B</b> must always be a reference (and not a primitive value), this will always result in <b>0</b> being stored if <b>C</b> refers to a primitive type.
+
+}
+
@encoding() {
@format 22c | pool_type
diff --git a/plugins/dalvik/v35/opdefs/invoke_6e.d b/plugins/dalvik/v35/opdefs/invoke_6e.d
new file mode 100644
index 0000000..a045be8
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/invoke_6e.d
@@ -0,0 +1,52 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 110
+
+@desc {
+
+ Call the indicated method. The result (if any) may be stored with an appropriate <b>move-result*</b> variant as the immediately subsequent instruction.
+
+<b>invoke-virtual</b> is used to invoke a normal virtual method (a method that is not <b>private</b>, <b>static</b>, or <b>final</b>, and is also not a constructor).
+
+When the <b>method_id</b> references a method of a non-interface class, <b>invoke-super</b> is used to invoke the closest superclass's virtual method (as opposed to the one with the same <b>method_id</b> in the calling class). The same method restrictions hold as for <b>invoke-virtual</b>.
+
+In Dex files version <b>037</b> or later, if the <b>method_id</b> refers to an interface method, <b>invoke-super</b> is used to invoke the most specific, non-overridden version of that method defined on that interface. The same method restrictions hold as for <b>invoke-virtual</b>. In Dex files prior to version <b>037</b>, having an interface <b>method_id</b> is illegal and undefined.
+
+<b>invoke-direct</b> is used to invoke a non-<b>static</b> direct method (that is, an instance method that is by its nature non-overridable, namely either a <b>private</b> instance method or a constructor).
+
+<b>invoke-static</b> is used to invoke a <b>static</b> method (which is always considered a direct method).
+
+<b>invoke-interface</b> is used to invoke an <b>interface</b> method, that is, on an object whose concrete class isn't known, using a <b>method_id</b> that refers to an <b>interface</b>.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the method argument to be a more direct offset (or pair thereof).
+
+}
+
+@encoding() {
+
+ @format 35c | pool_meth
+
+}
diff --git a/plugins/dalvik/v35/opdefs/invoke_6f.d b/plugins/dalvik/v35/opdefs/invoke_6f.d
new file mode 100644
index 0000000..804f2d1
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/invoke_6f.d
@@ -0,0 +1,52 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 111
+
+@desc {
+
+ Call the indicated method. The result (if any) may be stored with an appropriate <b>move-result*</b> variant as the immediately subsequent instruction.
+
+<b>invoke-virtual</b> is used to invoke a normal virtual method (a method that is not <b>private</b>, <b>static</b>, or <b>final</b>, and is also not a constructor).
+
+When the <b>method_id</b> references a method of a non-interface class, <b>invoke-super</b> is used to invoke the closest superclass's virtual method (as opposed to the one with the same <b>method_id</b> in the calling class). The same method restrictions hold as for <b>invoke-virtual</b>.
+
+In Dex files version <b>037</b> or later, if the <b>method_id</b> refers to an interface method, <b>invoke-super</b> is used to invoke the most specific, non-overridden version of that method defined on that interface. The same method restrictions hold as for <b>invoke-virtual</b>. In Dex files prior to version <b>037</b>, having an interface <b>method_id</b> is illegal and undefined.
+
+<b>invoke-direct</b> is used to invoke a non-<b>static</b> direct method (that is, an instance method that is by its nature non-overridable, namely either a <b>private</b> instance method or a constructor).
+
+<b>invoke-static</b> is used to invoke a <b>static</b> method (which is always considered a direct method).
+
+<b>invoke-interface</b> is used to invoke an <b>interface</b> method, that is, on an object whose concrete class isn't known, using a <b>method_id</b> that refers to an <b>interface</b>.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the method argument to be a more direct offset (or pair thereof).
+
+}
+
+@encoding() {
+
+ @format 35c | pool_meth
+
+}
diff --git a/plugins/dalvik/v35/opdefs/invoke_70.d b/plugins/dalvik/v35/opdefs/invoke_70.d
new file mode 100644
index 0000000..f383427
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/invoke_70.d
@@ -0,0 +1,52 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 112
+
+@desc {
+
+ Call the indicated method. The result (if any) may be stored with an appropriate <b>move-result*</b> variant as the immediately subsequent instruction.
+
+<b>invoke-virtual</b> is used to invoke a normal virtual method (a method that is not <b>private</b>, <b>static</b>, or <b>final</b>, and is also not a constructor).
+
+When the <b>method_id</b> references a method of a non-interface class, <b>invoke-super</b> is used to invoke the closest superclass's virtual method (as opposed to the one with the same <b>method_id</b> in the calling class). The same method restrictions hold as for <b>invoke-virtual</b>.
+
+In Dex files version <b>037</b> or later, if the <b>method_id</b> refers to an interface method, <b>invoke-super</b> is used to invoke the most specific, non-overridden version of that method defined on that interface. The same method restrictions hold as for <b>invoke-virtual</b>. In Dex files prior to version <b>037</b>, having an interface <b>method_id</b> is illegal and undefined.
+
+<b>invoke-direct</b> is used to invoke a non-<b>static</b> direct method (that is, an instance method that is by its nature non-overridable, namely either a <b>private</b> instance method or a constructor).
+
+<b>invoke-static</b> is used to invoke a <b>static</b> method (which is always considered a direct method).
+
+<b>invoke-interface</b> is used to invoke an <b>interface</b> method, that is, on an object whose concrete class isn't known, using a <b>method_id</b> that refers to an <b>interface</b>.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the method argument to be a more direct offset (or pair thereof).
+
+}
+
+@encoding() {
+
+ @format 35c | pool_meth
+
+}
diff --git a/plugins/dalvik/v35/opdefs/invoke_71.d b/plugins/dalvik/v35/opdefs/invoke_71.d
new file mode 100644
index 0000000..b21eca3
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/invoke_71.d
@@ -0,0 +1,52 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 113
+
+@desc {
+
+ Call the indicated method. The result (if any) may be stored with an appropriate <b>move-result*</b> variant as the immediately subsequent instruction.
+
+<b>invoke-virtual</b> is used to invoke a normal virtual method (a method that is not <b>private</b>, <b>static</b>, or <b>final</b>, and is also not a constructor).
+
+When the <b>method_id</b> references a method of a non-interface class, <b>invoke-super</b> is used to invoke the closest superclass's virtual method (as opposed to the one with the same <b>method_id</b> in the calling class). The same method restrictions hold as for <b>invoke-virtual</b>.
+
+In Dex files version <b>037</b> or later, if the <b>method_id</b> refers to an interface method, <b>invoke-super</b> is used to invoke the most specific, non-overridden version of that method defined on that interface. The same method restrictions hold as for <b>invoke-virtual</b>. In Dex files prior to version <b>037</b>, having an interface <b>method_id</b> is illegal and undefined.
+
+<b>invoke-direct</b> is used to invoke a non-<b>static</b> direct method (that is, an instance method that is by its nature non-overridable, namely either a <b>private</b> instance method or a constructor).
+
+<b>invoke-static</b> is used to invoke a <b>static</b> method (which is always considered a direct method).
+
+<b>invoke-interface</b> is used to invoke an <b>interface</b> method, that is, on an object whose concrete class isn't known, using a <b>method_id</b> that refers to an <b>interface</b>.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the method argument to be a more direct offset (or pair thereof).
+
+}
+
+@encoding() {
+
+ @format 35c | pool_meth
+
+}
diff --git a/plugins/dalvik/v35/opdefs/invoke_72.d b/plugins/dalvik/v35/opdefs/invoke_72.d
new file mode 100644
index 0000000..74cca2b
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/invoke_72.d
@@ -0,0 +1,52 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 114
+
+@desc {
+
+ Call the indicated method. The result (if any) may be stored with an appropriate <b>move-result*</b> variant as the immediately subsequent instruction.
+
+<b>invoke-virtual</b> is used to invoke a normal virtual method (a method that is not <b>private</b>, <b>static</b>, or <b>final</b>, and is also not a constructor).
+
+When the <b>method_id</b> references a method of a non-interface class, <b>invoke-super</b> is used to invoke the closest superclass's virtual method (as opposed to the one with the same <b>method_id</b> in the calling class). The same method restrictions hold as for <b>invoke-virtual</b>.
+
+In Dex files version <b>037</b> or later, if the <b>method_id</b> refers to an interface method, <b>invoke-super</b> is used to invoke the most specific, non-overridden version of that method defined on that interface. The same method restrictions hold as for <b>invoke-virtual</b>. In Dex files prior to version <b>037</b>, having an interface <b>method_id</b> is illegal and undefined.
+
+<b>invoke-direct</b> is used to invoke a non-<b>static</b> direct method (that is, an instance method that is by its nature non-overridable, namely either a <b>private</b> instance method or a constructor).
+
+<b>invoke-static</b> is used to invoke a <b>static</b> method (which is always considered a direct method).
+
+<b>invoke-interface</b> is used to invoke an <b>interface</b> method, that is, on an object whose concrete class isn't known, using a <b>method_id</b> that refers to an <b>interface</b>.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the method argument to be a more direct offset (or pair thereof).
+
+}
+
+@encoding() {
+
+ @format 35c | pool_meth
+
+}
diff --git a/plugins/dalvik/opdefs/invoke_74.d b/plugins/dalvik/v35/opdefs/invoke_74.d
index 77b68de..e8275fc 100644
--- a/plugins/dalvik/opdefs/invoke_74.d
+++ b/plugins/dalvik/v35/opdefs/invoke_74.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title invoke-virtual/range
+@id 116
+
+@desc {
+
+ Call the indicated method. See first <b>invoke-<i>kind</i></b> description above for details, caveats, and suggestions.
+
+}
+
@encoding() {
@format 3rc | pool_meth
diff --git a/plugins/dalvik/opdefs/invoke_75.d b/plugins/dalvik/v35/opdefs/invoke_75.d
index e886dad..5802f05 100644
--- a/plugins/dalvik/opdefs/invoke_75.d
+++ b/plugins/dalvik/v35/opdefs/invoke_75.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title invoke-super/range
+@id 117
+
+@desc {
+
+ Call the indicated method. See first <b>invoke-<i>kind</i></b> description above for details, caveats, and suggestions.
+
+}
+
@encoding() {
@format 3rc | pool_meth
diff --git a/plugins/dalvik/opdefs/invoke_76.d b/plugins/dalvik/v35/opdefs/invoke_76.d
index 8156689..ac1a7b0 100644
--- a/plugins/dalvik/opdefs/invoke_76.d
+++ b/plugins/dalvik/v35/opdefs/invoke_76.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title invoke-direct/range
+@id 118
+
+@desc {
+
+ Call the indicated method. See first <b>invoke-<i>kind</i></b> description above for details, caveats, and suggestions.
+
+}
+
@encoding() {
@format 3rc | pool_meth
diff --git a/plugins/dalvik/opdefs/invoke_77.d b/plugins/dalvik/v35/opdefs/invoke_77.d
index b5707e2..64d6075 100644
--- a/plugins/dalvik/opdefs/invoke_77.d
+++ b/plugins/dalvik/v35/opdefs/invoke_77.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title invoke-static/range
+@id 119
+
+@desc {
+
+ Call the indicated method. See first <b>invoke-<i>kind</i></b> description above for details, caveats, and suggestions.
+
+}
+
@encoding() {
@format 3rc | pool_meth
diff --git a/plugins/dalvik/opdefs/invoke_78.d b/plugins/dalvik/v35/opdefs/invoke_78.d
index 5589b38..f3e8839 100644
--- a/plugins/dalvik/opdefs/invoke_78.d
+++ b/plugins/dalvik/v35/opdefs/invoke_78.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title invoke-interface/range
+@id 120
+
+@desc {
+
+ Call the indicated method. See first <b>invoke-<i>kind</i></b> description above for details, caveats, and suggestions.
+
+}
+
@encoding() {
@format 3rc | pool_meth
diff --git a/plugins/dalvik/opdefs/iput_59.d b/plugins/dalvik/v35/opdefs/iput_59.d
index fd17db4..b11da8b 100644
--- a/plugins/dalvik/opdefs/iput_59.d
+++ b/plugins/dalvik/v35/opdefs/iput_59.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iput
+@id 89
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iput_5a.d b/plugins/dalvik/v35/opdefs/iput_5a.d
index 509868c..f2e8311 100644
--- a/plugins/dalvik/opdefs/iput_5a.d
+++ b/plugins/dalvik/v35/opdefs/iput_5a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iput-wide
+@id 90
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iput_5b.d b/plugins/dalvik/v35/opdefs/iput_5b.d
index 9ad7500..631892c 100644
--- a/plugins/dalvik/opdefs/iput_5b.d
+++ b/plugins/dalvik/v35/opdefs/iput_5b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iput-object
+@id 91
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iput_5c.d b/plugins/dalvik/v35/opdefs/iput_5c.d
index 9ae86fa..8cc1fb6 100644
--- a/plugins/dalvik/opdefs/iput_5c.d
+++ b/plugins/dalvik/v35/opdefs/iput_5c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iput-boolean
+@id 92
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iput_5d.d b/plugins/dalvik/v35/opdefs/iput_5d.d
index 8a3830e..93edb58 100644
--- a/plugins/dalvik/opdefs/iput_5d.d
+++ b/plugins/dalvik/v35/opdefs/iput_5d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iput-byte
+@id 93
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iput_5e.d b/plugins/dalvik/v35/opdefs/iput_5e.d
index 5120675..48cb4f6 100644
--- a/plugins/dalvik/opdefs/iput_5e.d
+++ b/plugins/dalvik/v35/opdefs/iput_5e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iput-char
+@id 94
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/iput_5f.d b/plugins/dalvik/v35/opdefs/iput_5f.d
index 7fe2d80..9bbd72a 100644
--- a/plugins/dalvik/opdefs/iput_5f.d
+++ b/plugins/dalvik/v35/opdefs/iput_5f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title iput-short
+@id 95
+
+@desc {
+
+ Perform the identified object instance field operation with the identified field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 22c | pool_field
diff --git a/plugins/dalvik/opdefs/monitor_1d.d b/plugins/dalvik/v35/opdefs/monitor_1d.d
index ab7ce5f..101ffad 100644
--- a/plugins/dalvik/opdefs/monitor_1d.d
+++ b/plugins/dalvik/v35/opdefs/monitor_1d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title monitor-enter
+@id 29
+
+@desc {
+
+ Acquire the monitor for the indicated object.
+
+}
+
@encoding() {
@format 11x
diff --git a/plugins/dalvik/opdefs/monitor_1e.d b/plugins/dalvik/v35/opdefs/monitor_1e.d
index b5b0d20..b54af35 100644
--- a/plugins/dalvik/opdefs/monitor_1e.d
+++ b/plugins/dalvik/v35/opdefs/monitor_1e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title monitor-exit
+@id 30
+
+@desc {
+
+ Release the monitor for the indicated object.
+
+<b>Note:</b> If this instruction needs to throw an exception, it must do so as if the pc has already advanced past the instruction. It may be useful to think of this as the instruction successfully executing (in a sense), and the exception getting thrown <i>after</i> the instruction but <i>before</i> the next one gets a chance to run. This definition makes it possible for a method to use a monitor cleanup catch-all (e.g., <b>finally</b>) block as the monitor cleanup for that block itself, as a way to handle the arbitrary exceptions that might get thrown due to the historical implementation of <b>Thread.stop()</b>, while still managing to have proper monitor hygiene.
+
+}
+
@encoding() {
@format 11x
diff --git a/plugins/dalvik/opdefs/move_01.d b/plugins/dalvik/v35/opdefs/move_01.d
index caa2a85..788a359 100644
--- a/plugins/dalvik/opdefs/move_01.d
+++ b/plugins/dalvik/v35/opdefs/move_01.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move
+@id 1
+
+@desc {
+
+ Move the contents of one non-object register to another.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/move_02.d b/plugins/dalvik/v35/opdefs/move_02.d
index c8b96bd..8453561 100644
--- a/plugins/dalvik/opdefs/move_02.d
+++ b/plugins/dalvik/v35/opdefs/move_02.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move/from16
+@id 2
+
+@desc {
+
+ Move the contents of one non-object register to another.
+
+}
+
@encoding() {
@format 22x
diff --git a/plugins/dalvik/opdefs/move_03.d b/plugins/dalvik/v35/opdefs/move_03.d
index 6957de7..a665ccd 100644
--- a/plugins/dalvik/opdefs/move_03.d
+++ b/plugins/dalvik/v35/opdefs/move_03.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move/16
+@id 3
+
+@desc {
+
+ Move the contents of one non-object register to another.
+
+}
+
@encoding() {
@format 32x
diff --git a/plugins/dalvik/opdefs/move_04.d b/plugins/dalvik/v35/opdefs/move_04.d
index 57196cc..d4f9395 100644
--- a/plugins/dalvik/opdefs/move_04.d
+++ b/plugins/dalvik/v35/opdefs/move_04.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title move-wide
+@id 4
+
+@desc {
+
+ Move the contents of one register-pair to another.
+
+<b>Note:</b> It is legal to move from <b>v<i>N</i></b> to either <b>v<i>N-1</i></b> or <b>v<i>N+1</i></b>, so implementations must arrange for both halves of a register pair to be read before anything is written.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/move_05.d b/plugins/dalvik/v35/opdefs/move_05.d
index 2b974bb..36b276c 100644
--- a/plugins/dalvik/opdefs/move_05.d
+++ b/plugins/dalvik/v35/opdefs/move_05.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title move-wide/from16
+@id 5
+
+@desc {
+
+ Move the contents of one register-pair to another.
+
+<b>Note:</b> Implementation considerations are the same as <b>move-wide</b>, above.
+
+}
+
@encoding() {
@format 22x
diff --git a/plugins/dalvik/opdefs/move_06.d b/plugins/dalvik/v35/opdefs/move_06.d
index 4acaf62..2b40adb 100644
--- a/plugins/dalvik/opdefs/move_06.d
+++ b/plugins/dalvik/v35/opdefs/move_06.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title move-wide/16
+@id 6
+
+@desc {
+
+ Move the contents of one register-pair to another.
+
+<b>Note:</b> Implementation considerations are the same as <b>move-wide</b>, above.
+
+}
+
@encoding() {
@format 32x
diff --git a/plugins/dalvik/opdefs/move_07.d b/plugins/dalvik/v35/opdefs/move_07.d
index cde3102..8d982e5 100644
--- a/plugins/dalvik/opdefs/move_07.d
+++ b/plugins/dalvik/v35/opdefs/move_07.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move-object
+@id 7
+
+@desc {
+
+ Move the contents of one object-bearing register to another.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/move_08.d b/plugins/dalvik/v35/opdefs/move_08.d
index aba0cad..d58d356 100644
--- a/plugins/dalvik/opdefs/move_08.d
+++ b/plugins/dalvik/v35/opdefs/move_08.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move-object/from16
+@id 8
+
+@desc {
+
+ Move the contents of one object-bearing register to another.
+
+}
+
@encoding() {
@format 22x
diff --git a/plugins/dalvik/opdefs/move_09.d b/plugins/dalvik/v35/opdefs/move_09.d
index 3bf6a65..520c03e 100644
--- a/plugins/dalvik/opdefs/move_09.d
+++ b/plugins/dalvik/v35/opdefs/move_09.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move-object/16
+@id 9
+
+@desc {
+
+ Move the contents of one object-bearing register to another.
+
+}
+
@encoding() {
@format 32x
diff --git a/plugins/dalvik/opdefs/move_0a.d b/plugins/dalvik/v35/opdefs/move_0a.d
index b6a185a..250b8fc 100644
--- a/plugins/dalvik/opdefs/move_0a.d
+++ b/plugins/dalvik/v35/opdefs/move_0a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move-result
+@id 10
+
+@desc {
+
+ Move the single-word non-object result of the most recent <b>invoke-<i>kind</i></b> into the indicated register. This must be done as the instruction immediately after an <b>invoke-<i>kind</i></b> whose (single-word, non-object) result is not to be ignored; anywhere else is invalid.
+
+}
+
@encoding() {
@format 11x
diff --git a/plugins/dalvik/opdefs/move_0b.d b/plugins/dalvik/v35/opdefs/move_0b.d
index d266cb8..35b6270 100644
--- a/plugins/dalvik/opdefs/move_0b.d
+++ b/plugins/dalvik/v35/opdefs/move_0b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move-result-wide
+@id 11
+
+@desc {
+
+ Move the double-word result of the most recent <b>invoke-<i>kind</i></b> into the indicated register pair. This must be done as the instruction immediately after an <b>invoke-<i>kind</i></b> whose (double-word) result is not to be ignored; anywhere else is invalid.
+
+}
+
@encoding() {
@format 11x
diff --git a/plugins/dalvik/opdefs/move_0c.d b/plugins/dalvik/v35/opdefs/move_0c.d
index 8e6f67f..4109578 100644
--- a/plugins/dalvik/opdefs/move_0c.d
+++ b/plugins/dalvik/v35/opdefs/move_0c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move-result-object
+@id 12
+
+@desc {
+
+ Move the object result of the most recent <b>invoke-<i>kind</i></b> into the indicated register. This must be done as the instruction immediately after an <b>invoke-<i>kind</i></b> or <b>filled-new-array</b> whose (object) result is not to be ignored; anywhere else is invalid.
+
+}
+
@encoding() {
@format 11x
diff --git a/plugins/dalvik/opdefs/move_0d.d b/plugins/dalvik/v35/opdefs/move_0d.d
index f442006..155e585 100644
--- a/plugins/dalvik/opdefs/move_0d.d
+++ b/plugins/dalvik/v35/opdefs/move_0d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title move-exception
+@id 13
+
+@desc {
+
+ Save a just-caught exception into the given register. This must be the first instruction of any exception handler whose caught exception is not to be ignored, and this instruction must <i>only</i> ever occur as the first instruction of an exception handler; anywhere else is invalid.
+
+}
+
@encoding() {
@format 11x
diff --git a/plugins/dalvik/opdefs/mul_92.d b/plugins/dalvik/v35/opdefs/mul_92.d
index 83b5cac..7de6f1a 100644
--- a/plugins/dalvik/opdefs/mul_92.d
+++ b/plugins/dalvik/v35/opdefs/mul_92.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-int
+@id 146
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/mul_9d.d b/plugins/dalvik/v35/opdefs/mul_9d.d
index ecc216d..0f62e22 100644
--- a/plugins/dalvik/opdefs/mul_9d.d
+++ b/plugins/dalvik/v35/opdefs/mul_9d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-long
+@id 157
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/mul_a8.d b/plugins/dalvik/v35/opdefs/mul_a8.d
index 63e51e5..0a77ac1 100644
--- a/plugins/dalvik/opdefs/mul_a8.d
+++ b/plugins/dalvik/v35/opdefs/mul_a8.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-float
+@id 168
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/mul_ad.d b/plugins/dalvik/v35/opdefs/mul_ad.d
index 17f950c..8f43825 100644
--- a/plugins/dalvik/opdefs/mul_ad.d
+++ b/plugins/dalvik/v35/opdefs/mul_ad.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-double
+@id 173
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/mul_b2.d b/plugins/dalvik/v35/opdefs/mul_b2.d
index a7b917c..b82d948 100644
--- a/plugins/dalvik/opdefs/mul_b2.d
+++ b/plugins/dalvik/v35/opdefs/mul_b2.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-int/2addr
+@id 178
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/mul_bd.d b/plugins/dalvik/v35/opdefs/mul_bd.d
index 8ce23b1..622dd61 100644
--- a/plugins/dalvik/opdefs/mul_bd.d
+++ b/plugins/dalvik/v35/opdefs/mul_bd.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-long/2addr
+@id 189
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/mul_c8.d b/plugins/dalvik/v35/opdefs/mul_c8.d
index 1d17cc1..04a1ac1 100644
--- a/plugins/dalvik/opdefs/mul_c8.d
+++ b/plugins/dalvik/v35/opdefs/mul_c8.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-float/2addr
+@id 200
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/mul_cd.d b/plugins/dalvik/v35/opdefs/mul_cd.d
index 1816780..3622c1a 100644
--- a/plugins/dalvik/opdefs/mul_cd.d
+++ b/plugins/dalvik/v35/opdefs/mul_cd.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-double/2addr
+@id 205
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/mul_d2.d b/plugins/dalvik/v35/opdefs/mul_d2.d
index 998ecd7..b7f44a0 100644
--- a/plugins/dalvik/opdefs/mul_d2.d
+++ b/plugins/dalvik/v35/opdefs/mul_d2.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-int/lit16
+@id 210
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> <b>rsub-int</b> does not have a suffix since this version is the main opb of its family. Also, see below for details on its semantics.
+
+}
+
@encoding() {
@format 22s
diff --git a/plugins/dalvik/opdefs/mul_da.d b/plugins/dalvik/v35/opdefs/mul_da.d
index 4c1a264..ac7fba2 100644
--- a/plugins/dalvik/opdefs/mul_da.d
+++ b/plugins/dalvik/v35/opdefs/mul_da.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title mul-int/lit8
+@id 218
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/neg_7b.d b/plugins/dalvik/v35/opdefs/neg_7b.d
index c8ec7df..1e518e2 100644
--- a/plugins/dalvik/opdefs/neg_7b.d
+++ b/plugins/dalvik/v35/opdefs/neg_7b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title neg-int
+@id 123
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/neg_7d.d b/plugins/dalvik/v35/opdefs/neg_7d.d
index 3d442c3..370aa5f 100644
--- a/plugins/dalvik/opdefs/neg_7d.d
+++ b/plugins/dalvik/v35/opdefs/neg_7d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title neg-long
+@id 125
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/neg_7f.d b/plugins/dalvik/v35/opdefs/neg_7f.d
index d30ede6..39b8dcd 100644
--- a/plugins/dalvik/opdefs/neg_7f.d
+++ b/plugins/dalvik/v35/opdefs/neg_7f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title neg-float
+@id 127
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/neg_80.d b/plugins/dalvik/v35/opdefs/neg_80.d
index 49d6bdd..e0faa70 100644
--- a/plugins/dalvik/opdefs/neg_80.d
+++ b/plugins/dalvik/v35/opdefs/neg_80.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title neg-double
+@id 128
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/new_22.d b/plugins/dalvik/v35/opdefs/new_22.d
index 4af913c..f23307f 100644
--- a/plugins/dalvik/opdefs/new_22.d
+++ b/plugins/dalvik/v35/opdefs/new_22.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title new-instance
+@id 34
+
+@desc {
+
+ Construct a new instance of the indicated type, storing a reference to it in the destination. The type must refer to a non-array class.
+
+}
+
@encoding() {
@format 21c | pool_type
diff --git a/plugins/dalvik/opdefs/new_23.d b/plugins/dalvik/v35/opdefs/new_23.d
index 0a6a863..7639e2c 100644
--- a/plugins/dalvik/opdefs/new_23.d
+++ b/plugins/dalvik/v35/opdefs/new_23.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title new-array
+@id 35
+
+@desc {
+
+ Construct a new array of the indicated type and size. The type must be an array type.
+
+}
+
@encoding() {
@format 22c | pool_type
diff --git a/plugins/dalvik/v35/opdefs/nop_00.d b/plugins/dalvik/v35/opdefs/nop_00.d
new file mode 100644
index 0000000..b48d883
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/nop_00.d
@@ -0,0 +1,40 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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
+
+@id 0
+
+@desc {
+
+ Waste cycles.
+
+<b>Note:</b> Data-bearing pseudo-instructions are tagged with this opb, in which case the high-order byte of the opb unit indicates the nature of the data. See "<b>packed-switch-payload</b> Format", "<b>sparse-switch-payload</b> Format", and "<b>fill-array-data-payload</b> Format" below.
+
+}
+
+@encoding() {
+
+ @format 10x
+
+}
diff --git a/plugins/dalvik/opdefs/not_7c.d b/plugins/dalvik/v35/opdefs/not_7c.d
index d52ad8c..395dcb1 100644
--- a/plugins/dalvik/opdefs/not_7c.d
+++ b/plugins/dalvik/v35/opdefs/not_7c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title not-int
+@id 124
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/not_7e.d b/plugins/dalvik/v35/opdefs/not_7e.d
index 4291d7a..0a50102 100644
--- a/plugins/dalvik/opdefs/not_7e.d
+++ b/plugins/dalvik/v35/opdefs/not_7e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title not-long
+@id 126
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/or_96.d b/plugins/dalvik/v35/opdefs/or_96.d
index 62f24a5..cbdfd0b 100644
--- a/plugins/dalvik/opdefs/or_96.d
+++ b/plugins/dalvik/v35/opdefs/or_96.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title or-int
+@id 150
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/or_a1.d b/plugins/dalvik/v35/opdefs/or_a1.d
index 2867a81..b5ec103 100644
--- a/plugins/dalvik/opdefs/or_a1.d
+++ b/plugins/dalvik/v35/opdefs/or_a1.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title or-long
+@id 161
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/or_b6.d b/plugins/dalvik/v35/opdefs/or_b6.d
index 3d56801..8dd878a 100644
--- a/plugins/dalvik/opdefs/or_b6.d
+++ b/plugins/dalvik/v35/opdefs/or_b6.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title or-int/2addr
+@id 182
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/or_c1.d b/plugins/dalvik/v35/opdefs/or_c1.d
index 8d13da3..d7224a4 100644
--- a/plugins/dalvik/opdefs/or_c1.d
+++ b/plugins/dalvik/v35/opdefs/or_c1.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title or-long/2addr
+@id 193
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/or_d6.d b/plugins/dalvik/v35/opdefs/or_d6.d
index 71766a3..3543093 100644
--- a/plugins/dalvik/opdefs/or_d6.d
+++ b/plugins/dalvik/v35/opdefs/or_d6.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title or-int/lit16
+@id 214
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> <b>rsub-int</b> does not have a suffix since this version is the main opb of its family. Also, see below for details on its semantics.
+
+}
+
@encoding() {
@format 22s
diff --git a/plugins/dalvik/opdefs/or_de.d b/plugins/dalvik/v35/opdefs/or_de.d
index 1c293a5..582ed6a 100644
--- a/plugins/dalvik/opdefs/or_de.d
+++ b/plugins/dalvik/v35/opdefs/or_de.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title or-int/lit8
+@id 222
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/rem_94.d b/plugins/dalvik/v35/opdefs/rem_94.d
index 9238d14..54aeaa6 100644
--- a/plugins/dalvik/opdefs/rem_94.d
+++ b/plugins/dalvik/v35/opdefs/rem_94.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-int
+@id 148
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/rem_9f.d b/plugins/dalvik/v35/opdefs/rem_9f.d
index 6aef568..1fe7291 100644
--- a/plugins/dalvik/opdefs/rem_9f.d
+++ b/plugins/dalvik/v35/opdefs/rem_9f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-long
+@id 159
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/rem_aa.d b/plugins/dalvik/v35/opdefs/rem_aa.d
index 71a0d8b..54f6f08 100644
--- a/plugins/dalvik/opdefs/rem_aa.d
+++ b/plugins/dalvik/v35/opdefs/rem_aa.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-float
+@id 170
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/rem_af.d b/plugins/dalvik/v35/opdefs/rem_af.d
index dc092a1..8441dad 100644
--- a/plugins/dalvik/opdefs/rem_af.d
+++ b/plugins/dalvik/v35/opdefs/rem_af.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-double
+@id 175
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/rem_b4.d b/plugins/dalvik/v35/opdefs/rem_b4.d
index fada523..8c904c7 100644
--- a/plugins/dalvik/opdefs/rem_b4.d
+++ b/plugins/dalvik/v35/opdefs/rem_b4.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-int/2addr
+@id 180
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/rem_bf.d b/plugins/dalvik/v35/opdefs/rem_bf.d
index b6b0997..85863b9 100644
--- a/plugins/dalvik/opdefs/rem_bf.d
+++ b/plugins/dalvik/v35/opdefs/rem_bf.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-long/2addr
+@id 191
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/rem_ca.d b/plugins/dalvik/v35/opdefs/rem_ca.d
index 3c6d287..6d69082 100644
--- a/plugins/dalvik/opdefs/rem_ca.d
+++ b/plugins/dalvik/v35/opdefs/rem_ca.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-float/2addr
+@id 202
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/rem_cf.d b/plugins/dalvik/v35/opdefs/rem_cf.d
index 1881502..502baad 100644
--- a/plugins/dalvik/opdefs/rem_cf.d
+++ b/plugins/dalvik/v35/opdefs/rem_cf.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-double/2addr
+@id 207
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/rem_d4.d b/plugins/dalvik/v35/opdefs/rem_d4.d
index 84d12b8..faf7390 100644
--- a/plugins/dalvik/opdefs/rem_d4.d
+++ b/plugins/dalvik/v35/opdefs/rem_d4.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-int/lit16
+@id 212
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> <b>rsub-int</b> does not have a suffix since this version is the main opb of its family. Also, see below for details on its semantics.
+
+}
+
@encoding() {
@format 22s
diff --git a/plugins/dalvik/opdefs/rem_dc.d b/plugins/dalvik/v35/opdefs/rem_dc.d
index f70f9e9..a19c7df 100644
--- a/plugins/dalvik/opdefs/rem_dc.d
+++ b/plugins/dalvik/v35/opdefs/rem_dc.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rem-int/lit8
+@id 220
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/return_0e.d b/plugins/dalvik/v35/opdefs/return_0e.d
index 98fa1a8..7c42cb7 100644
--- a/plugins/dalvik/opdefs/return_0e.d
+++ b/plugins/dalvik/v35/opdefs/return_0e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,13 +23,25 @@
@title return-void
+@id 14
+
+@desc {
+
+ Return from a <b>void</b> method.
+
+}
+
@encoding() {
@format 10x
- @rules {
+ @syntax {
+
+ @rules {
+
+ call g_arch_instruction_set_flag(AIF_RETURN_POINT)
- call SetInsFlag(AIF_RETURN_POINT)
+ }
}
diff --git a/plugins/dalvik/opdefs/return_0f.d b/plugins/dalvik/v35/opdefs/return_0f.d
index 7e681ae..2051443 100644
--- a/plugins/dalvik/opdefs/return_0f.d
+++ b/plugins/dalvik/v35/opdefs/return_0f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,13 +23,25 @@
@title return
+@id 15
+
+@desc {
+
+ Return from a single-width (32-bit) non-object value-returning method.
+
+}
+
@encoding() {
@format 11x
- @rules {
+ @syntax {
+
+ @rules {
+
+ call g_arch_instruction_set_flag(AIF_RETURN_POINT)
- call SetInsFlag(AIF_RETURN_POINT)
+ }
}
diff --git a/plugins/dalvik/opdefs/return_10.d b/plugins/dalvik/v35/opdefs/return_10.d
index 644760c..7cf1ce3 100644
--- a/plugins/dalvik/opdefs/return_10.d
+++ b/plugins/dalvik/v35/opdefs/return_10.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,13 +23,25 @@
@title return-wide
+@id 16
+
+@desc {
+
+ Return from a double-width (64-bit) value-returning method.
+
+}
+
@encoding() {
@format 11x
- @rules {
+ @syntax {
+
+ @rules {
+
+ call g_arch_instruction_set_flag(AIF_RETURN_POINT)
- call SetInsFlag(AIF_RETURN_POINT)
+ }
}
diff --git a/plugins/dalvik/opdefs/return_11.d b/plugins/dalvik/v35/opdefs/return_11.d
index b8e4e60..4023de7 100644
--- a/plugins/dalvik/opdefs/return_11.d
+++ b/plugins/dalvik/v35/opdefs/return_11.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,13 +23,25 @@
@title return-object
+@id 17
+
+@desc {
+
+ Return from an object-returning method.
+
+}
+
@encoding() {
@format 11x
- @rules {
+ @syntax {
+
+ @rules {
+
+ call g_arch_instruction_set_flag(AIF_RETURN_POINT)
- call SetInsFlag(AIF_RETURN_POINT)
+ }
}
diff --git a/plugins/dalvik/opdefs/rsub_d1.d b/plugins/dalvik/v35/opdefs/rsub_d1.d
index 0d05c84..4385967 100644
--- a/plugins/dalvik/opdefs/rsub_d1.d
+++ b/plugins/dalvik/v35/opdefs/rsub_d1.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rsub-int
+@id 209
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> <b>rsub-int</b> does not have a suffix since this version is the main opb of its family. Also, see below for details on its semantics.
+
+}
+
@encoding() {
@format 22s
diff --git a/plugins/dalvik/opdefs/rsub_d9.d b/plugins/dalvik/v35/opdefs/rsub_d9.d
index 0f2f656..890846c 100644
--- a/plugins/dalvik/opdefs/rsub_d9.d
+++ b/plugins/dalvik/v35/opdefs/rsub_d9.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title rsub-int/lit8
+@id 217
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/sget_60.d b/plugins/dalvik/v35/opdefs/sget_60.d
index 90090a2..e017ff8 100644
--- a/plugins/dalvik/opdefs/sget_60.d
+++ b/plugins/dalvik/v35/opdefs/sget_60.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sget
+@id 96
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sget_61.d b/plugins/dalvik/v35/opdefs/sget_61.d
index c3f132c..faa94e4 100644
--- a/plugins/dalvik/opdefs/sget_61.d
+++ b/plugins/dalvik/v35/opdefs/sget_61.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sget-wide
+@id 97
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sget_62.d b/plugins/dalvik/v35/opdefs/sget_62.d
index 97d41d9..310c7a1 100644
--- a/plugins/dalvik/opdefs/sget_62.d
+++ b/plugins/dalvik/v35/opdefs/sget_62.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sget-object
+@id 98
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sget_63.d b/plugins/dalvik/v35/opdefs/sget_63.d
index 0dca873..3027a44 100644
--- a/plugins/dalvik/opdefs/sget_63.d
+++ b/plugins/dalvik/v35/opdefs/sget_63.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sget-boolean
+@id 99
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sget_64.d b/plugins/dalvik/v35/opdefs/sget_64.d
index 507420e..307572d 100644
--- a/plugins/dalvik/opdefs/sget_64.d
+++ b/plugins/dalvik/v35/opdefs/sget_64.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sget-byte
+@id 100
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sget_65.d b/plugins/dalvik/v35/opdefs/sget_65.d
index 5236314..488c1ab 100644
--- a/plugins/dalvik/opdefs/sget_65.d
+++ b/plugins/dalvik/v35/opdefs/sget_65.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sget-char
+@id 101
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sget_66.d b/plugins/dalvik/v35/opdefs/sget_66.d
index 9f8b4fa..fb0f2ab 100644
--- a/plugins/dalvik/opdefs/sget_66.d
+++ b/plugins/dalvik/v35/opdefs/sget_66.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sget-short
+@id 102
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/shl_98.d b/plugins/dalvik/v35/opdefs/shl_98.d
index bfb92bd..ed1ec68 100644
--- a/plugins/dalvik/opdefs/shl_98.d
+++ b/plugins/dalvik/v35/opdefs/shl_98.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shl-int
+@id 152
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/shl_a3.d b/plugins/dalvik/v35/opdefs/shl_a3.d
index c3772b0..bc485a4 100644
--- a/plugins/dalvik/opdefs/shl_a3.d
+++ b/plugins/dalvik/v35/opdefs/shl_a3.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shl-long
+@id 163
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/shl_b8.d b/plugins/dalvik/v35/opdefs/shl_b8.d
index 70f99e1..800398a 100644
--- a/plugins/dalvik/opdefs/shl_b8.d
+++ b/plugins/dalvik/v35/opdefs/shl_b8.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shl-int/2addr
+@id 184
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/shl_c3.d b/plugins/dalvik/v35/opdefs/shl_c3.d
index 94d35e5..3b07705 100644
--- a/plugins/dalvik/opdefs/shl_c3.d
+++ b/plugins/dalvik/v35/opdefs/shl_c3.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shl-long/2addr
+@id 195
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/shl_e0.d b/plugins/dalvik/v35/opdefs/shl_e0.d
index c5c8d50..a419946 100644
--- a/plugins/dalvik/opdefs/shl_e0.d
+++ b/plugins/dalvik/v35/opdefs/shl_e0.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shl-int/lit8
+@id 224
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/shr_99.d b/plugins/dalvik/v35/opdefs/shr_99.d
index 203e4d5..d8658bc 100644
--- a/plugins/dalvik/opdefs/shr_99.d
+++ b/plugins/dalvik/v35/opdefs/shr_99.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shr-int
+@id 153
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/shr_a4.d b/plugins/dalvik/v35/opdefs/shr_a4.d
index 16e07a6..d12821b 100644
--- a/plugins/dalvik/opdefs/shr_a4.d
+++ b/plugins/dalvik/v35/opdefs/shr_a4.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shr-long
+@id 164
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/shr_b9.d b/plugins/dalvik/v35/opdefs/shr_b9.d
index 5f48795..55c3e77 100644
--- a/plugins/dalvik/opdefs/shr_b9.d
+++ b/plugins/dalvik/v35/opdefs/shr_b9.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shr-int/2addr
+@id 185
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/shr_c4.d b/plugins/dalvik/v35/opdefs/shr_c4.d
index 80cbfee..6f6862f 100644
--- a/plugins/dalvik/opdefs/shr_c4.d
+++ b/plugins/dalvik/v35/opdefs/shr_c4.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shr-long/2addr
+@id 196
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/shr_e1.d b/plugins/dalvik/v35/opdefs/shr_e1.d
index 38a30dc..728798a 100644
--- a/plugins/dalvik/opdefs/shr_e1.d
+++ b/plugins/dalvik/v35/opdefs/shr_e1.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title shr-int/lit8
+@id 225
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/sput_67.d b/plugins/dalvik/v35/opdefs/sput_67.d
index 149337a..11c3faa 100644
--- a/plugins/dalvik/opdefs/sput_67.d
+++ b/plugins/dalvik/v35/opdefs/sput_67.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sput
+@id 103
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sput_68.d b/plugins/dalvik/v35/opdefs/sput_68.d
index 3709445..4009b2f 100644
--- a/plugins/dalvik/opdefs/sput_68.d
+++ b/plugins/dalvik/v35/opdefs/sput_68.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sput-wide
+@id 104
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sput_69.d b/plugins/dalvik/v35/opdefs/sput_69.d
index 89302eb..323a72e 100644
--- a/plugins/dalvik/opdefs/sput_69.d
+++ b/plugins/dalvik/v35/opdefs/sput_69.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sput-object
+@id 105
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sput_6a.d b/plugins/dalvik/v35/opdefs/sput_6a.d
index 91f5f4f..62a0aa6 100644
--- a/plugins/dalvik/opdefs/sput_6a.d
+++ b/plugins/dalvik/v35/opdefs/sput_6a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sput-boolean
+@id 106
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sput_6b.d b/plugins/dalvik/v35/opdefs/sput_6b.d
index 72338a0..104e75e 100644
--- a/plugins/dalvik/opdefs/sput_6b.d
+++ b/plugins/dalvik/v35/opdefs/sput_6b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sput-byte
+@id 107
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sput_6c.d b/plugins/dalvik/v35/opdefs/sput_6c.d
index 1f0a7c5..26814c5 100644
--- a/plugins/dalvik/opdefs/sput_6c.d
+++ b/plugins/dalvik/v35/opdefs/sput_6c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sput-char
+@id 108
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sput_6d.d b/plugins/dalvik/v35/opdefs/sput_6d.d
index d164858..ab9f6ee 100644
--- a/plugins/dalvik/opdefs/sput_6d.d
+++ b/plugins/dalvik/v35/opdefs/sput_6d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sput-short
+@id 109
+
+@desc {
+
+ Perform the identified object static field operation with the identified static field, loading or storing into the value register.
+
+<b>Note:</b> These opbs are reasonable candidates for static linking, altering the field argument to be a more direct offset.
+
+}
+
@encoding() {
@format 21c | pool_field
diff --git a/plugins/dalvik/opdefs/sub_91.d b/plugins/dalvik/v35/opdefs/sub_91.d
index 34fd476..1c64a8e 100644
--- a/plugins/dalvik/opdefs/sub_91.d
+++ b/plugins/dalvik/v35/opdefs/sub_91.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sub-int
+@id 145
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/sub_9c.d b/plugins/dalvik/v35/opdefs/sub_9c.d
index 566cb80..98c4032 100644
--- a/plugins/dalvik/opdefs/sub_9c.d
+++ b/plugins/dalvik/v35/opdefs/sub_9c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sub-long
+@id 156
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/sub_a7.d b/plugins/dalvik/v35/opdefs/sub_a7.d
index 22851c6..eb148cd 100644
--- a/plugins/dalvik/opdefs/sub_a7.d
+++ b/plugins/dalvik/v35/opdefs/sub_a7.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sub-float
+@id 167
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/sub_ac.d b/plugins/dalvik/v35/opdefs/sub_ac.d
index c818423..9af3ef9 100644
--- a/plugins/dalvik/opdefs/sub_ac.d
+++ b/plugins/dalvik/v35/opdefs/sub_ac.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sub-double
+@id 172
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/sub_b1.d b/plugins/dalvik/v35/opdefs/sub_b1.d
index 4102367..a6edde2 100644
--- a/plugins/dalvik/opdefs/sub_b1.d
+++ b/plugins/dalvik/v35/opdefs/sub_b1.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sub-int/2addr
+@id 177
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/sub_bc.d b/plugins/dalvik/v35/opdefs/sub_bc.d
index b0a22ae..62a7f80 100644
--- a/plugins/dalvik/opdefs/sub_bc.d
+++ b/plugins/dalvik/v35/opdefs/sub_bc.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sub-long/2addr
+@id 188
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/sub_c7.d b/plugins/dalvik/v35/opdefs/sub_c7.d
index dc8fd47..072f960 100644
--- a/plugins/dalvik/opdefs/sub_c7.d
+++ b/plugins/dalvik/v35/opdefs/sub_c7.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sub-float/2addr
+@id 199
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/sub_cc.d b/plugins/dalvik/v35/opdefs/sub_cc.d
index d24b702..6d68bf1 100644
--- a/plugins/dalvik/opdefs/sub_cc.d
+++ b/plugins/dalvik/v35/opdefs/sub_cc.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title sub-double/2addr
+@id 204
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/switch_2b.d b/plugins/dalvik/v35/opdefs/switch_2b.d
index 2ff6b33..21111d7 100644
--- a/plugins/dalvik/opdefs/switch_2b.d
+++ b/plugins/dalvik/v35/opdefs/switch_2b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title packed-switch
+@id 43
+
+@desc {
+
+ Jump to a new instruction based on the value in the given register, using a table of offsets corresponding to each value in a particular integral range, or fall through to the next instruction if there is no match.
+
+}
+
@encoding() {
@format 31t
diff --git a/plugins/dalvik/opdefs/switch_2c.d b/plugins/dalvik/v35/opdefs/switch_2c.d
index 0a4d248..66b6052 100644
--- a/plugins/dalvik/opdefs/switch_2c.d
+++ b/plugins/dalvik/v35/opdefs/switch_2c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title sparse-switch
+@id 44
+
+@desc {
+
+ Jump to a new instruction based on the value in the given register, using an ordered table of value-offset pairs, or fall through to the next instruction if there is no match.
+
+}
+
@encoding() {
@format 31t
diff --git a/plugins/dalvik/opdefs/throw_27.d b/plugins/dalvik/v35/opdefs/throw_27.d
index 79c71dd..91c176f 100644
--- a/plugins/dalvik/opdefs/throw_27.d
+++ b/plugins/dalvik/v35/opdefs/throw_27.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,13 +23,25 @@
@title throw
+@id 39
+
+@desc {
+
+ Throw the indicated exception.
+
+}
+
@encoding() {
@format 11x
- @rules {
+ @syntax {
+
+ @rules {
+
+ call g_arch_instruction_set_flag(AIF_RETURN_POINT)
- call SetInsFlag(AIF_RETURN_POINT)
+ }
}
diff --git a/plugins/dalvik/opdefs/to_81.d b/plugins/dalvik/v35/opdefs/to_81.d
index e1b45b3..6e87d13 100644
--- a/plugins/dalvik/opdefs/to_81.d
+++ b/plugins/dalvik/v35/opdefs/to_81.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title int-to-long
+@id 129
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_82.d b/plugins/dalvik/v35/opdefs/to_82.d
index 4d5e667..a0c2500 100644
--- a/plugins/dalvik/opdefs/to_82.d
+++ b/plugins/dalvik/v35/opdefs/to_82.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title int-to-float
+@id 130
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_83.d b/plugins/dalvik/v35/opdefs/to_83.d
index 6f764c1..81931e4 100644
--- a/plugins/dalvik/opdefs/to_83.d
+++ b/plugins/dalvik/v35/opdefs/to_83.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title int-to-double
+@id 131
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_84.d b/plugins/dalvik/v35/opdefs/to_84.d
index f3076ae..2694224 100644
--- a/plugins/dalvik/opdefs/to_84.d
+++ b/plugins/dalvik/v35/opdefs/to_84.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title long-to-int
+@id 132
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_85.d b/plugins/dalvik/v35/opdefs/to_85.d
index 3ac252c..81a572b 100644
--- a/plugins/dalvik/opdefs/to_85.d
+++ b/plugins/dalvik/v35/opdefs/to_85.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title long-to-float
+@id 133
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_86.d b/plugins/dalvik/v35/opdefs/to_86.d
index 80e9a28..34df6de 100644
--- a/plugins/dalvik/opdefs/to_86.d
+++ b/plugins/dalvik/v35/opdefs/to_86.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title long-to-double
+@id 134
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_87.d b/plugins/dalvik/v35/opdefs/to_87.d
index 55028e3..06fb58f 100644
--- a/plugins/dalvik/opdefs/to_87.d
+++ b/plugins/dalvik/v35/opdefs/to_87.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title float-to-int
+@id 135
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_88.d b/plugins/dalvik/v35/opdefs/to_88.d
index 2eaa85b..c0d2306 100644
--- a/plugins/dalvik/opdefs/to_88.d
+++ b/plugins/dalvik/v35/opdefs/to_88.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title float-to-long
+@id 136
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_89.d b/plugins/dalvik/v35/opdefs/to_89.d
index 147f280..5f6a64c 100644
--- a/plugins/dalvik/opdefs/to_89.d
+++ b/plugins/dalvik/v35/opdefs/to_89.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title float-to-double
+@id 137
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_8a.d b/plugins/dalvik/v35/opdefs/to_8a.d
index c089942..263c51d 100644
--- a/plugins/dalvik/opdefs/to_8a.d
+++ b/plugins/dalvik/v35/opdefs/to_8a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title double-to-int
+@id 138
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_8b.d b/plugins/dalvik/v35/opdefs/to_8b.d
index e60ba2f..def5dc1 100644
--- a/plugins/dalvik/opdefs/to_8b.d
+++ b/plugins/dalvik/v35/opdefs/to_8b.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title double-to-long
+@id 139
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_8c.d b/plugins/dalvik/v35/opdefs/to_8c.d
index b7ee496..4af8de3 100644
--- a/plugins/dalvik/opdefs/to_8c.d
+++ b/plugins/dalvik/v35/opdefs/to_8c.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title double-to-float
+@id 140
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_8d.d b/plugins/dalvik/v35/opdefs/to_8d.d
index 28a194e..fb70951 100644
--- a/plugins/dalvik/opdefs/to_8d.d
+++ b/plugins/dalvik/v35/opdefs/to_8d.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title int-to-byte
+@id 141
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_8e.d b/plugins/dalvik/v35/opdefs/to_8e.d
index c8b2598..bea9c71 100644
--- a/plugins/dalvik/opdefs/to_8e.d
+++ b/plugins/dalvik/v35/opdefs/to_8e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title int-to-char
+@id 142
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/to_8f.d b/plugins/dalvik/v35/opdefs/to_8f.d
index 697c102..82e25d1 100644
--- a/plugins/dalvik/opdefs/to_8f.d
+++ b/plugins/dalvik/v35/opdefs/to_8f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,14 @@
@title int-to-short
+@id 143
+
+@desc {
+
+ Perform the identified unary operation on the source register, storing the result in the destination register.
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/add_9b.d b/plugins/dalvik/v35/opdefs/unused_3e.d
index fc40b13..2833fbb 100644
--- a/plugins/dalvik/opdefs/add_9b.d
+++ b/plugins/dalvik/v35/opdefs/unused_3e.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -21,10 +21,12 @@
*/
-@title add-long
+@title unused-3e
+
+@id 62
@encoding() {
- @format 23x
+ @unused 10x
}
diff --git a/plugins/dalvik/opdefs/add_ab.d b/plugins/dalvik/v35/opdefs/unused_3f.d
index 1506483..5f6a66d 100644
--- a/plugins/dalvik/opdefs/add_ab.d
+++ b/plugins/dalvik/v35/opdefs/unused_3f.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -21,10 +21,12 @@
*/
-@title add-double
+@title unused-3f
+
+@id 63
@encoding() {
- @format 23x
+ @unused 10x
}
diff --git a/plugins/dalvik/opdefs/add_a6.d b/plugins/dalvik/v35/opdefs/unused_40.d
index 055358b..3c93565 100644
--- a/plugins/dalvik/opdefs/add_a6.d
+++ b/plugins/dalvik/v35/opdefs/unused_40.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -21,10 +21,12 @@
*/
-@title add-float
+@title unused-40
+
+@id 64
@encoding() {
- @format 23x
+ @unused 10x
}
diff --git a/plugins/dalvik/opdefs/add_90.d b/plugins/dalvik/v35/opdefs/unused_41.d
index 04168ab..cad2943 100644
--- a/plugins/dalvik/opdefs/add_90.d
+++ b/plugins/dalvik/v35/opdefs/unused_41.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -21,10 +21,12 @@
*/
-@title add-int
+@title unused-41
+
+@id 65
@encoding() {
- @format 23x
+ @unused 10x
}
diff --git a/plugins/dalvik/v35/opdefs/unused_42.d b/plugins/dalvik/v35/opdefs/unused_42.d
new file mode 100644
index 0000000..5e4b2c0
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_42.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-42
+
+@id 66
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_43.d b/plugins/dalvik/v35/opdefs/unused_43.d
new file mode 100644
index 0000000..c339cec
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_43.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-43
+
+@id 67
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_73.d b/plugins/dalvik/v35/opdefs/unused_73.d
new file mode 100644
index 0000000..09caa65
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_73.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-73
+
+@id 115
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_79.d b/plugins/dalvik/v35/opdefs/unused_79.d
new file mode 100644
index 0000000..063bbfb
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_79.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-79
+
+@id 121
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_7a.d b/plugins/dalvik/v35/opdefs/unused_7a.d
new file mode 100644
index 0000000..50f2d95
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_7a.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-7a
+
+@id 122
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_e3.d b/plugins/dalvik/v35/opdefs/unused_e3.d
new file mode 100644
index 0000000..e27f926
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_e3.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-e3
+
+@id 227
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_e4.d b/plugins/dalvik/v35/opdefs/unused_e4.d
new file mode 100644
index 0000000..4c90e6a
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_e4.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-e4
+
+@id 228
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_e5.d b/plugins/dalvik/v35/opdefs/unused_e5.d
new file mode 100644
index 0000000..e780c20
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_e5.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-e5
+
+@id 229
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_e6.d b/plugins/dalvik/v35/opdefs/unused_e6.d
new file mode 100644
index 0000000..44d6e29
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_e6.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-e6
+
+@id 230
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_e7.d b/plugins/dalvik/v35/opdefs/unused_e7.d
new file mode 100644
index 0000000..6d3fff7
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_e7.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-e7
+
+@id 231
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_e8.d b/plugins/dalvik/v35/opdefs/unused_e8.d
new file mode 100644
index 0000000..f91c2e9
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_e8.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-e8
+
+@id 232
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_e9.d b/plugins/dalvik/v35/opdefs/unused_e9.d
new file mode 100644
index 0000000..6304670
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_e9.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-e9
+
+@id 233
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_ea.d b/plugins/dalvik/v35/opdefs/unused_ea.d
new file mode 100644
index 0000000..055a5e0
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_ea.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-ea
+
+@id 234
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_eb.d b/plugins/dalvik/v35/opdefs/unused_eb.d
new file mode 100644
index 0000000..12cfd34
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_eb.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-eb
+
+@id 235
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_ec.d b/plugins/dalvik/v35/opdefs/unused_ec.d
new file mode 100644
index 0000000..b00c7bf
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_ec.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-ec
+
+@id 236
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_ed.d b/plugins/dalvik/v35/opdefs/unused_ed.d
new file mode 100644
index 0000000..94e7627
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_ed.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-ed
+
+@id 237
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_ee.d b/plugins/dalvik/v35/opdefs/unused_ee.d
new file mode 100644
index 0000000..580cbe8
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_ee.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-ee
+
+@id 238
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_ef.d b/plugins/dalvik/v35/opdefs/unused_ef.d
new file mode 100644
index 0000000..a04663b
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_ef.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-ef
+
+@id 239
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f0.d b/plugins/dalvik/v35/opdefs/unused_f0.d
new file mode 100644
index 0000000..c238d44
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f0.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f0
+
+@id 240
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f1.d b/plugins/dalvik/v35/opdefs/unused_f1.d
new file mode 100644
index 0000000..405a792
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f1.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f1
+
+@id 241
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f2.d b/plugins/dalvik/v35/opdefs/unused_f2.d
new file mode 100644
index 0000000..58df50c
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f2.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f2
+
+@id 242
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f3.d b/plugins/dalvik/v35/opdefs/unused_f3.d
new file mode 100644
index 0000000..51280d7
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f3.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f3
+
+@id 243
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f4.d b/plugins/dalvik/v35/opdefs/unused_f4.d
new file mode 100644
index 0000000..015d988
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f4.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f4
+
+@id 244
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f5.d b/plugins/dalvik/v35/opdefs/unused_f5.d
new file mode 100644
index 0000000..63c6fd1
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f5.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f5
+
+@id 245
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f6.d b/plugins/dalvik/v35/opdefs/unused_f6.d
new file mode 100644
index 0000000..405c363
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f6.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f6
+
+@id 246
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f7.d b/plugins/dalvik/v35/opdefs/unused_f7.d
new file mode 100644
index 0000000..67ded78
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f7.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f7
+
+@id 247
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f8.d b/plugins/dalvik/v35/opdefs/unused_f8.d
new file mode 100644
index 0000000..aadd8a8
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f8.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f8
+
+@id 248
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_f9.d b/plugins/dalvik/v35/opdefs/unused_f9.d
new file mode 100644
index 0000000..84c8855
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_f9.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-f9
+
+@id 249
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_fa.d b/plugins/dalvik/v35/opdefs/unused_fa.d
new file mode 100644
index 0000000..66053c7
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_fa.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-fa
+
+@id 250
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_fb.d b/plugins/dalvik/v35/opdefs/unused_fb.d
new file mode 100644
index 0000000..e0521e6
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_fb.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-fb
+
+@id 251
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_fc.d b/plugins/dalvik/v35/opdefs/unused_fc.d
new file mode 100644
index 0000000..3b58e64
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_fc.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-fc
+
+@id 252
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_fd.d b/plugins/dalvik/v35/opdefs/unused_fd.d
new file mode 100644
index 0000000..7c2a0f2
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_fd.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-fd
+
+@id 253
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_fe.d b/plugins/dalvik/v35/opdefs/unused_fe.d
new file mode 100644
index 0000000..e470bae
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_fe.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-fe
+
+@id 254
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/v35/opdefs/unused_ff.d b/plugins/dalvik/v35/opdefs/unused_ff.d
new file mode 100644
index 0000000..ef0126d
--- /dev/null
+++ b/plugins/dalvik/v35/opdefs/unused_ff.d
@@ -0,0 +1,32 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * ##FILE## - traduction d'instructions Dalvik
+ *
+ * Copyright (C) 2018 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 unused-ff
+
+@id 255
+
+@encoding() {
+
+ @unused 10x
+
+}
diff --git a/plugins/dalvik/opdefs/ushr_9a.d b/plugins/dalvik/v35/opdefs/ushr_9a.d
index d3f48ba..234ad7b 100644
--- a/plugins/dalvik/opdefs/ushr_9a.d
+++ b/plugins/dalvik/v35/opdefs/ushr_9a.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title ushr-int
+@id 154
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/ushr_a5.d b/plugins/dalvik/v35/opdefs/ushr_a5.d
index 11578c3..8ada091 100644
--- a/plugins/dalvik/opdefs/ushr_a5.d
+++ b/plugins/dalvik/v35/opdefs/ushr_a5.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title ushr-long
+@id 165
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/ushr_ba.d b/plugins/dalvik/v35/opdefs/ushr_ba.d
index d9c0ab7..f5061e2 100644
--- a/plugins/dalvik/opdefs/ushr_ba.d
+++ b/plugins/dalvik/v35/opdefs/ushr_ba.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title ushr-int/2addr
+@id 186
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/ushr_c5.d b/plugins/dalvik/v35/opdefs/ushr_c5.d
index b0117a7..322591b 100644
--- a/plugins/dalvik/opdefs/ushr_c5.d
+++ b/plugins/dalvik/v35/opdefs/ushr_c5.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title ushr-long/2addr
+@id 197
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/ushr_e2.d b/plugins/dalvik/v35/opdefs/ushr_e2.d
index 5ade4f7..06fcdc7 100644
--- a/plugins/dalvik/opdefs/ushr_e2.d
+++ b/plugins/dalvik/v35/opdefs/ushr_e2.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title ushr-int/lit8
+@id 226
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/opdefs/xor_97.d b/plugins/dalvik/v35/opdefs/xor_97.d
index 3bdfc05..c813a50 100644
--- a/plugins/dalvik/opdefs/xor_97.d
+++ b/plugins/dalvik/v35/opdefs/xor_97.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title xor-int
+@id 151
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/xor_a2.d b/plugins/dalvik/v35/opdefs/xor_a2.d
index d651f66..045aa47 100644
--- a/plugins/dalvik/opdefs/xor_a2.d
+++ b/plugins/dalvik/v35/opdefs/xor_a2.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title xor-long
+@id 162
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the destination register.
+
+<b>Note:</b> Contrary to other <b>-long</b> mathematical operations (which take register pairs for both their first and their second source), <b>shl-long</b>, <b>shr-long</b>, and <b>ushr-long</b> take a register pair for their first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 23x
diff --git a/plugins/dalvik/opdefs/xor_b7.d b/plugins/dalvik/v35/opdefs/xor_b7.d
index b42da76..0425e1d 100644
--- a/plugins/dalvik/opdefs/xor_b7.d
+++ b/plugins/dalvik/v35/opdefs/xor_b7.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title xor-int/2addr
+@id 183
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/xor_c2.d b/plugins/dalvik/v35/opdefs/xor_c2.d
index 3fd2660..76b6a05 100644
--- a/plugins/dalvik/opdefs/xor_c2.d
+++ b/plugins/dalvik/v35/opdefs/xor_c2.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title xor-long/2addr
+@id 194
+
+@desc {
+
+ Perform the identified binary operation on the two source registers, storing the result in the first source register.
+
+<b>Note:</b> Contrary to other <b>-long/2addr</b> mathematical operations (which take register pairs for both their destination/first source and their second source), <b>shl-long/2addr</b>, <b>shr-long/2addr</b>, and <b>ushr-long/2addr</b> take a register pair for their destination/first source (the value to be shifted), but a single register for their second source (the shifting distance).
+
+}
+
@encoding() {
@format 12x
diff --git a/plugins/dalvik/opdefs/xor_d7.d b/plugins/dalvik/v35/opdefs/xor_d7.d
index 2351a21..5b2c637 100644
--- a/plugins/dalvik/opdefs/xor_d7.d
+++ b/plugins/dalvik/v35/opdefs/xor_d7.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title xor-int/lit16
+@id 215
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> <b>rsub-int</b> does not have a suffix since this version is the main opb of its family. Also, see below for details on its semantics.
+
+}
+
@encoding() {
@format 22s
diff --git a/plugins/dalvik/opdefs/xor_df.d b/plugins/dalvik/v35/opdefs/xor_df.d
index 04443f7..cd0d5d3 100644
--- a/plugins/dalvik/opdefs/xor_df.d
+++ b/plugins/dalvik/v35/opdefs/xor_df.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions Dalvik
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,6 +23,16 @@
@title xor-int/lit8
+@id 223
+
+@desc {
+
+ Perform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.
+
+<b>Note:</b> See below for details on the semantics of <b>rsub-int</b>.
+
+}
+
@encoding() {
@format 22b
diff --git a/plugins/dalvik/v35/operand.h b/plugins/dalvik/v35/operand.h
new file mode 100644
index 0000000..e2bc5e3
--- /dev/null
+++ b/plugins/dalvik/v35/operand.h
@@ -0,0 +1,37 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * operand.h - prototypes pour l'aide à la création d'opérandes Dalvik v35
+ *
+ * Copyright (C) 2018 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/>.
+ */
+
+
+#ifndef _PLUGINS_DALVIK_V35_OPERAND_H
+#define _PLUGINS_DALVIK_V35_OPERAND_H
+
+
+#include "../operand.h"
+
+
+
+/* Procède à la lecture d'opérandes pour une instruction. */
+#define dalvik35_read_operands dalvik_read_operands
+
+
+
+#endif /* _PLUGINS_DALVIK_V35_OPERAND_H */
diff --git a/plugins/dalvik/v35/processor.c b/plugins/dalvik/v35/processor.c
new file mode 100644
index 0000000..17d447a
--- /dev/null
+++ b/plugins/dalvik/v35/processor.c
@@ -0,0 +1,494 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * processor.c - manipulation du processeur de la VM Dalvik
+ *
+ * Copyright (C) 2018 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/>.
+ */
+
+
+#include "processor.h"
+
+
+#include <assert.h>
+
+
+#include "instruction.h"
+#include "opcodes/identifiers.h"
+#include "opcodes/opcodes.h"
+#include "../processor-int.h"
+#include "../pseudo/fill.h"
+#include "../pseudo/switch.h"
+
+
+
+/* Définition du processeur de la VM Dalvik v35 (instance) */
+struct _GDalvik35Processor
+{
+ GDalvikProcessor parent; /* Instance parente */
+
+};
+
+
+/* Définition du processeur de la VM Dalvik v35 (classe) */
+struct _GDalvik35ProcessorClass
+{
+ GDalvikProcessorClass parent; /* Classe parente */
+
+};
+
+
+/* Initialise la classe des processeurs de VM Dalvik v35. */
+static void g_dalvik35_processor_class_init(GDalvik35ProcessorClass *);
+
+/* Initialise une instance de processeur de VM Dalvik v35. */
+static void g_dalvik35_processor_init(GDalvik35Processor *);
+
+/* Supprime toutes les références externes. */
+static void g_dalvik35_processor_dispose(GDalvik35Processor *);
+
+/* Procède à la libération totale de la mémoire. */
+static void g_dalvik35_processor_finalize(GDalvik35Processor *);
+
+/* Décode une instruction dans un flux de données. */
+static GArchInstruction *g_dalvik35_processor_disassemble(const GArchProcessor *, GDalvikContext *, const GBinContent *, vmpa2t *, GExeFormat *);
+
+
+
+/* Indique le type défini par la GLib pour le processeur Dalvik v35. */
+G_DEFINE_TYPE(GDalvik35Processor, g_dalvik35_processor, G_TYPE_DALVIK_PROCESSOR);
+
+
+/******************************************************************************
+* *
+* Paramètres : klass = classe à initialiser. *
+* *
+* Description : Initialise la classe des processeurs de VM Dalvik v35. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_dalvik35_processor_class_init(GDalvik35ProcessorClass *klass)
+{
+ GObjectClass *object; /* Autre version de la classe */
+ GArchProcessorClass *proc; /* Encore une autre vision... */
+
+ object = G_OBJECT_CLASS(klass);
+
+ object->dispose = (GObjectFinalizeFunc/* ! */)g_dalvik35_processor_dispose;
+ object->finalize = (GObjectFinalizeFunc)g_dalvik35_processor_finalize;
+
+ proc = G_ARCH_PROCESSOR_CLASS(klass);
+
+ proc->disassemble = (disass_instr_fc)g_dalvik35_processor_disassemble;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : proc = instance à initialiser. *
+* *
+* Description : Initialise une instance de processeur de VM Dalvik v35. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_dalvik35_processor_init(GDalvik35Processor *proc)
+{
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : proc = instance d'objet GLib à traiter. *
+* *
+* Description : Supprime toutes les références externes. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_dalvik35_processor_dispose(GDalvik35Processor *proc)
+{
+ G_OBJECT_CLASS(g_dalvik35_processor_parent_class)->dispose(G_OBJECT(proc));
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : bookmark = instance d'objet GLib à traiter. *
+* *
+* Description : Procède à la libération totale de la mémoire. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_dalvik35_processor_finalize(GDalvik35Processor *proc)
+{
+ G_OBJECT_CLASS(g_dalvik35_processor_parent_class)->finalize(G_OBJECT(proc));
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : - *
+* *
+* Description : Crée le support de l'architecture Dalvik v35. *
+* *
+* Retour : Architecture mise en place. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GArchProcessor *g_dalvik35_processor_new(void)
+{
+ GArchProcessor *result; /* Structure à retourner */
+
+ result = g_object_new(G_TYPE_DALVIK_PROCESSOR, NULL);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* 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ésassemble une instruction dans un flux de données. *
+* *
+* Retour : Instruction mise en place ou NULL en cas d'échec. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static GArchInstruction *g_dalvik35_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 */
+ Dalvik35Opcodes id; /* Identifiant d'instruction */
+
+ static const disass_instr_fc decodings[DOP35_COUNT] = {
+
+ [DOP35_NOP] = dalvik35_read_instr_nop,
+ [DOP35_MOVE] = dalvik35_read_instr_move,
+ [DOP35_MOVE_FROM16] = dalvik35_read_instr_move_from16,
+ [DOP35_MOVE_16] = dalvik35_read_instr_move_16,
+ [DOP35_MOVE_WIDE] = dalvik35_read_instr_move_wide,
+ [DOP35_MOVE_WIDE_FROM16] = dalvik35_read_instr_move_wide_from16,
+ [DOP35_MOVE_WIDE_16] = dalvik35_read_instr_move_wide_16,
+ [DOP35_MOVE_OBJECT] = dalvik35_read_instr_move_object,
+ [DOP35_MOVE_OBJECT_FROM16] = dalvik35_read_instr_move_object_from16,
+ [DOP35_MOVE_OBJECT_16] = dalvik35_read_instr_move_object_16,
+ [DOP35_MOVE_RESULT] = dalvik35_read_instr_move_result,
+ [DOP35_MOVE_RESULT_WIDE] = dalvik35_read_instr_move_result_wide,
+ [DOP35_MOVE_RESULT_OBJECT] = dalvik35_read_instr_move_result_object,
+ [DOP35_MOVE_EXCEPTION] = dalvik35_read_instr_move_exception,
+ [DOP35_RETURN_VOID] = dalvik35_read_instr_return_void,
+ [DOP35_RETURN] = dalvik35_read_instr_return,
+ [DOP35_RETURN_WIDE] = dalvik35_read_instr_return_wide,
+ [DOP35_RETURN_OBJECT] = dalvik35_read_instr_return_object,
+ [DOP35_CONST_4] = dalvik35_read_instr_const_4,
+ [DOP35_CONST_16] = dalvik35_read_instr_const_16,
+ [DOP35_CONST] = dalvik35_read_instr_const,
+ [DOP35_CONST_HIGH16] = dalvik35_read_instr_const_high16,
+ [DOP35_CONST_WIDE_16] = dalvik35_read_instr_const_wide_16,
+ [DOP35_CONST_WIDE_32] = dalvik35_read_instr_const_wide_32,
+ [DOP35_CONST_WIDE] = dalvik35_read_instr_const_wide,
+ [DOP35_CONST_WIDE_HIGH16] = dalvik35_read_instr_const_wide_high16,
+ [DOP35_CONST_STRING] = dalvik35_read_instr_const_string,
+ [DOP35_CONST_STRING_JUMBO] = dalvik35_read_instr_const_string_jumbo,
+ [DOP35_CONST_CLASS] = dalvik35_read_instr_const_class,
+ [DOP35_MONITOR_ENTER] = dalvik35_read_instr_monitor_enter,
+ [DOP35_MONITOR_EXIT] = dalvik35_read_instr_monitor_exit,
+ [DOP35_CHECK_CAST] = dalvik35_read_instr_check_cast,
+ [DOP35_INSTANCE_OF] = dalvik35_read_instr_instance_of,
+ [DOP35_ARRAY_LENGTH] = dalvik35_read_instr_array_length,
+ [DOP35_NEW_INSTANCE] = dalvik35_read_instr_new_instance,
+ [DOP35_NEW_ARRAY] = dalvik35_read_instr_new_array,
+ [DOP35_FILLED_NEW_ARRAY] = dalvik35_read_instr_filled_new_array,
+ [DOP35_FILLED_NEW_ARRAY_RANGE] = dalvik35_read_instr_filled_new_array_range,
+ [DOP35_FILL_ARRAY_DATA] = dalvik35_read_instr_fill_array_data,
+ [DOP35_THROW] = dalvik35_read_instr_throw,
+ [DOP35_GOTO] = dalvik35_read_instr_goto,
+ [DOP35_GOTO_16] = dalvik35_read_instr_goto_16,
+ [DOP35_GOTO_32] = dalvik35_read_instr_goto_32,
+ [DOP35_PACKED_SWITCH] = dalvik35_read_instr_packed_switch,
+ [DOP35_SPARSE_SWITCH] = dalvik35_read_instr_sparse_switch,
+ [DOP35_CMPL_FLOAT] = dalvik35_read_instr_cmpl_float,
+ [DOP35_CMPG_FLOAT] = dalvik35_read_instr_cmpg_float,
+ [DOP35_CMPL_DOUBLE] = dalvik35_read_instr_cmpl_double,
+ [DOP35_CMPG_DOUBLE] = dalvik35_read_instr_cmpg_double,
+ [DOP35_CMP_LONG] = dalvik35_read_instr_cmp_long,
+ [DOP35_IF_EQ] = dalvik35_read_instr_if_eq,
+ [DOP35_IF_NE] = dalvik35_read_instr_if_ne,
+ [DOP35_IF_LT] = dalvik35_read_instr_if_lt,
+ [DOP35_IF_GE] = dalvik35_read_instr_if_ge,
+ [DOP35_IF_GT] = dalvik35_read_instr_if_gt,
+ [DOP35_IF_LE] = dalvik35_read_instr_if_le,
+ [DOP35_IF_EQZ] = dalvik35_read_instr_if_eqz,
+ [DOP35_IF_NEZ] = dalvik35_read_instr_if_nez,
+ [DOP35_IF_LTZ] = dalvik35_read_instr_if_ltz,
+ [DOP35_IF_GEZ] = dalvik35_read_instr_if_gez,
+ [DOP35_IF_GTZ] = dalvik35_read_instr_if_gtz,
+ [DOP35_IF_LEZ] = dalvik35_read_instr_if_lez,
+ [DOP35_UNUSED_3E] = dalvik35_read_instr_unused_3e,
+ [DOP35_UNUSED_3F] = dalvik35_read_instr_unused_3f,
+ [DOP35_UNUSED_40] = dalvik35_read_instr_unused_40,
+ [DOP35_UNUSED_41] = dalvik35_read_instr_unused_41,
+ [DOP35_UNUSED_42] = dalvik35_read_instr_unused_42,
+ [DOP35_UNUSED_43] = dalvik35_read_instr_unused_43,
+ [DOP35_AGET] = dalvik35_read_instr_aget,
+ [DOP35_AGET_WIDE] = dalvik35_read_instr_aget_wide,
+ [DOP35_AGET_OBJECT] = dalvik35_read_instr_aget_object,
+ [DOP35_AGET_BOOLEAN] = dalvik35_read_instr_aget_boolean,
+ [DOP35_AGET_BYTE] = dalvik35_read_instr_aget_byte,
+ [DOP35_AGET_CHAR] = dalvik35_read_instr_aget_char,
+ [DOP35_AGET_SHORT] = dalvik35_read_instr_aget_short,
+ [DOP35_APUT] = dalvik35_read_instr_aput,
+ [DOP35_APUT_WIDE] = dalvik35_read_instr_aput_wide,
+ [DOP35_APUT_OBJECT] = dalvik35_read_instr_aput_object,
+ [DOP35_APUT_BOOLEAN] = dalvik35_read_instr_aput_boolean,
+ [DOP35_APUT_BYTE] = dalvik35_read_instr_aput_byte,
+ [DOP35_APUT_CHAR] = dalvik35_read_instr_aput_char,
+ [DOP35_APUT_SHORT] = dalvik35_read_instr_aput_short,
+ [DOP35_IGET] = dalvik35_read_instr_iget,
+ [DOP35_IGET_WIDE] = dalvik35_read_instr_iget_wide,
+ [DOP35_IGET_OBJECT] = dalvik35_read_instr_iget_object,
+ [DOP35_IGET_BOOLEAN] = dalvik35_read_instr_iget_boolean,
+ [DOP35_IGET_BYTE] = dalvik35_read_instr_iget_byte,
+ [DOP35_IGET_CHAR] = dalvik35_read_instr_iget_char,
+ [DOP35_IGET_SHORT] = dalvik35_read_instr_iget_short,
+ [DOP35_IPUT] = dalvik35_read_instr_iput,
+ [DOP35_IPUT_WIDE] = dalvik35_read_instr_iput_wide,
+ [DOP35_IPUT_OBJECT] = dalvik35_read_instr_iput_object,
+ [DOP35_IPUT_BOOLEAN] = dalvik35_read_instr_iput_boolean,
+ [DOP35_IPUT_BYTE] = dalvik35_read_instr_iput_byte,
+ [DOP35_IPUT_CHAR] = dalvik35_read_instr_iput_char,
+ [DOP35_IPUT_SHORT] = dalvik35_read_instr_iput_short,
+ [DOP35_SGET] = dalvik35_read_instr_sget,
+ [DOP35_SGET_WIDE] = dalvik35_read_instr_sget_wide,
+ [DOP35_SGET_OBJECT] = dalvik35_read_instr_sget_object,
+ [DOP35_SGET_BOOLEAN] = dalvik35_read_instr_sget_boolean,
+ [DOP35_SGET_BYTE] = dalvik35_read_instr_sget_byte,
+ [DOP35_SGET_CHAR] = dalvik35_read_instr_sget_char,
+ [DOP35_SGET_SHORT] = dalvik35_read_instr_sget_short,
+ [DOP35_SPUT] = dalvik35_read_instr_sput,
+ [DOP35_SPUT_WIDE] = dalvik35_read_instr_sput_wide,
+ [DOP35_SPUT_OBJECT] = dalvik35_read_instr_sput_object,
+ [DOP35_SPUT_BOOLEAN] = dalvik35_read_instr_sput_boolean,
+ [DOP35_SPUT_BYTE] = dalvik35_read_instr_sput_byte,
+ [DOP35_SPUT_CHAR] = dalvik35_read_instr_sput_char,
+ [DOP35_SPUT_SHORT] = dalvik35_read_instr_sput_short,
+ [DOP35_INVOKE_VIRTUAL] = dalvik35_read_instr_invoke_virtual,
+ [DOP35_INVOKE_SUPER] = dalvik35_read_instr_invoke_super,
+ [DOP35_INVOKE_DIRECT] = dalvik35_read_instr_invoke_direct,
+ [DOP35_INVOKE_STATIC] = dalvik35_read_instr_invoke_static,
+ [DOP35_INVOKE_INTERFACE] = dalvik35_read_instr_invoke_interface,
+ [DOP35_UNUSED_73] = dalvik35_read_instr_unused_73,
+ [DOP35_INVOKE_VIRTUAL_RANGE] = dalvik35_read_instr_invoke_virtual_range,
+ [DOP35_INVOKE_SUPER_RANGE] = dalvik35_read_instr_invoke_super_range,
+ [DOP35_INVOKE_DIRECT_RANGE] = dalvik35_read_instr_invoke_direct_range,
+ [DOP35_INVOKE_STATIC_RANGE] = dalvik35_read_instr_invoke_static_range,
+ [DOP35_INVOKE_INTERFACE_RANGE] = dalvik35_read_instr_invoke_interface_range,
+ [DOP35_UNUSED_79] = dalvik35_read_instr_unused_79,
+ [DOP35_UNUSED_7A] = dalvik35_read_instr_unused_7a,
+ [DOP35_NEG_INT] = dalvik35_read_instr_neg_int,
+ [DOP35_NOT_INT] = dalvik35_read_instr_not_int,
+ [DOP35_NEG_LONG] = dalvik35_read_instr_neg_long,
+ [DOP35_NOT_LONG] = dalvik35_read_instr_not_long,
+ [DOP35_NEG_FLOAT] = dalvik35_read_instr_neg_float,
+ [DOP35_NEG_DOUBLE] = dalvik35_read_instr_neg_double,
+ [DOP35_INT_TO_LONG] = dalvik35_read_instr_int_to_long,
+ [DOP35_INT_TO_FLOAT] = dalvik35_read_instr_int_to_float,
+ [DOP35_INT_TO_DOUBLE] = dalvik35_read_instr_int_to_double,
+ [DOP35_LONG_TO_INT] = dalvik35_read_instr_long_to_int,
+ [DOP35_LONG_TO_FLOAT] = dalvik35_read_instr_long_to_float,
+ [DOP35_LONG_TO_DOUBLE] = dalvik35_read_instr_long_to_double,
+ [DOP35_FLOAT_TO_INT] = dalvik35_read_instr_float_to_int,
+ [DOP35_FLOAT_TO_LONG] = dalvik35_read_instr_float_to_long,
+ [DOP35_FLOAT_TO_DOUBLE] = dalvik35_read_instr_float_to_double,
+ [DOP35_DOUBLE_TO_INT] = dalvik35_read_instr_double_to_int,
+ [DOP35_DOUBLE_TO_LONG] = dalvik35_read_instr_double_to_long,
+ [DOP35_DOUBLE_TO_FLOAT] = dalvik35_read_instr_double_to_float,
+ [DOP35_INT_TO_BYTE] = dalvik35_read_instr_int_to_byte,
+ [DOP35_INT_TO_CHAR] = dalvik35_read_instr_int_to_char,
+ [DOP35_INT_TO_SHORT] = dalvik35_read_instr_int_to_short,
+ [DOP35_ADD_INT] = dalvik35_read_instr_add_int,
+ [DOP35_SUB_INT] = dalvik35_read_instr_sub_int,
+ [DOP35_MUL_INT] = dalvik35_read_instr_mul_int,
+ [DOP35_DIV_INT] = dalvik35_read_instr_div_int,
+ [DOP35_REM_INT] = dalvik35_read_instr_rem_int,
+ [DOP35_AND_INT] = dalvik35_read_instr_and_int,
+ [DOP35_OR_INT] = dalvik35_read_instr_or_int,
+ [DOP35_XOR_INT] = dalvik35_read_instr_xor_int,
+ [DOP35_SHL_INT] = dalvik35_read_instr_shl_int,
+ [DOP35_SHR_INT] = dalvik35_read_instr_shr_int,
+ [DOP35_USHR_INT] = dalvik35_read_instr_ushr_int,
+ [DOP35_ADD_LONG] = dalvik35_read_instr_add_long,
+ [DOP35_SUB_LONG] = dalvik35_read_instr_sub_long,
+ [DOP35_MUL_LONG] = dalvik35_read_instr_mul_long,
+ [DOP35_DIV_LONG] = dalvik35_read_instr_div_long,
+ [DOP35_REM_LONG] = dalvik35_read_instr_rem_long,
+ [DOP35_AND_LONG] = dalvik35_read_instr_and_long,
+ [DOP35_OR_LONG] = dalvik35_read_instr_or_long,
+ [DOP35_XOR_LONG] = dalvik35_read_instr_xor_long,
+ [DOP35_SHL_LONG] = dalvik35_read_instr_shl_long,
+ [DOP35_SHR_LONG] = dalvik35_read_instr_shr_long,
+ [DOP35_USHR_LONG] = dalvik35_read_instr_ushr_long,
+ [DOP35_ADD_FLOAT] = dalvik35_read_instr_add_float,
+ [DOP35_SUB_FLOAT] = dalvik35_read_instr_sub_float,
+ [DOP35_MUL_FLOAT] = dalvik35_read_instr_mul_float,
+ [DOP35_DIV_FLOAT] = dalvik35_read_instr_div_float,
+ [DOP35_REM_FLOAT] = dalvik35_read_instr_rem_float,
+ [DOP35_ADD_DOUBLE] = dalvik35_read_instr_add_double,
+ [DOP35_SUB_DOUBLE] = dalvik35_read_instr_sub_double,
+ [DOP35_MUL_DOUBLE] = dalvik35_read_instr_mul_double,
+ [DOP35_DIV_DOUBLE] = dalvik35_read_instr_div_double,
+ [DOP35_REM_DOUBLE] = dalvik35_read_instr_rem_double,
+ [DOP35_ADD_INT_2ADDR] = dalvik35_read_instr_add_int_2addr,
+ [DOP35_SUB_INT_2ADDR] = dalvik35_read_instr_sub_int_2addr,
+ [DOP35_MUL_INT_2ADDR] = dalvik35_read_instr_mul_int_2addr,
+ [DOP35_DIV_INT_2ADDR] = dalvik35_read_instr_div_int_2addr,
+ [DOP35_REM_INT_2ADDR] = dalvik35_read_instr_rem_int_2addr,
+ [DOP35_AND_INT_2ADDR] = dalvik35_read_instr_and_int_2addr,
+ [DOP35_OR_INT_2ADDR] = dalvik35_read_instr_or_int_2addr,
+ [DOP35_XOR_INT_2ADDR] = dalvik35_read_instr_xor_int_2addr,
+ [DOP35_SHL_INT_2ADDR] = dalvik35_read_instr_shl_int_2addr,
+ [DOP35_SHR_INT_2ADDR] = dalvik35_read_instr_shr_int_2addr,
+ [DOP35_USHR_INT_2ADDR] = dalvik35_read_instr_ushr_int_2addr,
+ [DOP35_ADD_LONG_2ADDR] = dalvik35_read_instr_add_long_2addr,
+ [DOP35_SUB_LONG_2ADDR] = dalvik35_read_instr_sub_long_2addr,
+ [DOP35_MUL_LONG_2ADDR] = dalvik35_read_instr_mul_long_2addr,
+ [DOP35_DIV_LONG_2ADDR] = dalvik35_read_instr_div_long_2addr,
+ [DOP35_REM_LONG_2ADDR] = dalvik35_read_instr_rem_long_2addr,
+ [DOP35_AND_LONG_2ADDR] = dalvik35_read_instr_and_long_2addr,
+ [DOP35_OR_LONG_2ADDR] = dalvik35_read_instr_or_long_2addr,
+ [DOP35_XOR_LONG_2ADDR] = dalvik35_read_instr_xor_long_2addr,
+ [DOP35_SHL_LONG_2ADDR] = dalvik35_read_instr_shl_long_2addr,
+ [DOP35_SHR_LONG_2ADDR] = dalvik35_read_instr_shr_long_2addr,
+ [DOP35_USHR_LONG_2ADDR] = dalvik35_read_instr_ushr_long_2addr,
+ [DOP35_ADD_FLOAT_2ADDR] = dalvik35_read_instr_add_float_2addr,
+ [DOP35_SUB_FLOAT_2ADDR] = dalvik35_read_instr_sub_float_2addr,
+ [DOP35_MUL_FLOAT_2ADDR] = dalvik35_read_instr_mul_float_2addr,
+ [DOP35_DIV_FLOAT_2ADDR] = dalvik35_read_instr_div_float_2addr,
+ [DOP35_REM_FLOAT_2ADDR] = dalvik35_read_instr_rem_float_2addr,
+ [DOP35_ADD_DOUBLE_2ADDR] = dalvik35_read_instr_add_double_2addr,
+ [DOP35_SUB_DOUBLE_2ADDR] = dalvik35_read_instr_sub_double_2addr,
+ [DOP35_MUL_DOUBLE_2ADDR] = dalvik35_read_instr_mul_double_2addr,
+ [DOP35_DIV_DOUBLE_2ADDR] = dalvik35_read_instr_div_double_2addr,
+ [DOP35_REM_DOUBLE_2ADDR] = dalvik35_read_instr_rem_double_2addr,
+ [DOP35_ADD_INT_LIT16] = dalvik35_read_instr_add_int_lit16,
+ [DOP35_RSUB_INT] = dalvik35_read_instr_rsub_int,
+ [DOP35_MUL_INT_LIT16] = dalvik35_read_instr_mul_int_lit16,
+ [DOP35_DIV_INT_LIT16] = dalvik35_read_instr_div_int_lit16,
+ [DOP35_REM_INT_LIT16] = dalvik35_read_instr_rem_int_lit16,
+ [DOP35_AND_INT_LIT16] = dalvik35_read_instr_and_int_lit16,
+ [DOP35_OR_INT_LIT16] = dalvik35_read_instr_or_int_lit16,
+ [DOP35_XOR_INT_LIT16] = dalvik35_read_instr_xor_int_lit16,
+ [DOP35_ADD_INT_LIT8] = dalvik35_read_instr_add_int_lit8,
+ [DOP35_RSUB_INT_LIT8] = dalvik35_read_instr_rsub_int_lit8,
+ [DOP35_MUL_INT_LIT8] = dalvik35_read_instr_mul_int_lit8,
+ [DOP35_DIV_INT_LIT8] = dalvik35_read_instr_div_int_lit8,
+ [DOP35_REM_INT_LIT8] = dalvik35_read_instr_rem_int_lit8,
+ [DOP35_AND_INT_LIT8] = dalvik35_read_instr_and_int_lit8,
+ [DOP35_OR_INT_LIT8] = dalvik35_read_instr_or_int_lit8,
+ [DOP35_XOR_INT_LIT8] = dalvik35_read_instr_xor_int_lit8,
+ [DOP35_SHL_INT_LIT8] = dalvik35_read_instr_shl_int_lit8,
+ [DOP35_SHR_INT_LIT8] = dalvik35_read_instr_shr_int_lit8,
+ [DOP35_USHR_INT_LIT8] = dalvik35_read_instr_ushr_int_lit8,
+ [DOP35_UNUSED_E3] = dalvik35_read_instr_unused_e3,
+ [DOP35_UNUSED_E4] = dalvik35_read_instr_unused_e4,
+ [DOP35_UNUSED_E5] = dalvik35_read_instr_unused_e5,
+ [DOP35_UNUSED_E6] = dalvik35_read_instr_unused_e6,
+ [DOP35_UNUSED_E7] = dalvik35_read_instr_unused_e7,
+ [DOP35_UNUSED_E8] = dalvik35_read_instr_unused_e8,
+ [DOP35_UNUSED_E9] = dalvik35_read_instr_unused_e9,
+ [DOP35_UNUSED_EA] = dalvik35_read_instr_unused_ea,
+ [DOP35_UNUSED_EB] = dalvik35_read_instr_unused_eb,
+ [DOP35_UNUSED_EC] = dalvik35_read_instr_unused_ec,
+ [DOP35_UNUSED_ED] = dalvik35_read_instr_unused_ed,
+ [DOP35_UNUSED_EE] = dalvik35_read_instr_unused_ee,
+ [DOP35_UNUSED_EF] = dalvik35_read_instr_unused_ef,
+ [DOP35_UNUSED_F0] = dalvik35_read_instr_unused_f0,
+ [DOP35_UNUSED_F1] = dalvik35_read_instr_unused_f1,
+ [DOP35_UNUSED_F2] = dalvik35_read_instr_unused_f2,
+ [DOP35_UNUSED_F3] = dalvik35_read_instr_unused_f3,
+ [DOP35_UNUSED_F4] = dalvik35_read_instr_unused_f4,
+ [DOP35_UNUSED_F5] = dalvik35_read_instr_unused_f5,
+ [DOP35_UNUSED_F6] = dalvik35_read_instr_unused_f6,
+ [DOP35_UNUSED_F7] = dalvik35_read_instr_unused_f7,
+ [DOP35_UNUSED_F8] = dalvik35_read_instr_unused_f8,
+ [DOP35_UNUSED_F9] = dalvik35_read_instr_unused_f9,
+ [DOP35_UNUSED_FA] = dalvik35_read_instr_unused_fa,
+ [DOP35_UNUSED_FB] = dalvik35_read_instr_unused_fb,
+ [DOP35_UNUSED_FC] = dalvik35_read_instr_unused_fc,
+ [DOP35_UNUSED_FD] = dalvik35_read_instr_unused_fd,
+ [DOP35_UNUSED_FE] = dalvik35_read_instr_unused_fe,
+ [DOP35_UNUSED_FF] = dalvik35_read_instr_unused_ff,
+
+ };
+
+ /* Données brutes associées à une instruction ? */
+
+ result = g_dalvik_context_get_raw_data(ctx, content, pos);
+
+ if (result != NULL) goto gdpd_done;
+
+ /* Pseudo-instruction... */
+
+ if (!g_binary_content_read_u8(content, pos, &raw8))
+ return NULL;
+
+ result = g_dalvik_processor_disassemble_pseudo(proc, ctx, content, pos, raw8);
+
+ if (result != NULL) goto gdpd_done;
+
+ /* ... ou instruction classique */
+
+ assert(raw8 < DOP35_COUNT);
+
+ id = (Dalvik35Opcodes)raw8;
+
+ result = decodings[id](proc, G_PROC_CONTEXT(ctx), content, pos, format);
+
+ gdpd_done:
+
+ return result;
+
+}
diff --git a/plugins/dalvik/v35/processor.h b/plugins/dalvik/v35/processor.h
new file mode 100644
index 0000000..c7930de
--- /dev/null
+++ b/plugins/dalvik/v35/processor.h
@@ -0,0 +1,55 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * processor.h - prototypes pour la manipulation du processeur de la VM Dalvik
+ *
+ * Copyright (C) 2018 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/>.
+ */
+
+
+#ifndef _PLUGINS_DALVIK_V35_PROCESSOR_H
+#define _PLUGINS_DALVIK_V35_PROCESSOR_H
+
+
+#include <arch/processor.h>
+
+
+
+#define G_TYPE_DALVIK35_PROCESSOR g_dalvik35_processor_get_type()
+#define G_DALVIK35_PROCESSOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_DALVIK35_PROCESSOR, GDalvik35Processor))
+#define G_IS_DALVIK35_PROCESSOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_DALVIK35_PROCESSOR))
+#define G_DALVIK35_PROCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_DALVIK35_PROCESSOR, GDalvik35ProcessorClass))
+#define G_IS_DALVIK35_PROCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_DALVIK35_PROCESSOR))
+#define G_DALVIK35_PROCESSOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_DALVIK35_PROCESSOR, GDalvik35ProcessorClass))
+
+
+/* Définition du processeur de la VM Dalvik v35 (instance) */
+typedef struct _GDalvik35Processor GDalvik35Processor;
+
+/* Définition du processeur de la VM Dalvik v35 (classe) */
+typedef struct _GDalvik35ProcessorClass GDalvik35ProcessorClass;
+
+
+/* Indique le type défini par la GLib pour le processeur Dalvik v35. */
+GType g_dalvik35_processor_get_type(void);
+
+/* Crée le support de l'architecture Dalvik v35. */
+GArchProcessor *g_dalvik35_processor_new(void);
+
+
+
+#endif /* _PLUGINS_DALVIK_V35_PROCESSOR_H */