summaryrefslogtreecommitdiff
path: root/plugins/arm/v7/opdefs/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/arm/v7/opdefs/Makefile.am')
-rw-r--r--plugins/arm/v7/opdefs/Makefile.am302
1 files changed, 302 insertions, 0 deletions
diff --git a/plugins/arm/v7/opdefs/Makefile.am b/plugins/arm/v7/opdefs/Makefile.am
new file mode 100644
index 0000000..3f69a3f
--- /dev/null
+++ b/plugins/arm/v7/opdefs/Makefile.am
@@ -0,0 +1,302 @@
+
+include ../../../../tools/d2c/d2c.mk
+
+
+D2C_BIN = ../../../../tools/d2c/d2c
+GEN_BIN = ../../../../tools/d2c/d2c_genmakefile.sh
+
+D2C_TYPE = raw
+
+D2C_OUTDIR = $(PWD)/..
+
+D2C_ARCH = armv7
+D2C_HEADER = _ARCH_ARM_V7
+
+D2C_ENCODINGS = \
+ -e A=arm_ \
+ -e t=thumb_16_ \
+ -e T=thumb_32_
+
+D2C_MACROS = \
+ -M SetFlags=g_armv7_instruction_define_setflags \
+ -M Condition=g_arm_instruction_set_cond \
+ -M "ExpandImmC32=g_imm_operand_new_from_value(MDS_32_BITS_UNSIGNED, " \
+ -M SignExtend=sign_extend_armv7_imm \
+ -M SetInsFlag=g_arch_instruction_set_flag \
+ -M StoreCondition=g_arm_instruction_set_cond \
+ -M ExtendKeyword=g_arm_instruction_extend_keyword
+
+D2C_OPERANDS = \
+ -n BarrierLimitation \
+ -n BitDiff \
+ -n IncWidth \
+ -n DecodeImmShift \
+ -n MakeMemoryAccess \
+ -n Register \
+ -n RegisterShift \
+ -n UInt \
+ -n ZeroExtend
+
+FIXED_C_INCLUDES = \
+ \n\#include <arch/link.h> \
+ \n\#include <common/bconst.h> \
+ \n \
+ \n\#include \"../helpers.h\" \
+ \n\#include \"../instruction.h\" \
+ \n\#include \"../fetch.h\" \
+ \n\#include \"../link.h\" \
+ \n\#include \"../post.h\" \
+ \n\#include \"../../instruction.h\" \
+ \n\#include \"../../link.h\" \
+ \n\n
+
+FIXED_H_INCLUDES = \
+ \n\#include <stdint.h> \
+ \n \
+ \n\#include <arch/instruction.h> \
+ \n\n
+
+
+# for i in $(seq 1 426); do test -f *A88$i.d && (ls *A88$i.d | sed 's/^/\t/' | sed 's/$/\t\t\t\t\t\t\\/') ; done
+ARMV7_DEFS = \
+ adc_A881.d \
+ adc_A882.d \
+ adc_A883.d \
+ add_A884.d \
+ add_A885.d \
+ add_A886.d \
+ add_A887.d \
+ add_A888.d \
+ add_A889.d \
+ add_A8810.d \
+ add_A8811.d \
+ adr_A8812.d \
+ and_A8813.d \
+ and_A8814.d \
+ and_A8815.d \
+ asr_A8816.d \
+ asr_A8817.d \
+ b_A8818.d \
+ bfc_A8819.d \
+ bfi_A8820.d \
+ bic_A8821.d \
+ bic_A8822.d \
+ bic_A8823.d \
+ bkpt_A8824.d \
+ bl_A8825.d \
+ blx_A8826.d \
+ bx_A8827.d \
+ bxj_A8828.d \
+ cb_A8829.d \
+ cdp_A8830.d \
+ clrex_A8832.d \
+ clz_A8833.d \
+ cmn_A8834.d \
+ cmn_A8835.d \
+ cmn_A8836.d \
+ cmp_A8837.d \
+ cmp_A8838.d \
+ cmp_A8839.d \
+ dbg_A8842.d \
+ dmb_A8843.d \
+ dsb_A8844.d \
+ eor_A8846.d \
+ eor_A8847.d \
+ eor_A8848.d \
+ ldr_A8862.d \
+ ldr_A8863.d \
+ ldr_A8864.d \
+ ldr_A8865.d \
+ ldr_A8866.d \
+ ldrb_A8867.d \
+ ldrb_A8868.d \
+ ldrb_A8869.d \
+ ldrb_A8870.d \
+ ldrbt_A8871.d \
+ ldrd_A8872.d \
+ ldrd_A8873.d \
+ ldrd_A8874.d \
+ ldrex_A8875.d \
+ ldrexb_A8876.d \
+ ldrexd_A8877.d \
+ ldrexh_A8878.d \
+ ldrh_A8879.d \
+ ldrh_A8880.d \
+ ldrh_A8881.d \
+ ldrh_A8882.d \
+ ldrht_A8883.d \
+ ldrsb_A8884.d \
+ ldrsb_A8885.d \
+ ldrsb_A8886.d \
+ ldrsbt_A8887.d \
+ ldrsh_A8888.d \
+ ldrsh_A8889.d \
+ ldrsh_A8890.d \
+ ldrsht_A8891.d \
+ ldrt_A8892.d \
+ lsl_A8894.d \
+ lsl_A8895.d \
+ lsr_A8896.d \
+ lsr_A8897.d \
+ mcr_A8898.d \
+ mcrr_A8899.d \
+ mla_A88100.d \
+ mls_A88101.d \
+ mov_A88102.d \
+ mov_A88103.d \
+ mov_A88104.d \
+ movt_A88106.d \
+ mrc_A88107.d \
+ mrrc_A88108.d \
+ mul_A88114.d \
+ mvn_A88115.d \
+ mvn_A88116.d \
+ mvn_A88117.d \
+ nop_A88119.d \
+ orn_A88120.d \
+ orn_A88121.d \
+ orr_A88122.d \
+ orr_A88123.d \
+ orr_A88124.d \
+ pop_A88131.d \
+ pop_A88132.d \
+ push_A88133.d \
+ qadd_A88134.d \
+ qadd16_A88135.d \
+ qadd8_A88136.d \
+ qasx_A88137.d \
+ qdadd_A88138.d \
+ qdsub_A88139.d \
+ qsax_A88140.d \
+ qsub_A88141.d \
+ qsub16_A88142.d \
+ qsub8_A88143.d \
+ rbit_A88144.d \
+ rev_A88145.d \
+ rev16_A88146.d \
+ revsh_A88147.d \
+ ror_A88149.d \
+ ror_A88150.d \
+ rrx_A88151.d \
+ rsb_A88152.d \
+ rsb_A88153.d \
+ rsb_A88154.d \
+ rsc_A88155.d \
+ rsc_A88156.d \
+ rsc_A88157.d \
+ sadd16_A88158.d \
+ sadd8_A88159.d \
+ sasx_A88160.d \
+ sbc_A88161.d \
+ sbc_A88162.d \
+ sbc_A88163.d \
+ sbfx_A88164.d \
+ sdiv_A88165.d \
+ sel_A88166.d \
+ setend_A88167.d \
+ sev_A88168.d \
+ shadd16_A88169.d \
+ shadd8_A88170.d \
+ shasx_A88171.d \
+ shsax_A88172.d \
+ shsub16_A88173.d \
+ shsub8_A88174.d \
+ smlad_A88177.d \
+ smlal_A88178.d \
+ smlald_A88180.d \
+ smlsd_A88182.d \
+ smlsld_A88183.d \
+ smmla_A88184.d \
+ smmls_A88185.d \
+ smmul_A88186.d \
+ smuad_A88187.d \
+ smull_A88189.d \
+ str_A88203.d \
+ str_A88204.d \
+ str_A88205.d \
+ strb_A88206.d \
+ strb_A88207.d \
+ strb_A88208.d \
+ strbt_A88209.d \
+ strd_A88210.d \
+ strd_A88211.d \
+ strex_A88212.d \
+ strexb_A88213.d \
+ strexd_A88214.d \
+ strexh_A88215.d \
+ strh_A88216.d \
+ strh_A88217.d \
+ strh_A88218.d \
+ strht_A88219.d \
+ strt_A88220.d \
+ sub_A88221.d \
+ sub_A88222.d \
+ sub_A88223.d \
+ sub_A88225.d \
+ svc_A88228.d \
+ swp_A88229.d \
+ teq_A88237.d \
+ teq_A88238.d \
+ teq_A88239.d \
+ tst_A88240.d \
+ tst_A88241.d \
+ tst_A88242.d \
+ uadd16_A88243.d \
+ uadd8_A88244.d \
+ uasx_A88245.d \
+ ubfx_A88246.d \
+ udf_A88247.d \
+ udiv_A88248.d \
+ uhadd16_A88249.d \
+ uhadd8_A88250.d \
+ uhasx_A88251.d \
+ uhsax_A88252.d \
+ uhsub16_A88253.d \
+ uhsub8_A88254.d \
+ umaal_A88255.d \
+ umlal_A88256.d \
+ umull_A88257.d \
+ uqadd16_A88258.d \
+ uqadd8_A88259.d \
+ uqasx_A88260.d \
+ uqsax_A88261.d \
+ uqsub16_A88262.d \
+ uqsub8_A88263.d \
+ usad8_A88264.d \
+ usada8_A88265.d \
+ usat_A88266.d \
+ usat16_A88267.d \
+ usax_A88268.d \
+ usub16_A88269.d \
+ usub8_A88270.d \
+ uxtab_A88271.d \
+ uxtab16_A88272.d \
+ uxtah_A88273.d \
+ uxtb_A88274.d \
+ uxtb16_A88275.d \
+ uxth_A88276.d \
+ wfi_A88425.d \
+ yield_A88426.d
+
+# subs_B9320.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
+# au répertoire opcodes. Et comme on ne peut pas compléter la règle dist, on
+# ajoute à la distribution les cibles marquant la génération. (1/2)
+
+EXTRA_DIST = $(ARMV7_DEFS) $(ARMV7_DEFS:.d=.g)
+
+# Après coup, on supprime les fichiers inutiles de la distribution/ (2/2)
+
+dist-hook:
+ cd $(distdir) && rm $(ARMV7_DEFS:.d=.g)
+
+all: $(ARMV7_DEFS:.d=.g) fmk.done d2c_final_rules
+
+fmk.done: $(ARMV7_DEFS)
+ $(GEN_BIN) ../opcodes/ ../opdefs/.gen ../../../../tools/d2c/globalgen.mk arm thumb_32 thumb_16
+ touch $@
+
+clean:
+ rm -rf $(ARMV7_DEFS:.d=.g) .gen fmk.done