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 \"..\/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\#include \"..\/..\/..\/link.h\" \ \n\#include \"..\/..\/..\/..\/common\/bconst.h\" \ \n\n FIXED_H_INCLUDES = \ \n\#include \ \ \n \ \n\#include \"..\/..\/..\/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