include $(top_srcdir)/tools/d2c/d2c.mk D2C_BIN = $(top_srcdir)/tools/d2c/d2c GEN_BIN = $(top_srcdir)/tools/d2c/d2c_genmakefile.sh D2C_OUTDIR = $(shell readlink -f $(PWD)/.. )/ D2C_TYPE = raw D2C_ARCH = ARMv7 D2C_ARCH_CN = ARMv7 D2C_GUARD = PLUGINS_ARM_V7_OPCODES D2C_ENCODINGS = \ -e A=arm \ -e t=thumb_16 \ -e T=thumb_32 D2C_ID_PREFIX = AOP7 D2C_ID_COUNT = 500 D2C_SPECIFIC = --filename-reuse=2 FIXED_C_INCLUDES = \ \#include \ \n \ \n\#include \ \n \ \n\#include "identifiers.h" \ \n\#include "../helpers.h" \ \n\#include "../instruction.h" \ \n\#include "../../instruction.h" FIXED_H_INCLUDES = \ \#include \ \n \ \n\#include FIXED_H_HOOKS_INCLUDES = \ \#include \ \n \ \n\#include "../fetch.h" \ \n\#include "../link.h" \ \n\#include "../post.h" \ \n\#include "../../link.h" # for i in $(seq 1 426); do file=A88${i}_*d ; test -f $file && ls $file ; done | sed 's/^/\t/' | sed 's/$/\t\t\t\t\t\t\\/' # for i in $(seq 1 22); do file=B93${i}_*d ; test -f $file && ls $file ; done | sed 's/^/\t/' | sed 's/$/\t\t\t\t\t\t\\/' ARMV7_DEFS = \ A881_adc.d \ A882_adc.d \ A883_adc.d \ A884_add.d \ A885_add.d \ A886_add.d \ A887_add.d \ A888_add.d \ A889_add.d \ A8810_add.d \ A8811_add.d \ A8812_adr.d \ A8813_and.d \ A8814_and.d \ A8815_and.d \ A8816_asr.d \ A8817_asr.d \ A8818_b.d \ A8819_bfc.d \ A8820_bfi.d \ A8821_bic.d \ A8822_bic.d \ A8823_bic.d \ A8824_bkpt.d \ A8825_bl.d \ A8826_blx.d \ A8827_bx.d \ A8828_bxj.d \ A8829_cb.d \ A8830_cdp.d \ A8832_clrex.d \ A8833_clz.d \ A8834_cmn.d \ A8835_cmn.d \ A8836_cmn.d \ A8837_cmp.d \ A8838_cmp.d \ A8839_cmp.d \ A8842_dbg.d \ A8843_dmb.d \ A8844_dsb.d \ A8846_eor.d \ A8847_eor.d \ A8848_eor.d \ A8853_isb.d \ A8854_it.d \ A8855_ldc.d \ A8856_ldc.d \ A8857_ldm.d \ A8858_ldm.d \ A8859_ldmda.d \ A8860_ldmdb.d \ A8861_ldmib.d \ A8862_ldr.d \ A8863_ldr.d \ A8864_ldr.d \ A8865_ldr.d \ A8866_ldr.d \ A8867_ldrb.d \ A8868_ldrb.d \ A8869_ldrb.d \ A8870_ldrb.d \ A8871_ldrbt.d \ A8872_ldrd.d \ A8873_ldrd.d \ A8874_ldrd.d \ A8875_ldrex.d \ A8876_ldrexb.d \ A8877_ldrexd.d \ A8878_ldrexh.d \ A8879_ldrh.d \ A8880_ldrh.d \ A8881_ldrh.d \ A8882_ldrh.d \ A8883_ldrht.d \ A8884_ldrsb.d \ A8885_ldrsb.d \ A8886_ldrsb.d \ A8887_ldrsbt.d \ A8888_ldrsh.d \ A8889_ldrsh.d \ A8890_ldrsh.d \ A8891_ldrsht.d \ A8892_ldrt.d \ A8894_lsl.d \ A8895_lsl.d \ A8896_lsr.d \ A8897_lsr.d \ A8898_mcr.d \ A8899_mcrr.d \ A88100_mla.d \ A88101_mls.d \ A88102_mov.d \ A88103_mov.d \ A88104_mov.d \ A88106_movt.d \ A88107_mrc.d \ A88108_mrrc.d \ A88109_mrs.d \ A88111_msr.d \ A88112_msr.d \ A88114_mul.d \ A88115_mvn.d \ A88116_mvn.d \ A88117_mvn.d \ A88119_nop.d \ A88120_orn.d \ A88121_orn.d \ A88122_orr.d \ A88123_orr.d \ A88124_orr.d \ A88125_pkh.d \ A88126_pld.d \ A88127_pld.d \ A88128_pld.d \ A88129_pli.d \ A88130_pli.d \ A88131_pop.d \ A88132_pop.d \ A88133_push.d \ A88134_qadd.d \ A88135_qadd16.d \ A88136_qadd8.d \ A88137_qasx.d \ A88138_qdadd.d \ A88139_qdsub.d \ A88140_qsax.d \ A88141_qsub.d \ A88142_qsub16.d \ A88143_qsub8.d \ A88144_rbit.d \ A88145_rev.d \ A88146_rev16.d \ A88147_revsh.d \ A88149_ror.d \ A88150_ror.d \ A88151_rrx.d \ A88152_rsb.d \ A88153_rsb.d \ A88154_rsb.d \ A88155_rsc.d \ A88156_rsc.d \ A88157_rsc.d \ A88158_sadd16.d \ A88159_sadd8.d \ A88160_sasx.d \ A88161_sbc.d \ A88162_sbc.d \ A88163_sbc.d \ A88164_sbfx.d \ A88165_sdiv.d \ A88166_sel.d \ A88167_setend.d \ A88168_sev.d \ A88169_shadd16.d \ A88170_shadd8.d \ A88171_shasx.d \ A88172_shsax.d \ A88173_shsub16.d \ A88174_shsub8.d \ A88176_smla.d \ A88177_smlad.d \ A88178_smlal.d \ A88179_smlal.d \ A88180_smlald.d \ A88181_smlaw.d \ A88182_smlsd.d \ A88183_smlsld.d \ A88184_smmla.d \ A88185_smmls.d \ A88186_smmul.d \ A88187_smuad.d \ A88188_smul.d \ A88189_smull.d \ A88190_smulw.d \ A88191_smusd.d \ A88193_ssat.d \ A88194_ssat16.d \ A88195_ssax.d \ A88196_ssub16.d \ A88197_ssub8.d \ A88198_stc.d \ A88199_stm.d \ A88200_stmda.d \ A88201_stmdb.d \ A88202_stmib.d \ A88203_str.d \ A88204_str.d \ A88205_str.d \ A88206_strb.d \ A88207_strb.d \ A88208_strb.d \ A88209_strbt.d \ A88210_strd.d \ A88211_strd.d \ A88212_strex.d \ A88213_strexb.d \ A88214_strexd.d \ A88215_strexh.d \ A88216_strh.d \ A88217_strh.d \ A88218_strh.d \ A88219_strht.d \ A88220_strt.d \ A88221_sub.d \ A88222_sub.d \ A88223_sub.d \ A88224_sub.d \ A88225_sub.d \ A88226_sub.d \ A88228_svc.d \ A88229_swp.d \ A88230_sxtab.d \ A88231_sxtab16.d \ A88232_sxtah.d \ A88233_sxtb.d \ A88234_sxtb16.d \ A88235_sxth.d \ A88236_tb.d \ A88237_teq.d \ A88238_teq.d \ A88239_teq.d \ A88240_tst.d \ A88241_tst.d \ A88242_tst.d \ A88243_uadd16.d \ A88244_uadd8.d \ A88245_uasx.d \ A88246_ubfx.d \ A88247_udf.d \ A88248_udiv.d \ A88249_uhadd16.d \ A88250_uhadd8.d \ A88251_uhasx.d \ A88252_uhsax.d \ A88253_uhsub16.d \ A88254_uhsub8.d \ A88255_umaal.d \ A88256_umlal.d \ A88257_umull.d \ A88258_uqadd16.d \ A88259_uqadd8.d \ A88260_uqasx.d \ A88261_uqsax.d \ A88262_uqsub16.d \ A88263_uqsub8.d \ A88264_usad8.d \ A88265_usada8.d \ A88266_usat.d \ A88267_usat16.d \ A88268_usax.d \ A88269_usub16.d \ A88270_usub8.d \ A88271_uxtab.d \ A88272_uxtab16.d \ A88273_uxtah.d \ A88274_uxtb.d \ A88275_uxtb16.d \ A88276_uxth.d \ A88277_vaba.d \ A88278_vabd.d \ A88279_vabd.d \ A88280_vabs.d \ A88281_vac.d \ A88282_vadd.d \ A88283_vadd.d \ A88284_vaddhn.d \ A88285_vadd.d \ A88287_vand.d \ A88288_vbic.d \ A88289_vbic.d \ A88290_vb.d \ A88291_vceq.d \ A88292_vceq.d \ A88293_vcge.d \ A88294_vcge.d \ A88295_vcgt.d \ A88296_vcgt.d \ A88298_vcle.d \ A88299_vcls.d \ A88301_vclt.d \ A88302_vclz.d \ A88303_vcmp.d \ A88304_vcnt.d \ A88305_vcvt.d \ A88306_vcvt.d \ A88309_vcvt.d \ A88310_vcvt.d \ A88311_vcvt.d \ A88312_vdiv.d \ A88314_vdup.d \ A88315_veor.d \ A88316_vext.d \ A88317_vfm.d \ A88318_vfnm.d \ A88319_vh.d \ A88320_vld1.d \ A88322_vld1.d \ A88323_vld2.d \ A88325_vld2.d \ A88326_vld3.d \ A88328_vld3.d \ A88329_vld4.d \ A88331_vld4.d \ A88332_vldm.d \ A88334_vmax.d \ A88335_vmax.d \ A88336_vmla.d \ A88337_vmla.d \ A88343_vmov.d \ A88344_vmov.d \ A88345_vmov.d \ A88346_vmovl.d \ A88347_vmovn.d \ A88348_vmrs.d \ A88349_vmsr.d \ A88350_vmul.d \ A88351_vmul.d \ A88353_vmvn.d \ A88354_vmvn.d \ A88355_vneg.d \ A88356_vnm.d \ A88358_vorn.d \ A88359_vorr.d \ A88360_vorr.d \ A88361_vpadal.d \ A88362_vpadd.d \ A88363_vpadd.d \ A88364_vpaddl.d \ A88365_vpmax.d \ A88366_vpmax.d \ A88367_vpop.d \ A88368_vpush.d \ A88369_vqabs.d \ A88370_vqadd.d \ A88374_vqmov.d \ A88375_vqneg.d \ A88377_vqrshl.d \ A88379_vqshl.d \ A88382_vqsub.d \ A88383_vraddhn.d \ A88384_vrecpe.d \ A88385_vrecps.d \ A88386_vrev.d \ A88387_vrhadd.d \ A88388_vrshl.d \ A88391_vrsqrte.d \ A88392_vrsqrts.d \ A88394_vrsubhn.d \ A88396_vshl.d \ A88401_vsqrt.d \ A88404_vst1.d \ A88406_vst2.d \ A88408_vst3.d \ A88410_vst4.d \ A88412_vstm.d \ A88413_vstr.d \ A88414_vsub.d \ A88415_vsub.d \ A88416_vsubhn.d \ A88417_vsub.d \ A88418_vswp.d \ A88419_vtb.d \ A88420_vtrn.d \ A88421_vtst.d \ A88422_vuzp.d \ A88423_vzip.d \ A88424_wfe.d \ A88425_wfi.d \ A88426_yield.d \ A931_enterx.d \ B931_cps.d \ B932_cps.d \ B933_eret.d \ B934_hvc.d \ B935_ldm.d \ B936_ldm.d \ B938_mrs.d \ B939_mrs.d \ B9310_msr.d \ B9311_msr.d \ B9312_msr.d \ B9313_rfe.d \ B9314_smc.d \ B9315_srs.d \ B9316_srs.d \ B9317_stm.d \ B9319_subs.d \ B9320_subs.d \ B9321_vmrs.d \ B9322_vmsr.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) $(D2C_OUTDIR)opcodes/ arm thumb_32 thumb_16 touch $@ clean: rm -rf $(ARMV7_DEFS:.d=.g) .gen fmk.done