From dab97f2471e9939e4ddd126a5cab730c5f6831b5 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Wed, 24 Jun 2009 03:06:42 +0000 Subject: [cgen] * intrinsics.scm: Updates to support IVC2. (belongs-to-group?): Check IVC2 slots. (-slots-attribute): New. (targets::attributes): Add SLOTS. (target:add-well-known-intrinsics): Add CPMOV. (md-insn): Add CPTYPE and CRET?. (add-md-insn): Likewise. (add-intrinsic-for-isa): Disable the duplicate tests, as IVC2 has duplicate insns with different bit patterns. (write-cgen-insn?): Add cret? support. (intrinsics.h): Add vector types. (runtime-op): Add vector support. (intrinsic-protos.h): Let GCC define its types. Add cret? support. * cpu/mep-core.cpu: Add CPTYPE and CRET attributes. * cpu/mep-ivc2.cpu: Update all insns to include type information. (h-cr-ivc2): Default to typeless. (h-ccr-ivc2): Fix register width. (SLOTS): Fix values and default. (ivc2_*): Add control register names. (crop, crqp, crpp, croc, crqc, crpc): Default to typeless. [opcodes] * mep-desc.c: Regenerate. * mep-desc.h: Regenerate. * mep-dis.c: Regenerate. * mep-ibld.c: Regenerate. * mep-opc.c: Regenerate. [sid/component/cgen-cpu/mep] * ivc2-cop.cxx (ivc2_cphadd_w): Change to return value. (ivc2_cpsubaca0u_b): Remove debug line. * ivc2-cpu.h (ivc2_cpccadd_b): Change to return value. * mep-cop1-16-decode.cxx: Regenerate. * mep-cop1-16-sem.cxx: Regenerate. * mep-cop1-32-decode.cxx: Regenerate. * mep-cop1-32-sem.cxx: Regenerate. * mep-cop1-48-decode.cxx: Regenerate. * mep-cop1-48-sem.cxx: Regenerate. * mep-cop1-64-decode.cxx: Regenerate. * mep-cop1-64-sem.cxx: Regenerate. * mep-core1-decode.cxx: Regenerate. * mep-cpu.h: Regenerate. * mep-decode.cxx: Regenerate. * mep-desc.h: Regenerate. --- opcodes/mep-asm.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'opcodes/mep-asm.c') diff --git a/opcodes/mep-asm.c b/opcodes/mep-asm.c index 3a8b454..6ab21e1 100644 --- a/opcodes/mep-asm.c +++ b/opcodes/mep-asm.c @@ -1023,6 +1023,75 @@ mep_cgen_parse_operand (CGEN_CPU_DESC cd, case MEP_OPERAND_IVC_X_6_3 : errmsg = cgen_parse_unsigned_integer (cd, strp, MEP_OPERAND_IVC_X_6_3, (unsigned long *) (& fields->f_ivc2_3u6)); break; + case MEP_OPERAND_IVC2_ACC0_0 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC0_1 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC0_2 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC0_3 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC0_4 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC0_5 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC0_6 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC0_7 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC1_0 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC1_1 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC1_2 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC1_3 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC1_4 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC1_5 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC1_6 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_ACC1_7 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_CC : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_COFA0 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_COFA1 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_COFR0 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_COFR1 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_CSAR0 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; + case MEP_OPERAND_IVC2_CSAR1 : + errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & junk); + break; case MEP_OPERAND_IVC2C3CCRN : errmsg = cgen_parse_keyword (cd, strp, & mep_cgen_opval_h_ccr_ivc2, & fields->f_ivc2_ccrn_c3); break; -- cgit v1.1