diff options
author | Paul Brook <paul@codesourcery.com> | 2005-09-02 13:12:45 +0000 |
---|---|---|
committer | Paul Brook <paul@codesourcery.com> | 2005-09-02 13:12:45 +0000 |
commit | 8f06b2d82f0fa8d84dc92db3747ca44462e969b0 (patch) | |
tree | 7213d9518c0888f1718b05afa4136a3aa03b2c66 /gas/config/tc-arm.c | |
parent | c4188bc96a6dacd4ba8d2e72ad2571cf0389eb5c (diff) | |
download | gdb-8f06b2d82f0fa8d84dc92db3747ca44462e969b0.zip gdb-8f06b2d82f0fa8d84dc92db3747ca44462e969b0.tar.gz gdb-8f06b2d82f0fa8d84dc92db3747ca44462e969b0.tar.bz2 |
2005-09-02 Paul Brook <paul@codesourcery.com>
bfd/
* libbdf.h: Regenerate.
* bfd-in2.h: Regenerate.
* reloc.c: Add BFD_RELOC_ARM_T32_CP_OFF_IMM and
BFD_RELOC_ARM_T32_CP_OFF_IMM_S2.
gas/
* config/tc-arm.c (encode_arm_cp_address): Use
BFD_RELOC_ARM_T32_CP_OFF_IMM in thumb mode.
(do_iwmmxt_wldstbh): Use BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 in thumb
mode.
(md_assemble): Only allow coprocessor instructions when Thumb-2 is
available.
(cCE, cC3): Define.
(insns): Use them for coprocessor instructions.
(md_pcrel_from_section): Handle BFD_RELOC_ARM_T32_CP_OFF_IMM.
(get_thumb32_insn): New function.
(put_thumb32_insn): New function.
(md_apply_fix): Handle BFD_RELOC_ARM_T32_CP_OFF_IMM and
BFD_RELOC_ARM_T32_CP_OFF_IMM_S2.
gas/testsuite/
* gas/arm/vfp-bad_t2.d, gas/arm/vfp-bad_t2.l, arm/vfp-bad_t2.s,
gas/arm/vfp1_t2.d, gas/arm/vfp1_t2.s, gas/arm/vfp1xD_t2.d,
gas/arm/vfp1xD_t2.s, gas/arm/vfp2_t2.d, gas/arm/vfp2_t2.s): New files.
opcodes/
* arm-dis.c (coprocessor_opcodes): New.
(arm_opcodes, thumb32_opcodes): Remove coprocessor insns.
(print_insn_coprocessor): New function.
(print_insn_arm): Use print_insn_coprocessor. Remove coprocessor
format characters.
(print_insn_thumb32): Use print_insn_coprocessor.
Diffstat (limited to 'gas/config/tc-arm.c')
-rw-r--r-- | gas/config/tc-arm.c | 1582 |
1 files changed, 818 insertions, 764 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index f52716d..16f1db7 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -4218,6 +4218,8 @@ encode_arm_cp_address (int i, int wb_ok, int unind_ok, int reloc_override) if (reloc_override) inst.reloc.type = reloc_override; + else if (thumb_mode) + inst.reloc.type = BFD_RELOC_ARM_T32_CP_OFF_IMM; else inst.reloc.type = BFD_RELOC_ARM_CP_OFF_IMM; return SUCCESS; @@ -5495,9 +5497,14 @@ do_iwmmxt_wmov (void) static void do_iwmmxt_wldstbh (void) { + int reloc; inst.instruction |= inst.operands[0].reg << 12; inst.reloc.exp.X_add_number *= 4; - encode_arm_cp_address (1, TRUE, FALSE, BFD_RELOC_ARM_CP_OFF_IMM_S2); + if (thumb_mode) + reloc = BFD_RELOC_ARM_T32_CP_OFF_IMM_S2; + else + reloc = BFD_RELOC_ARM_CP_OFF_IMM_S2; + encode_arm_cp_address (1, TRUE, FALSE, reloc); } static void @@ -7759,8 +7766,14 @@ md_assemble (char *str) if (thumb_mode) { + unsigned long variant; + + variant = cpu_variant; + /* Only allow coprocessor instructions on Thumb-2 capable devices. */ + if ((variant & ARM_EXT_V6T2) == 0) + variant &= ARM_ANY; /* Check that this instruction is supported for this CPU. */ - if (thumb_mode == 1 && (opcode->tvariant & cpu_variant) == 0) + if (thumb_mode == 1 && (opcode->tvariant & variant) == 0) { as_bad (_("selected processor does not support `%s'"), str); return; @@ -8247,6 +8260,13 @@ static const struct asm_cond conds[] = #define C3(mnem, op, nops, ops, ae) \ { #mnem, OPS##nops ops, OT_cinfix3, 0x##op, 0x0, ARM_VARIANT, 0, do_##ae, NULL } +/* Coprocessor instructions. Isomorphic between Arm and Thumb-2. */ +#define cCE(mnem, op, nops, ops, ae) \ + { #mnem, OPS##nops ops, OT_csuffix, 0x##op, 0xe##op, ARM_VARIANT, ARM_VARIANT, do_##ae, do_##ae } + +#define cC3(mnem, op, nops, ops, ae) \ + { #mnem, OPS##nops ops, OT_cinfix3, 0x##op, 0xe##op, ARM_VARIANT, ARM_VARIANT, do_##ae, do_##ae } + #define xCM_(m1, m2, m3, op, nops, ops, ae) \ { #m1 #m2 #m3, OPS##nops ops, \ sizeof(#m2) == 1 ? OT_odd_infix_unc : OT_odd_infix_0 + sizeof(#m1) - 1, \ @@ -8696,815 +8716,815 @@ static const struct asm_opcode insns[] = #undef ARM_VARIANT #define ARM_VARIANT FPU_FPA_EXT_V1 /* Core FPA instruction set (V1). */ - CE(wfs, e200110, 1, (RR), rd), - CE(rfs, e300110, 1, (RR), rd), - CE(wfc, e400110, 1, (RR), rd), - CE(rfc, e500110, 1, (RR), rd), - - C3(ldfs, c100100, 2, (RF, ADDR), rd_cpaddr), - C3(ldfd, c108100, 2, (RF, ADDR), rd_cpaddr), - C3(ldfe, c500100, 2, (RF, ADDR), rd_cpaddr), - C3(ldfp, c508100, 2, (RF, ADDR), rd_cpaddr), - - C3(stfs, c000100, 2, (RF, ADDR), rd_cpaddr), - C3(stfd, c008100, 2, (RF, ADDR), rd_cpaddr), - C3(stfe, c400100, 2, (RF, ADDR), rd_cpaddr), - C3(stfp, c408100, 2, (RF, ADDR), rd_cpaddr), - - C3(mvfs, e008100, 2, (RF, RF_IF), rd_rm), - C3(mvfsp, e008120, 2, (RF, RF_IF), rd_rm), - C3(mvfsm, e008140, 2, (RF, RF_IF), rd_rm), - C3(mvfsz, e008160, 2, (RF, RF_IF), rd_rm), - C3(mvfd, e008180, 2, (RF, RF_IF), rd_rm), - C3(mvfdp, e0081a0, 2, (RF, RF_IF), rd_rm), - C3(mvfdm, e0081c0, 2, (RF, RF_IF), rd_rm), - C3(mvfdz, e0081e0, 2, (RF, RF_IF), rd_rm), - C3(mvfe, e088100, 2, (RF, RF_IF), rd_rm), - C3(mvfep, e088120, 2, (RF, RF_IF), rd_rm), - C3(mvfem, e088140, 2, (RF, RF_IF), rd_rm), - C3(mvfez, e088160, 2, (RF, RF_IF), rd_rm), - - C3(mnfs, e108100, 2, (RF, RF_IF), rd_rm), - C3(mnfsp, e108120, 2, (RF, RF_IF), rd_rm), - C3(mnfsm, e108140, 2, (RF, RF_IF), rd_rm), - C3(mnfsz, e108160, 2, (RF, RF_IF), rd_rm), - C3(mnfd, e108180, 2, (RF, RF_IF), rd_rm), - C3(mnfdp, e1081a0, 2, (RF, RF_IF), rd_rm), - C3(mnfdm, e1081c0, 2, (RF, RF_IF), rd_rm), - C3(mnfdz, e1081e0, 2, (RF, RF_IF), rd_rm), - C3(mnfe, e188100, 2, (RF, RF_IF), rd_rm), - C3(mnfep, e188120, 2, (RF, RF_IF), rd_rm), - C3(mnfem, e188140, 2, (RF, RF_IF), rd_rm), - C3(mnfez, e188160, 2, (RF, RF_IF), rd_rm), - - C3(abss, e208100, 2, (RF, RF_IF), rd_rm), - C3(abssp, e208120, 2, (RF, RF_IF), rd_rm), - C3(abssm, e208140, 2, (RF, RF_IF), rd_rm), - C3(abssz, e208160, 2, (RF, RF_IF), rd_rm), - C3(absd, e208180, 2, (RF, RF_IF), rd_rm), - C3(absdp, e2081a0, 2, (RF, RF_IF), rd_rm), - C3(absdm, e2081c0, 2, (RF, RF_IF), rd_rm), - C3(absdz, e2081e0, 2, (RF, RF_IF), rd_rm), - C3(abse, e288100, 2, (RF, RF_IF), rd_rm), - C3(absep, e288120, 2, (RF, RF_IF), rd_rm), - C3(absem, e288140, 2, (RF, RF_IF), rd_rm), - C3(absez, e288160, 2, (RF, RF_IF), rd_rm), - - C3(rnds, e308100, 2, (RF, RF_IF), rd_rm), - C3(rndsp, e308120, 2, (RF, RF_IF), rd_rm), - C3(rndsm, e308140, 2, (RF, RF_IF), rd_rm), - C3(rndsz, e308160, 2, (RF, RF_IF), rd_rm), - C3(rndd, e308180, 2, (RF, RF_IF), rd_rm), - C3(rnddp, e3081a0, 2, (RF, RF_IF), rd_rm), - C3(rnddm, e3081c0, 2, (RF, RF_IF), rd_rm), - C3(rnddz, e3081e0, 2, (RF, RF_IF), rd_rm), - C3(rnde, e388100, 2, (RF, RF_IF), rd_rm), - C3(rndep, e388120, 2, (RF, RF_IF), rd_rm), - C3(rndem, e388140, 2, (RF, RF_IF), rd_rm), - C3(rndez, e388160, 2, (RF, RF_IF), rd_rm), - - C3(sqts, e408100, 2, (RF, RF_IF), rd_rm), - C3(sqtsp, e408120, 2, (RF, RF_IF), rd_rm), - C3(sqtsm, e408140, 2, (RF, RF_IF), rd_rm), - C3(sqtsz, e408160, 2, (RF, RF_IF), rd_rm), - C3(sqtd, e408180, 2, (RF, RF_IF), rd_rm), - C3(sqtdp, e4081a0, 2, (RF, RF_IF), rd_rm), - C3(sqtdm, e4081c0, 2, (RF, RF_IF), rd_rm), - C3(sqtdz, e4081e0, 2, (RF, RF_IF), rd_rm), - C3(sqte, e488100, 2, (RF, RF_IF), rd_rm), - C3(sqtep, e488120, 2, (RF, RF_IF), rd_rm), - C3(sqtem, e488140, 2, (RF, RF_IF), rd_rm), - C3(sqtez, e488160, 2, (RF, RF_IF), rd_rm), - - C3(logs, e508100, 2, (RF, RF_IF), rd_rm), - C3(logsp, e508120, 2, (RF, RF_IF), rd_rm), - C3(logsm, e508140, 2, (RF, RF_IF), rd_rm), - C3(logsz, e508160, 2, (RF, RF_IF), rd_rm), - C3(logd, e508180, 2, (RF, RF_IF), rd_rm), - C3(logdp, e5081a0, 2, (RF, RF_IF), rd_rm), - C3(logdm, e5081c0, 2, (RF, RF_IF), rd_rm), - C3(logdz, e5081e0, 2, (RF, RF_IF), rd_rm), - C3(loge, e588100, 2, (RF, RF_IF), rd_rm), - C3(logep, e588120, 2, (RF, RF_IF), rd_rm), - C3(logem, e588140, 2, (RF, RF_IF), rd_rm), - C3(logez, e588160, 2, (RF, RF_IF), rd_rm), - - C3(lgns, e608100, 2, (RF, RF_IF), rd_rm), - C3(lgnsp, e608120, 2, (RF, RF_IF), rd_rm), - C3(lgnsm, e608140, 2, (RF, RF_IF), rd_rm), - C3(lgnsz, e608160, 2, (RF, RF_IF), rd_rm), - C3(lgnd, e608180, 2, (RF, RF_IF), rd_rm), - C3(lgndp, e6081a0, 2, (RF, RF_IF), rd_rm), - C3(lgndm, e6081c0, 2, (RF, RF_IF), rd_rm), - C3(lgndz, e6081e0, 2, (RF, RF_IF), rd_rm), - C3(lgne, e688100, 2, (RF, RF_IF), rd_rm), - C3(lgnep, e688120, 2, (RF, RF_IF), rd_rm), - C3(lgnem, e688140, 2, (RF, RF_IF), rd_rm), - C3(lgnez, e688160, 2, (RF, RF_IF), rd_rm), - - C3(exps, e708100, 2, (RF, RF_IF), rd_rm), - C3(expsp, e708120, 2, (RF, RF_IF), rd_rm), - C3(expsm, e708140, 2, (RF, RF_IF), rd_rm), - C3(expsz, e708160, 2, (RF, RF_IF), rd_rm), - C3(expd, e708180, 2, (RF, RF_IF), rd_rm), - C3(expdp, e7081a0, 2, (RF, RF_IF), rd_rm), - C3(expdm, e7081c0, 2, (RF, RF_IF), rd_rm), - C3(expdz, e7081e0, 2, (RF, RF_IF), rd_rm), - C3(expe, e788100, 2, (RF, RF_IF), rd_rm), - C3(expep, e788120, 2, (RF, RF_IF), rd_rm), - C3(expem, e788140, 2, (RF, RF_IF), rd_rm), - C3(expdz, e788160, 2, (RF, RF_IF), rd_rm), - - C3(sins, e808100, 2, (RF, RF_IF), rd_rm), - C3(sinsp, e808120, 2, (RF, RF_IF), rd_rm), - C3(sinsm, e808140, 2, (RF, RF_IF), rd_rm), - C3(sinsz, e808160, 2, (RF, RF_IF), rd_rm), - C3(sind, e808180, 2, (RF, RF_IF), rd_rm), - C3(sindp, e8081a0, 2, (RF, RF_IF), rd_rm), - C3(sindm, e8081c0, 2, (RF, RF_IF), rd_rm), - C3(sindz, e8081e0, 2, (RF, RF_IF), rd_rm), - C3(sine, e888100, 2, (RF, RF_IF), rd_rm), - C3(sinep, e888120, 2, (RF, RF_IF), rd_rm), - C3(sinem, e888140, 2, (RF, RF_IF), rd_rm), - C3(sinez, e888160, 2, (RF, RF_IF), rd_rm), - - C3(coss, e908100, 2, (RF, RF_IF), rd_rm), - C3(cossp, e908120, 2, (RF, RF_IF), rd_rm), - C3(cossm, e908140, 2, (RF, RF_IF), rd_rm), - C3(cossz, e908160, 2, (RF, RF_IF), rd_rm), - C3(cosd, e908180, 2, (RF, RF_IF), rd_rm), - C3(cosdp, e9081a0, 2, (RF, RF_IF), rd_rm), - C3(cosdm, e9081c0, 2, (RF, RF_IF), rd_rm), - C3(cosdz, e9081e0, 2, (RF, RF_IF), rd_rm), - C3(cose, e988100, 2, (RF, RF_IF), rd_rm), - C3(cosep, e988120, 2, (RF, RF_IF), rd_rm), - C3(cosem, e988140, 2, (RF, RF_IF), rd_rm), - C3(cosez, e988160, 2, (RF, RF_IF), rd_rm), - - C3(tans, ea08100, 2, (RF, RF_IF), rd_rm), - C3(tansp, ea08120, 2, (RF, RF_IF), rd_rm), - C3(tansm, ea08140, 2, (RF, RF_IF), rd_rm), - C3(tansz, ea08160, 2, (RF, RF_IF), rd_rm), - C3(tand, ea08180, 2, (RF, RF_IF), rd_rm), - C3(tandp, ea081a0, 2, (RF, RF_IF), rd_rm), - C3(tandm, ea081c0, 2, (RF, RF_IF), rd_rm), - C3(tandz, ea081e0, 2, (RF, RF_IF), rd_rm), - C3(tane, ea88100, 2, (RF, RF_IF), rd_rm), - C3(tanep, ea88120, 2, (RF, RF_IF), rd_rm), - C3(tanem, ea88140, 2, (RF, RF_IF), rd_rm), - C3(tanez, ea88160, 2, (RF, RF_IF), rd_rm), - - C3(asns, eb08100, 2, (RF, RF_IF), rd_rm), - C3(asnsp, eb08120, 2, (RF, RF_IF), rd_rm), - C3(asnsm, eb08140, 2, (RF, RF_IF), rd_rm), - C3(asnsz, eb08160, 2, (RF, RF_IF), rd_rm), - C3(asnd, eb08180, 2, (RF, RF_IF), rd_rm), - C3(asndp, eb081a0, 2, (RF, RF_IF), rd_rm), - C3(asndm, eb081c0, 2, (RF, RF_IF), rd_rm), - C3(asndz, eb081e0, 2, (RF, RF_IF), rd_rm), - C3(asne, eb88100, 2, (RF, RF_IF), rd_rm), - C3(asnep, eb88120, 2, (RF, RF_IF), rd_rm), - C3(asnem, eb88140, 2, (RF, RF_IF), rd_rm), - C3(asnez, eb88160, 2, (RF, RF_IF), rd_rm), - - C3(acss, ec08100, 2, (RF, RF_IF), rd_rm), - C3(acssp, ec08120, 2, (RF, RF_IF), rd_rm), - C3(acssm, ec08140, 2, (RF, RF_IF), rd_rm), - C3(acssz, ec08160, 2, (RF, RF_IF), rd_rm), - C3(acsd, ec08180, 2, (RF, RF_IF), rd_rm), - C3(acsdp, ec081a0, 2, (RF, RF_IF), rd_rm), - C3(acsdm, ec081c0, 2, (RF, RF_IF), rd_rm), - C3(acsdz, ec081e0, 2, (RF, RF_IF), rd_rm), - C3(acse, ec88100, 2, (RF, RF_IF), rd_rm), - C3(acsep, ec88120, 2, (RF, RF_IF), rd_rm), - C3(acsem, ec88140, 2, (RF, RF_IF), rd_rm), - C3(acsez, ec88160, 2, (RF, RF_IF), rd_rm), - - C3(atns, ed08100, 2, (RF, RF_IF), rd_rm), - C3(atnsp, ed08120, 2, (RF, RF_IF), rd_rm), - C3(atnsm, ed08140, 2, (RF, RF_IF), rd_rm), - C3(atnsz, ed08160, 2, (RF, RF_IF), rd_rm), - C3(atnd, ed08180, 2, (RF, RF_IF), rd_rm), - C3(atndp, ed081a0, 2, (RF, RF_IF), rd_rm), - C3(atndm, ed081c0, 2, (RF, RF_IF), rd_rm), - C3(atndz, ed081e0, 2, (RF, RF_IF), rd_rm), - C3(atne, ed88100, 2, (RF, RF_IF), rd_rm), - C3(atnep, ed88120, 2, (RF, RF_IF), rd_rm), - C3(atnem, ed88140, 2, (RF, RF_IF), rd_rm), - C3(atnez, ed88160, 2, (RF, RF_IF), rd_rm), - - C3(urds, ee08100, 2, (RF, RF_IF), rd_rm), - C3(urdsp, ee08120, 2, (RF, RF_IF), rd_rm), - C3(urdsm, ee08140, 2, (RF, RF_IF), rd_rm), - C3(urdsz, ee08160, 2, (RF, RF_IF), rd_rm), - C3(urdd, ee08180, 2, (RF, RF_IF), rd_rm), - C3(urddp, ee081a0, 2, (RF, RF_IF), rd_rm), - C3(urddm, ee081c0, 2, (RF, RF_IF), rd_rm), - C3(urddz, ee081e0, 2, (RF, RF_IF), rd_rm), - C3(urde, ee88100, 2, (RF, RF_IF), rd_rm), - C3(urdep, ee88120, 2, (RF, RF_IF), rd_rm), - C3(urdem, ee88140, 2, (RF, RF_IF), rd_rm), - C3(urdez, ee88160, 2, (RF, RF_IF), rd_rm), - - C3(nrms, ef08100, 2, (RF, RF_IF), rd_rm), - C3(nrmsp, ef08120, 2, (RF, RF_IF), rd_rm), - C3(nrmsm, ef08140, 2, (RF, RF_IF), rd_rm), - C3(nrmsz, ef08160, 2, (RF, RF_IF), rd_rm), - C3(nrmd, ef08180, 2, (RF, RF_IF), rd_rm), - C3(nrmdp, ef081a0, 2, (RF, RF_IF), rd_rm), - C3(nrmdm, ef081c0, 2, (RF, RF_IF), rd_rm), - C3(nrmdz, ef081e0, 2, (RF, RF_IF), rd_rm), - C3(nrme, ef88100, 2, (RF, RF_IF), rd_rm), - C3(nrmep, ef88120, 2, (RF, RF_IF), rd_rm), - C3(nrmem, ef88140, 2, (RF, RF_IF), rd_rm), - C3(nrmez, ef88160, 2, (RF, RF_IF), rd_rm), - - C3(adfs, e000100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfsp, e000120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfsm, e000140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfsz, e000160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfd, e000180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfdp, e0001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfdm, e0001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfdz, e0001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfe, e080100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfep, e080120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfem, e080140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(adfez, e080160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(sufs, e200100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufsp, e200120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufsm, e200140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufsz, e200160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufd, e200180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufdp, e2001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufdm, e2001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufdz, e2001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufe, e280100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufep, e280120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufem, e280140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(sufez, e280160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(rsfs, e300100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfsp, e300120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfsm, e300140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfsz, e300160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfd, e300180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfdp, e3001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfdm, e3001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfdz, e3001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfe, e380100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfep, e380120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfem, e380140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rsfez, e380160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(mufs, e100100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufsp, e100120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufsm, e100140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufsz, e100160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufd, e100180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufdp, e1001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufdm, e1001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufdz, e1001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufe, e180100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufep, e180120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufem, e180140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(mufez, e180160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(dvfs, e400100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfsp, e400120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfsm, e400140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfsz, e400160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfd, e400180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfdp, e4001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfdm, e4001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfdz, e4001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfe, e480100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfep, e480120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfem, e480140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(dvfez, e480160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(rdfs, e500100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfsp, e500120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfsm, e500140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfsz, e500160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfd, e500180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfdp, e5001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfdm, e5001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfdz, e5001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfe, e580100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfep, e580120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfem, e580140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rdfez, e580160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(pows, e600100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powsp, e600120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powsm, e600140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powsz, e600160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powd, e600180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powdp, e6001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powdm, e6001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powdz, e6001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powe, e680100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powep, e680120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powem, e680140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(powez, e680160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(rpws, e700100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwsp, e700120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwsm, e700140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwsz, e700160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwd, e700180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwdp, e7001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwdm, e7001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwdz, e7001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwe, e780100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwep, e780120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwem, e780140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rpwez, e780160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(rmfs, e800100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfsp, e800120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfsm, e800140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfsz, e800160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfd, e800180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfdp, e8001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfdm, e8001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfdz, e8001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfe, e880100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfep, e880120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfem, e880140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(rmfez, e880160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(fmls, e900100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmlsp, e900120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmlsm, e900140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmlsz, e900160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmld, e900180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmldp, e9001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmldm, e9001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmldz, e9001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmle, e980100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmlep, e980120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmlem, e980140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fmlez, e980160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(fdvs, ea00100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvsp, ea00120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvsm, ea00140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvsz, ea00160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvd, ea00180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvdp, ea001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvdm, ea001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvdz, ea001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdve, ea80100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvep, ea80120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvem, ea80140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(fdvez, ea80160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(frds, eb00100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frdsp, eb00120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frdsm, eb00140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frdsz, eb00160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frdd, eb00180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frddp, eb001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frddm, eb001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frddz, eb001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frde, eb80100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frdep, eb80120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frdem, eb80140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(frdez, eb80160, 3, (RF, RF, RF_IF), rd_rn_rm), - - C3(pols, ec00100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(polsp, ec00120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(polsm, ec00140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(polsz, ec00160, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(pold, ec00180, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(poldp, ec001a0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(poldm, ec001c0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(poldz, ec001e0, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(pole, ec80100, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(polep, ec80120, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(polem, ec80140, 3, (RF, RF, RF_IF), rd_rn_rm), - C3(polez, ec80160, 3, (RF, RF, RF_IF), rd_rn_rm), - - CE(cmf, e90f110, 2, (RF, RF_IF), fpa_cmp), + cCE(wfs, e200110, 1, (RR), rd), + cCE(rfs, e300110, 1, (RR), rd), + cCE(wfc, e400110, 1, (RR), rd), + cCE(rfc, e500110, 1, (RR), rd), + + cC3(ldfs, c100100, 2, (RF, ADDR), rd_cpaddr), + cC3(ldfd, c108100, 2, (RF, ADDR), rd_cpaddr), + cC3(ldfe, c500100, 2, (RF, ADDR), rd_cpaddr), + cC3(ldfp, c508100, 2, (RF, ADDR), rd_cpaddr), + + cC3(stfs, c000100, 2, (RF, ADDR), rd_cpaddr), + cC3(stfd, c008100, 2, (RF, ADDR), rd_cpaddr), + cC3(stfe, c400100, 2, (RF, ADDR), rd_cpaddr), + cC3(stfp, c408100, 2, (RF, ADDR), rd_cpaddr), + + cC3(mvfs, e008100, 2, (RF, RF_IF), rd_rm), + cC3(mvfsp, e008120, 2, (RF, RF_IF), rd_rm), + cC3(mvfsm, e008140, 2, (RF, RF_IF), rd_rm), + cC3(mvfsz, e008160, 2, (RF, RF_IF), rd_rm), + cC3(mvfd, e008180, 2, (RF, RF_IF), rd_rm), + cC3(mvfdp, e0081a0, 2, (RF, RF_IF), rd_rm), + cC3(mvfdm, e0081c0, 2, (RF, RF_IF), rd_rm), + cC3(mvfdz, e0081e0, 2, (RF, RF_IF), rd_rm), + cC3(mvfe, e088100, 2, (RF, RF_IF), rd_rm), + cC3(mvfep, e088120, 2, (RF, RF_IF), rd_rm), + cC3(mvfem, e088140, 2, (RF, RF_IF), rd_rm), + cC3(mvfez, e088160, 2, (RF, RF_IF), rd_rm), + + cC3(mnfs, e108100, 2, (RF, RF_IF), rd_rm), + cC3(mnfsp, e108120, 2, (RF, RF_IF), rd_rm), + cC3(mnfsm, e108140, 2, (RF, RF_IF), rd_rm), + cC3(mnfsz, e108160, 2, (RF, RF_IF), rd_rm), + cC3(mnfd, e108180, 2, (RF, RF_IF), rd_rm), + cC3(mnfdp, e1081a0, 2, (RF, RF_IF), rd_rm), + cC3(mnfdm, e1081c0, 2, (RF, RF_IF), rd_rm), + cC3(mnfdz, e1081e0, 2, (RF, RF_IF), rd_rm), + cC3(mnfe, e188100, 2, (RF, RF_IF), rd_rm), + cC3(mnfep, e188120, 2, (RF, RF_IF), rd_rm), + cC3(mnfem, e188140, 2, (RF, RF_IF), rd_rm), + cC3(mnfez, e188160, 2, (RF, RF_IF), rd_rm), + + cC3(abss, e208100, 2, (RF, RF_IF), rd_rm), + cC3(abssp, e208120, 2, (RF, RF_IF), rd_rm), + cC3(abssm, e208140, 2, (RF, RF_IF), rd_rm), + cC3(abssz, e208160, 2, (RF, RF_IF), rd_rm), + cC3(absd, e208180, 2, (RF, RF_IF), rd_rm), + cC3(absdp, e2081a0, 2, (RF, RF_IF), rd_rm), + cC3(absdm, e2081c0, 2, (RF, RF_IF), rd_rm), + cC3(absdz, e2081e0, 2, (RF, RF_IF), rd_rm), + cC3(abse, e288100, 2, (RF, RF_IF), rd_rm), + cC3(absep, e288120, 2, (RF, RF_IF), rd_rm), + cC3(absem, e288140, 2, (RF, RF_IF), rd_rm), + cC3(absez, e288160, 2, (RF, RF_IF), rd_rm), + + cC3(rnds, e308100, 2, (RF, RF_IF), rd_rm), + cC3(rndsp, e308120, 2, (RF, RF_IF), rd_rm), + cC3(rndsm, e308140, 2, (RF, RF_IF), rd_rm), + cC3(rndsz, e308160, 2, (RF, RF_IF), rd_rm), + cC3(rndd, e308180, 2, (RF, RF_IF), rd_rm), + cC3(rnddp, e3081a0, 2, (RF, RF_IF), rd_rm), + cC3(rnddm, e3081c0, 2, (RF, RF_IF), rd_rm), + cC3(rnddz, e3081e0, 2, (RF, RF_IF), rd_rm), + cC3(rnde, e388100, 2, (RF, RF_IF), rd_rm), + cC3(rndep, e388120, 2, (RF, RF_IF), rd_rm), + cC3(rndem, e388140, 2, (RF, RF_IF), rd_rm), + cC3(rndez, e388160, 2, (RF, RF_IF), rd_rm), + + cC3(sqts, e408100, 2, (RF, RF_IF), rd_rm), + cC3(sqtsp, e408120, 2, (RF, RF_IF), rd_rm), + cC3(sqtsm, e408140, 2, (RF, RF_IF), rd_rm), + cC3(sqtsz, e408160, 2, (RF, RF_IF), rd_rm), + cC3(sqtd, e408180, 2, (RF, RF_IF), rd_rm), + cC3(sqtdp, e4081a0, 2, (RF, RF_IF), rd_rm), + cC3(sqtdm, e4081c0, 2, (RF, RF_IF), rd_rm), + cC3(sqtdz, e4081e0, 2, (RF, RF_IF), rd_rm), + cC3(sqte, e488100, 2, (RF, RF_IF), rd_rm), + cC3(sqtep, e488120, 2, (RF, RF_IF), rd_rm), + cC3(sqtem, e488140, 2, (RF, RF_IF), rd_rm), + cC3(sqtez, e488160, 2, (RF, RF_IF), rd_rm), + + cC3(logs, e508100, 2, (RF, RF_IF), rd_rm), + cC3(logsp, e508120, 2, (RF, RF_IF), rd_rm), + cC3(logsm, e508140, 2, (RF, RF_IF), rd_rm), + cC3(logsz, e508160, 2, (RF, RF_IF), rd_rm), + cC3(logd, e508180, 2, (RF, RF_IF), rd_rm), + cC3(logdp, e5081a0, 2, (RF, RF_IF), rd_rm), + cC3(logdm, e5081c0, 2, (RF, RF_IF), rd_rm), + cC3(logdz, e5081e0, 2, (RF, RF_IF), rd_rm), + cC3(loge, e588100, 2, (RF, RF_IF), rd_rm), + cC3(logep, e588120, 2, (RF, RF_IF), rd_rm), + cC3(logem, e588140, 2, (RF, RF_IF), rd_rm), + cC3(logez, e588160, 2, (RF, RF_IF), rd_rm), + + cC3(lgns, e608100, 2, (RF, RF_IF), rd_rm), + cC3(lgnsp, e608120, 2, (RF, RF_IF), rd_rm), + cC3(lgnsm, e608140, 2, (RF, RF_IF), rd_rm), + cC3(lgnsz, e608160, 2, (RF, RF_IF), rd_rm), + cC3(lgnd, e608180, 2, (RF, RF_IF), rd_rm), + cC3(lgndp, e6081a0, 2, (RF, RF_IF), rd_rm), + cC3(lgndm, e6081c0, 2, (RF, RF_IF), rd_rm), + cC3(lgndz, e6081e0, 2, (RF, RF_IF), rd_rm), + cC3(lgne, e688100, 2, (RF, RF_IF), rd_rm), + cC3(lgnep, e688120, 2, (RF, RF_IF), rd_rm), + cC3(lgnem, e688140, 2, (RF, RF_IF), rd_rm), + cC3(lgnez, e688160, 2, (RF, RF_IF), rd_rm), + + cC3(exps, e708100, 2, (RF, RF_IF), rd_rm), + cC3(expsp, e708120, 2, (RF, RF_IF), rd_rm), + cC3(expsm, e708140, 2, (RF, RF_IF), rd_rm), + cC3(expsz, e708160, 2, (RF, RF_IF), rd_rm), + cC3(expd, e708180, 2, (RF, RF_IF), rd_rm), + cC3(expdp, e7081a0, 2, (RF, RF_IF), rd_rm), + cC3(expdm, e7081c0, 2, (RF, RF_IF), rd_rm), + cC3(expdz, e7081e0, 2, (RF, RF_IF), rd_rm), + cC3(expe, e788100, 2, (RF, RF_IF), rd_rm), + cC3(expep, e788120, 2, (RF, RF_IF), rd_rm), + cC3(expem, e788140, 2, (RF, RF_IF), rd_rm), + cC3(expdz, e788160, 2, (RF, RF_IF), rd_rm), + + cC3(sins, e808100, 2, (RF, RF_IF), rd_rm), + cC3(sinsp, e808120, 2, (RF, RF_IF), rd_rm), + cC3(sinsm, e808140, 2, (RF, RF_IF), rd_rm), + cC3(sinsz, e808160, 2, (RF, RF_IF), rd_rm), + cC3(sind, e808180, 2, (RF, RF_IF), rd_rm), + cC3(sindp, e8081a0, 2, (RF, RF_IF), rd_rm), + cC3(sindm, e8081c0, 2, (RF, RF_IF), rd_rm), + cC3(sindz, e8081e0, 2, (RF, RF_IF), rd_rm), + cC3(sine, e888100, 2, (RF, RF_IF), rd_rm), + cC3(sinep, e888120, 2, (RF, RF_IF), rd_rm), + cC3(sinem, e888140, 2, (RF, RF_IF), rd_rm), + cC3(sinez, e888160, 2, (RF, RF_IF), rd_rm), + + cC3(coss, e908100, 2, (RF, RF_IF), rd_rm), + cC3(cossp, e908120, 2, (RF, RF_IF), rd_rm), + cC3(cossm, e908140, 2, (RF, RF_IF), rd_rm), + cC3(cossz, e908160, 2, (RF, RF_IF), rd_rm), + cC3(cosd, e908180, 2, (RF, RF_IF), rd_rm), + cC3(cosdp, e9081a0, 2, (RF, RF_IF), rd_rm), + cC3(cosdm, e9081c0, 2, (RF, RF_IF), rd_rm), + cC3(cosdz, e9081e0, 2, (RF, RF_IF), rd_rm), + cC3(cose, e988100, 2, (RF, RF_IF), rd_rm), + cC3(cosep, e988120, 2, (RF, RF_IF), rd_rm), + cC3(cosem, e988140, 2, (RF, RF_IF), rd_rm), + cC3(cosez, e988160, 2, (RF, RF_IF), rd_rm), + + cC3(tans, ea08100, 2, (RF, RF_IF), rd_rm), + cC3(tansp, ea08120, 2, (RF, RF_IF), rd_rm), + cC3(tansm, ea08140, 2, (RF, RF_IF), rd_rm), + cC3(tansz, ea08160, 2, (RF, RF_IF), rd_rm), + cC3(tand, ea08180, 2, (RF, RF_IF), rd_rm), + cC3(tandp, ea081a0, 2, (RF, RF_IF), rd_rm), + cC3(tandm, ea081c0, 2, (RF, RF_IF), rd_rm), + cC3(tandz, ea081e0, 2, (RF, RF_IF), rd_rm), + cC3(tane, ea88100, 2, (RF, RF_IF), rd_rm), + cC3(tanep, ea88120, 2, (RF, RF_IF), rd_rm), + cC3(tanem, ea88140, 2, (RF, RF_IF), rd_rm), + cC3(tanez, ea88160, 2, (RF, RF_IF), rd_rm), + + cC3(asns, eb08100, 2, (RF, RF_IF), rd_rm), + cC3(asnsp, eb08120, 2, (RF, RF_IF), rd_rm), + cC3(asnsm, eb08140, 2, (RF, RF_IF), rd_rm), + cC3(asnsz, eb08160, 2, (RF, RF_IF), rd_rm), + cC3(asnd, eb08180, 2, (RF, RF_IF), rd_rm), + cC3(asndp, eb081a0, 2, (RF, RF_IF), rd_rm), + cC3(asndm, eb081c0, 2, (RF, RF_IF), rd_rm), + cC3(asndz, eb081e0, 2, (RF, RF_IF), rd_rm), + cC3(asne, eb88100, 2, (RF, RF_IF), rd_rm), + cC3(asnep, eb88120, 2, (RF, RF_IF), rd_rm), + cC3(asnem, eb88140, 2, (RF, RF_IF), rd_rm), + cC3(asnez, eb88160, 2, (RF, RF_IF), rd_rm), + + cC3(acss, ec08100, 2, (RF, RF_IF), rd_rm), + cC3(acssp, ec08120, 2, (RF, RF_IF), rd_rm), + cC3(acssm, ec08140, 2, (RF, RF_IF), rd_rm), + cC3(acssz, ec08160, 2, (RF, RF_IF), rd_rm), + cC3(acsd, ec08180, 2, (RF, RF_IF), rd_rm), + cC3(acsdp, ec081a0, 2, (RF, RF_IF), rd_rm), + cC3(acsdm, ec081c0, 2, (RF, RF_IF), rd_rm), + cC3(acsdz, ec081e0, 2, (RF, RF_IF), rd_rm), + cC3(acse, ec88100, 2, (RF, RF_IF), rd_rm), + cC3(acsep, ec88120, 2, (RF, RF_IF), rd_rm), + cC3(acsem, ec88140, 2, (RF, RF_IF), rd_rm), + cC3(acsez, ec88160, 2, (RF, RF_IF), rd_rm), + + cC3(atns, ed08100, 2, (RF, RF_IF), rd_rm), + cC3(atnsp, ed08120, 2, (RF, RF_IF), rd_rm), + cC3(atnsm, ed08140, 2, (RF, RF_IF), rd_rm), + cC3(atnsz, ed08160, 2, (RF, RF_IF), rd_rm), + cC3(atnd, ed08180, 2, (RF, RF_IF), rd_rm), + cC3(atndp, ed081a0, 2, (RF, RF_IF), rd_rm), + cC3(atndm, ed081c0, 2, (RF, RF_IF), rd_rm), + cC3(atndz, ed081e0, 2, (RF, RF_IF), rd_rm), + cC3(atne, ed88100, 2, (RF, RF_IF), rd_rm), + cC3(atnep, ed88120, 2, (RF, RF_IF), rd_rm), + cC3(atnem, ed88140, 2, (RF, RF_IF), rd_rm), + cC3(atnez, ed88160, 2, (RF, RF_IF), rd_rm), + + cC3(urds, ee08100, 2, (RF, RF_IF), rd_rm), + cC3(urdsp, ee08120, 2, (RF, RF_IF), rd_rm), + cC3(urdsm, ee08140, 2, (RF, RF_IF), rd_rm), + cC3(urdsz, ee08160, 2, (RF, RF_IF), rd_rm), + cC3(urdd, ee08180, 2, (RF, RF_IF), rd_rm), + cC3(urddp, ee081a0, 2, (RF, RF_IF), rd_rm), + cC3(urddm, ee081c0, 2, (RF, RF_IF), rd_rm), + cC3(urddz, ee081e0, 2, (RF, RF_IF), rd_rm), + cC3(urde, ee88100, 2, (RF, RF_IF), rd_rm), + cC3(urdep, ee88120, 2, (RF, RF_IF), rd_rm), + cC3(urdem, ee88140, 2, (RF, RF_IF), rd_rm), + cC3(urdez, ee88160, 2, (RF, RF_IF), rd_rm), + + cC3(nrms, ef08100, 2, (RF, RF_IF), rd_rm), + cC3(nrmsp, ef08120, 2, (RF, RF_IF), rd_rm), + cC3(nrmsm, ef08140, 2, (RF, RF_IF), rd_rm), + cC3(nrmsz, ef08160, 2, (RF, RF_IF), rd_rm), + cC3(nrmd, ef08180, 2, (RF, RF_IF), rd_rm), + cC3(nrmdp, ef081a0, 2, (RF, RF_IF), rd_rm), + cC3(nrmdm, ef081c0, 2, (RF, RF_IF), rd_rm), + cC3(nrmdz, ef081e0, 2, (RF, RF_IF), rd_rm), + cC3(nrme, ef88100, 2, (RF, RF_IF), rd_rm), + cC3(nrmep, ef88120, 2, (RF, RF_IF), rd_rm), + cC3(nrmem, ef88140, 2, (RF, RF_IF), rd_rm), + cC3(nrmez, ef88160, 2, (RF, RF_IF), rd_rm), + + cC3(adfs, e000100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfsp, e000120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfsm, e000140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfsz, e000160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfd, e000180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfdp, e0001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfdm, e0001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfdz, e0001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfe, e080100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfep, e080120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfem, e080140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(adfez, e080160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(sufs, e200100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufsp, e200120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufsm, e200140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufsz, e200160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufd, e200180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufdp, e2001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufdm, e2001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufdz, e2001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufe, e280100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufep, e280120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufem, e280140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(sufez, e280160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(rsfs, e300100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfsp, e300120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfsm, e300140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfsz, e300160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfd, e300180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfdp, e3001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfdm, e3001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfdz, e3001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfe, e380100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfep, e380120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfem, e380140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rsfez, e380160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(mufs, e100100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufsp, e100120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufsm, e100140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufsz, e100160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufd, e100180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufdp, e1001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufdm, e1001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufdz, e1001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufe, e180100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufep, e180120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufem, e180140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(mufez, e180160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(dvfs, e400100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfsp, e400120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfsm, e400140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfsz, e400160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfd, e400180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfdp, e4001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfdm, e4001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfdz, e4001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfe, e480100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfep, e480120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfem, e480140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(dvfez, e480160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(rdfs, e500100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfsp, e500120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfsm, e500140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfsz, e500160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfd, e500180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfdp, e5001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfdm, e5001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfdz, e5001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfe, e580100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfep, e580120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfem, e580140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rdfez, e580160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(pows, e600100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powsp, e600120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powsm, e600140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powsz, e600160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powd, e600180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powdp, e6001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powdm, e6001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powdz, e6001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powe, e680100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powep, e680120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powem, e680140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(powez, e680160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(rpws, e700100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwsp, e700120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwsm, e700140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwsz, e700160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwd, e700180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwdp, e7001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwdm, e7001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwdz, e7001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwe, e780100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwep, e780120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwem, e780140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rpwez, e780160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(rmfs, e800100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfsp, e800120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfsm, e800140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfsz, e800160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfd, e800180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfdp, e8001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfdm, e8001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfdz, e8001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfe, e880100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfep, e880120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfem, e880140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(rmfez, e880160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(fmls, e900100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmlsp, e900120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmlsm, e900140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmlsz, e900160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmld, e900180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmldp, e9001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmldm, e9001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmldz, e9001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmle, e980100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmlep, e980120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmlem, e980140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fmlez, e980160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(fdvs, ea00100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvsp, ea00120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvsm, ea00140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvsz, ea00160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvd, ea00180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvdp, ea001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvdm, ea001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvdz, ea001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdve, ea80100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvep, ea80120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvem, ea80140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(fdvez, ea80160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(frds, eb00100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frdsp, eb00120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frdsm, eb00140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frdsz, eb00160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frdd, eb00180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frddp, eb001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frddm, eb001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frddz, eb001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frde, eb80100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frdep, eb80120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frdem, eb80140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(frdez, eb80160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cC3(pols, ec00100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(polsp, ec00120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(polsm, ec00140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(polsz, ec00160, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(pold, ec00180, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(poldp, ec001a0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(poldm, ec001c0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(poldz, ec001e0, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(pole, ec80100, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(polep, ec80120, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(polem, ec80140, 3, (RF, RF, RF_IF), rd_rn_rm), + cC3(polez, ec80160, 3, (RF, RF, RF_IF), rd_rn_rm), + + cCE(cmf, e90f110, 2, (RF, RF_IF), fpa_cmp), C3E(cmfe, ed0f110, 2, (RF, RF_IF), fpa_cmp), - CE(cnf, eb0f110, 2, (RF, RF_IF), fpa_cmp), + cCE(cnf, eb0f110, 2, (RF, RF_IF), fpa_cmp), C3E(cnfe, ef0f110, 2, (RF, RF_IF), fpa_cmp), - C3(flts, e000110, 2, (RF, RR), rn_rd), - C3(fltsp, e000130, 2, (RF, RR), rn_rd), - C3(fltsm, e000150, 2, (RF, RR), rn_rd), - C3(fltsz, e000170, 2, (RF, RR), rn_rd), - C3(fltd, e000190, 2, (RF, RR), rn_rd), - C3(fltdp, e0001b0, 2, (RF, RR), rn_rd), - C3(fltdm, e0001d0, 2, (RF, RR), rn_rd), - C3(fltdz, e0001f0, 2, (RF, RR), rn_rd), - C3(flte, e080110, 2, (RF, RR), rn_rd), - C3(fltep, e080130, 2, (RF, RR), rn_rd), - C3(fltem, e080150, 2, (RF, RR), rn_rd), - C3(fltez, e080170, 2, (RF, RR), rn_rd), + cC3(flts, e000110, 2, (RF, RR), rn_rd), + cC3(fltsp, e000130, 2, (RF, RR), rn_rd), + cC3(fltsm, e000150, 2, (RF, RR), rn_rd), + cC3(fltsz, e000170, 2, (RF, RR), rn_rd), + cC3(fltd, e000190, 2, (RF, RR), rn_rd), + cC3(fltdp, e0001b0, 2, (RF, RR), rn_rd), + cC3(fltdm, e0001d0, 2, (RF, RR), rn_rd), + cC3(fltdz, e0001f0, 2, (RF, RR), rn_rd), + cC3(flte, e080110, 2, (RF, RR), rn_rd), + cC3(fltep, e080130, 2, (RF, RR), rn_rd), + cC3(fltem, e080150, 2, (RF, RR), rn_rd), + cC3(fltez, e080170, 2, (RF, RR), rn_rd), /* The implementation of the FIX instruction is broken on some assemblers, in that it accepts a precision specifier as well as a rounding specifier, despite the fact that this is meaningless. To be more compatible, we accept it as well, though of course it does not set any bits. */ - CE(fix, e100110, 2, (RR, RF), rd_rm), - C3(fixp, e100130, 2, (RR, RF), rd_rm), - C3(fixm, e100150, 2, (RR, RF), rd_rm), - C3(fixz, e100170, 2, (RR, RF), rd_rm), - C3(fixsp, e100130, 2, (RR, RF), rd_rm), - C3(fixsm, e100150, 2, (RR, RF), rd_rm), - C3(fixsz, e100170, 2, (RR, RF), rd_rm), - C3(fixdp, e100130, 2, (RR, RF), rd_rm), - C3(fixdm, e100150, 2, (RR, RF), rd_rm), - C3(fixdz, e100170, 2, (RR, RF), rd_rm), - C3(fixep, e100130, 2, (RR, RF), rd_rm), - C3(fixem, e100150, 2, (RR, RF), rd_rm), - C3(fixez, e100170, 2, (RR, RF), rd_rm), + cCE(fix, e100110, 2, (RR, RF), rd_rm), + cC3(fixp, e100130, 2, (RR, RF), rd_rm), + cC3(fixm, e100150, 2, (RR, RF), rd_rm), + cC3(fixz, e100170, 2, (RR, RF), rd_rm), + cC3(fixsp, e100130, 2, (RR, RF), rd_rm), + cC3(fixsm, e100150, 2, (RR, RF), rd_rm), + cC3(fixsz, e100170, 2, (RR, RF), rd_rm), + cC3(fixdp, e100130, 2, (RR, RF), rd_rm), + cC3(fixdm, e100150, 2, (RR, RF), rd_rm), + cC3(fixdz, e100170, 2, (RR, RF), rd_rm), + cC3(fixep, e100130, 2, (RR, RF), rd_rm), + cC3(fixem, e100150, 2, (RR, RF), rd_rm), + cC3(fixez, e100170, 2, (RR, RF), rd_rm), /* Instructions that were new with the real FPA, call them V2. */ #undef ARM_VARIANT #define ARM_VARIANT FPU_FPA_EXT_V2 - CE(lfm, c100200, 3, (RF, I4b, ADDR), fpa_ldmstm), - C3(lfmfd, c900200, 3, (RF, I4b, ADDR), fpa_ldmstm), - C3(lfmea, d100200, 3, (RF, I4b, ADDR), fpa_ldmstm), - CE(sfm, c000200, 3, (RF, I4b, ADDR), fpa_ldmstm), - C3(sfmfd, d000200, 3, (RF, I4b, ADDR), fpa_ldmstm), - C3(sfmea, c800200, 3, (RF, I4b, ADDR), fpa_ldmstm), + cCE(lfm, c100200, 3, (RF, I4b, ADDR), fpa_ldmstm), + cC3(lfmfd, c900200, 3, (RF, I4b, ADDR), fpa_ldmstm), + cC3(lfmea, d100200, 3, (RF, I4b, ADDR), fpa_ldmstm), + cCE(sfm, c000200, 3, (RF, I4b, ADDR), fpa_ldmstm), + cC3(sfmfd, d000200, 3, (RF, I4b, ADDR), fpa_ldmstm), + cC3(sfmea, c800200, 3, (RF, I4b, ADDR), fpa_ldmstm), #undef ARM_VARIANT #define ARM_VARIANT FPU_VFP_EXT_V1xD /* VFP V1xD (single precision). */ /* Moves and type conversions. */ - CE(fcpys, eb00a40, 2, (RVS, RVS), vfp_sp_monadic), - CE(fmrs, e100a10, 2, (RR, RVS), vfp_reg_from_sp), - CE(fmsr, e000a10, 2, (RVS, RR), vfp_sp_from_reg), - CE(fmstat, ef1fa10, 0, (), noargs), - CE(fsitos, eb80ac0, 2, (RVS, RVS), vfp_sp_monadic), - CE(fuitos, eb80a40, 2, (RVS, RVS), vfp_sp_monadic), - CE(ftosis, ebd0a40, 2, (RVS, RVS), vfp_sp_monadic), - CE(ftosizs, ebd0ac0, 2, (RVS, RVS), vfp_sp_monadic), - CE(ftouis, ebc0a40, 2, (RVS, RVS), vfp_sp_monadic), - CE(ftouizs, ebc0ac0, 2, (RVS, RVS), vfp_sp_monadic), - CE(fmrx, ef00a10, 2, (RR, RVC), rd_rn), - CE(fmxr, ee00a10, 2, (RVC, RR), rn_rd), + cCE(fcpys, eb00a40, 2, (RVS, RVS), vfp_sp_monadic), + cCE(fmrs, e100a10, 2, (RR, RVS), vfp_reg_from_sp), + cCE(fmsr, e000a10, 2, (RVS, RR), vfp_sp_from_reg), + cCE(fmstat, ef1fa10, 0, (), noargs), + cCE(fsitos, eb80ac0, 2, (RVS, RVS), vfp_sp_monadic), + cCE(fuitos, eb80a40, 2, (RVS, RVS), vfp_sp_monadic), + cCE(ftosis, ebd0a40, 2, (RVS, RVS), vfp_sp_monadic), + cCE(ftosizs, ebd0ac0, 2, (RVS, RVS), vfp_sp_monadic), + cCE(ftouis, ebc0a40, 2, (RVS, RVS), vfp_sp_monadic), + cCE(ftouizs, ebc0ac0, 2, (RVS, RVS), vfp_sp_monadic), + cCE(fmrx, ef00a10, 2, (RR, RVC), rd_rn), + cCE(fmxr, ee00a10, 2, (RVC, RR), rn_rd), /* Memory operations. */ - CE(flds, d100a00, 2, (RVS, ADDR), vfp_sp_ldst), - CE(fsts, d000a00, 2, (RVS, ADDR), vfp_sp_ldst), - CE(fldmias, c900a00, 2, (RRw, VRSLST), vfp_sp_ldstmia), - CE(fldmfds, c900a00, 2, (RRw, VRSLST), vfp_sp_ldstmia), - CE(fldmdbs, d300a00, 2, (RRw, VRSLST), vfp_sp_ldstmdb), - CE(fldmeas, d300a00, 2, (RRw, VRSLST), vfp_sp_ldstmdb), - CE(fldmiax, c900b00, 2, (RRw, VRDLST), vfp_xp_ldstmia), - CE(fldmfdx, c900b00, 2, (RRw, VRDLST), vfp_xp_ldstmia), - CE(fldmdbx, d300b00, 2, (RRw, VRDLST), vfp_xp_ldstmdb), - CE(fldmeax, d300b00, 2, (RRw, VRDLST), vfp_xp_ldstmdb), - CE(fstmias, c800a00, 2, (RRw, VRSLST), vfp_sp_ldstmia), - CE(fstmeas, c800a00, 2, (RRw, VRSLST), vfp_sp_ldstmia), - CE(fstmdbs, d200a00, 2, (RRw, VRSLST), vfp_sp_ldstmdb), - CE(fstmfds, d200a00, 2, (RRw, VRSLST), vfp_sp_ldstmdb), - CE(fstmiax, c800b00, 2, (RRw, VRDLST), vfp_xp_ldstmia), - CE(fstmeax, c800b00, 2, (RRw, VRDLST), vfp_xp_ldstmia), - CE(fstmdbx, d200b00, 2, (RRw, VRDLST), vfp_xp_ldstmdb), - CE(fstmfdx, d200b00, 2, (RRw, VRDLST), vfp_xp_ldstmdb), + cCE(flds, d100a00, 2, (RVS, ADDR), vfp_sp_ldst), + cCE(fsts, d000a00, 2, (RVS, ADDR), vfp_sp_ldst), + cCE(fldmias, c900a00, 2, (RRw, VRSLST), vfp_sp_ldstmia), + cCE(fldmfds, c900a00, 2, (RRw, VRSLST), vfp_sp_ldstmia), + cCE(fldmdbs, d300a00, 2, (RRw, VRSLST), vfp_sp_ldstmdb), + cCE(fldmeas, d300a00, 2, (RRw, VRSLST), vfp_sp_ldstmdb), + cCE(fldmiax, c900b00, 2, (RRw, VRDLST), vfp_xp_ldstmia), + cCE(fldmfdx, c900b00, 2, (RRw, VRDLST), vfp_xp_ldstmia), + cCE(fldmdbx, d300b00, 2, (RRw, VRDLST), vfp_xp_ldstmdb), + cCE(fldmeax, d300b00, 2, (RRw, VRDLST), vfp_xp_ldstmdb), + cCE(fstmias, c800a00, 2, (RRw, VRSLST), vfp_sp_ldstmia), + cCE(fstmeas, c800a00, 2, (RRw, VRSLST), vfp_sp_ldstmia), + cCE(fstmdbs, d200a00, 2, (RRw, VRSLST), vfp_sp_ldstmdb), + cCE(fstmfds, d200a00, 2, (RRw, VRSLST), vfp_sp_ldstmdb), + cCE(fstmiax, c800b00, 2, (RRw, VRDLST), vfp_xp_ldstmia), + cCE(fstmeax, c800b00, 2, (RRw, VRDLST), vfp_xp_ldstmia), + cCE(fstmdbx, d200b00, 2, (RRw, VRDLST), vfp_xp_ldstmdb), + cCE(fstmfdx, d200b00, 2, (RRw, VRDLST), vfp_xp_ldstmdb), /* Monadic operations. */ - CE(fabss, eb00ac0, 2, (RVS, RVS), vfp_sp_monadic), - CE(fnegs, eb10a40, 2, (RVS, RVS), vfp_sp_monadic), - CE(fsqrts, eb10ac0, 2, (RVS, RVS), vfp_sp_monadic), + cCE(fabss, eb00ac0, 2, (RVS, RVS), vfp_sp_monadic), + cCE(fnegs, eb10a40, 2, (RVS, RVS), vfp_sp_monadic), + cCE(fsqrts, eb10ac0, 2, (RVS, RVS), vfp_sp_monadic), /* Dyadic operations. */ - CE(fadds, e300a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), - CE(fsubs, e300a40, 3, (RVS, RVS, RVS), vfp_sp_dyadic), - CE(fmuls, e200a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), - CE(fdivs, e800a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), - CE(fmacs, e000a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), - CE(fmscs, e100a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), - CE(fnmuls, e200a40, 3, (RVS, RVS, RVS), vfp_sp_dyadic), - CE(fnmacs, e000a40, 3, (RVS, RVS, RVS), vfp_sp_dyadic), - CE(fnmscs, e100a40, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fadds, e300a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fsubs, e300a40, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fmuls, e200a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fdivs, e800a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fmacs, e000a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fmscs, e100a00, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fnmuls, e200a40, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fnmacs, e000a40, 3, (RVS, RVS, RVS), vfp_sp_dyadic), + cCE(fnmscs, e100a40, 3, (RVS, RVS, RVS), vfp_sp_dyadic), /* Comparisons. */ - CE(fcmps, eb40a40, 2, (RVS, RVS), vfp_sp_monadic), - CE(fcmpzs, eb50a40, 1, (RVS), vfp_sp_compare_z), - CE(fcmpes, eb40ac0, 2, (RVS, RVS), vfp_sp_monadic), - CE(fcmpezs, eb50ac0, 1, (RVS), vfp_sp_compare_z), + cCE(fcmps, eb40a40, 2, (RVS, RVS), vfp_sp_monadic), + cCE(fcmpzs, eb50a40, 1, (RVS), vfp_sp_compare_z), + cCE(fcmpes, eb40ac0, 2, (RVS, RVS), vfp_sp_monadic), + cCE(fcmpezs, eb50ac0, 1, (RVS), vfp_sp_compare_z), #undef ARM_VARIANT #define ARM_VARIANT FPU_VFP_EXT_V1 /* VFP V1 (Double precision). */ /* Moves and type conversions. */ - CE(fcpyd, eb00b40, 2, (RVD, RVD), rd_rm), - CE(fcvtds, eb70ac0, 2, (RVD, RVS), vfp_dp_sp_cvt), - CE(fcvtsd, eb70bc0, 2, (RVS, RVD), vfp_sp_dp_cvt), - CE(fmdhr, e200b10, 2, (RVD, RR), rn_rd), - CE(fmdlr, e000b10, 2, (RVD, RR), rn_rd), - CE(fmrdh, e300b10, 2, (RR, RVD), rd_rn), - CE(fmrdl, e100b10, 2, (RR, RVD), rd_rn), - CE(fsitod, eb80bc0, 2, (RVD, RVS), vfp_dp_sp_cvt), - CE(fuitod, eb80b40, 2, (RVD, RVS), vfp_dp_sp_cvt), - CE(ftosid, ebd0b40, 2, (RVS, RVD), vfp_sp_dp_cvt), - CE(ftosizd, ebd0bc0, 2, (RVS, RVD), vfp_sp_dp_cvt), - CE(ftouid, ebc0b40, 2, (RVS, RVD), vfp_sp_dp_cvt), - CE(ftouizd, ebc0bc0, 2, (RVS, RVD), vfp_sp_dp_cvt), + cCE(fcpyd, eb00b40, 2, (RVD, RVD), rd_rm), + cCE(fcvtds, eb70ac0, 2, (RVD, RVS), vfp_dp_sp_cvt), + cCE(fcvtsd, eb70bc0, 2, (RVS, RVD), vfp_sp_dp_cvt), + cCE(fmdhr, e200b10, 2, (RVD, RR), rn_rd), + cCE(fmdlr, e000b10, 2, (RVD, RR), rn_rd), + cCE(fmrdh, e300b10, 2, (RR, RVD), rd_rn), + cCE(fmrdl, e100b10, 2, (RR, RVD), rd_rn), + cCE(fsitod, eb80bc0, 2, (RVD, RVS), vfp_dp_sp_cvt), + cCE(fuitod, eb80b40, 2, (RVD, RVS), vfp_dp_sp_cvt), + cCE(ftosid, ebd0b40, 2, (RVS, RVD), vfp_sp_dp_cvt), + cCE(ftosizd, ebd0bc0, 2, (RVS, RVD), vfp_sp_dp_cvt), + cCE(ftouid, ebc0b40, 2, (RVS, RVD), vfp_sp_dp_cvt), + cCE(ftouizd, ebc0bc0, 2, (RVS, RVD), vfp_sp_dp_cvt), /* Memory operations. */ - CE(fldd, d100b00, 2, (RVD, ADDR), vfp_dp_ldst), - CE(fstd, d000b00, 2, (RVD, ADDR), vfp_dp_ldst), - CE(fldmiad, c900b00, 2, (RRw, VRDLST), vfp_dp_ldstmia), - CE(fldmfdd, c900b00, 2, (RRw, VRDLST), vfp_dp_ldstmia), - CE(fldmdbd, d300b00, 2, (RRw, VRDLST), vfp_dp_ldstmdb), - CE(fldmead, d300b00, 2, (RRw, VRDLST), vfp_dp_ldstmdb), - CE(fstmiad, c800b00, 2, (RRw, VRDLST), vfp_dp_ldstmia), - CE(fstmead, c800b00, 2, (RRw, VRDLST), vfp_dp_ldstmia), - CE(fstmdbd, d200b00, 2, (RRw, VRDLST), vfp_dp_ldstmdb), - CE(fstmfdd, d200b00, 2, (RRw, VRDLST), vfp_dp_ldstmdb), + cCE(fldd, d100b00, 2, (RVD, ADDR), vfp_dp_ldst), + cCE(fstd, d000b00, 2, (RVD, ADDR), vfp_dp_ldst), + cCE(fldmiad, c900b00, 2, (RRw, VRDLST), vfp_dp_ldstmia), + cCE(fldmfdd, c900b00, 2, (RRw, VRDLST), vfp_dp_ldstmia), + cCE(fldmdbd, d300b00, 2, (RRw, VRDLST), vfp_dp_ldstmdb), + cCE(fldmead, d300b00, 2, (RRw, VRDLST), vfp_dp_ldstmdb), + cCE(fstmiad, c800b00, 2, (RRw, VRDLST), vfp_dp_ldstmia), + cCE(fstmead, c800b00, 2, (RRw, VRDLST), vfp_dp_ldstmia), + cCE(fstmdbd, d200b00, 2, (RRw, VRDLST), vfp_dp_ldstmdb), + cCE(fstmfdd, d200b00, 2, (RRw, VRDLST), vfp_dp_ldstmdb), /* Monadic operations. */ - CE(fabsd, eb00bc0, 2, (RVD, RVD), rd_rm), - CE(fnegd, eb10b40, 2, (RVD, RVD), rd_rm), - CE(fsqrtd, eb10bc0, 2, (RVD, RVD), rd_rm), + cCE(fabsd, eb00bc0, 2, (RVD, RVD), rd_rm), + cCE(fnegd, eb10b40, 2, (RVD, RVD), rd_rm), + cCE(fsqrtd, eb10bc0, 2, (RVD, RVD), rd_rm), /* Dyadic operations. */ - CE(faddd, e300b00, 3, (RVD, RVD, RVD), rd_rn_rm), - CE(fsubd, e300b40, 3, (RVD, RVD, RVD), rd_rn_rm), - CE(fmuld, e200b00, 3, (RVD, RVD, RVD), rd_rn_rm), - CE(fdivd, e800b00, 3, (RVD, RVD, RVD), rd_rn_rm), - CE(fmacd, e000b00, 3, (RVD, RVD, RVD), rd_rn_rm), - CE(fmscd, e100b00, 3, (RVD, RVD, RVD), rd_rn_rm), - CE(fnmuld, e200b40, 3, (RVD, RVD, RVD), rd_rn_rm), - CE(fnmacd, e000b40, 3, (RVD, RVD, RVD), rd_rn_rm), - CE(fnmscd, e100b40, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(faddd, e300b00, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(fsubd, e300b40, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(fmuld, e200b00, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(fdivd, e800b00, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(fmacd, e000b00, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(fmscd, e100b00, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(fnmuld, e200b40, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(fnmacd, e000b40, 3, (RVD, RVD, RVD), rd_rn_rm), + cCE(fnmscd, e100b40, 3, (RVD, RVD, RVD), rd_rn_rm), /* Comparisons. */ - CE(fcmpd, eb40b40, 2, (RVD, RVD), rd_rm), - CE(fcmpzd, eb50b40, 1, (RVD), rd), - CE(fcmped, eb40bc0, 2, (RVD, RVD), rd_rm), - CE(fcmpezd, eb50bc0, 1, (RVD), rd), + cCE(fcmpd, eb40b40, 2, (RVD, RVD), rd_rm), + cCE(fcmpzd, eb50b40, 1, (RVD), rd), + cCE(fcmped, eb40bc0, 2, (RVD, RVD), rd_rm), + cCE(fcmpezd, eb50bc0, 1, (RVD), rd), #undef ARM_VARIANT #define ARM_VARIANT FPU_VFP_EXT_V2 - CE(fmsrr, c400a10, 3, (VRSLST, RR, RR), vfp_sp2_from_reg2), - CE(fmrrs, c500a10, 3, (RR, RR, VRSLST), vfp_reg2_from_sp2), - CE(fmdrr, c400b10, 3, (RVD, RR, RR), rm_rd_rn), - CE(fmrrd, c500b10, 3, (RR, RR, RVD), rd_rn_rm), + cCE(fmsrr, c400a10, 3, (VRSLST, RR, RR), vfp_sp2_from_reg2), + cCE(fmrrs, c500a10, 3, (RR, RR, VRSLST), vfp_reg2_from_sp2), + cCE(fmdrr, c400b10, 3, (RVD, RR, RR), rm_rd_rn), + cCE(fmrrd, c500b10, 3, (RR, RR, RVD), rd_rn_rm), #undef ARM_VARIANT #define ARM_VARIANT ARM_CEXT_XSCALE /* Intel XScale extensions. */ - CE(mia, e200010, 3, (RXA, RRnpc, RRnpc), xsc_mia), - CE(miaph, e280010, 3, (RXA, RRnpc, RRnpc), xsc_mia), - CE(miabb, e2c0010, 3, (RXA, RRnpc, RRnpc), xsc_mia), - CE(miabt, e2d0010, 3, (RXA, RRnpc, RRnpc), xsc_mia), - CE(miatb, e2e0010, 3, (RXA, RRnpc, RRnpc), xsc_mia), - CE(miatt, e2f0010, 3, (RXA, RRnpc, RRnpc), xsc_mia), - CE(mar, c400000, 3, (RXA, RRnpc, RRnpc), xsc_mar), - CE(mra, c500000, 3, (RRnpc, RRnpc, RXA), xsc_mra), + cCE(mia, e200010, 3, (RXA, RRnpc, RRnpc), xsc_mia), + cCE(miaph, e280010, 3, (RXA, RRnpc, RRnpc), xsc_mia), + cCE(miabb, e2c0010, 3, (RXA, RRnpc, RRnpc), xsc_mia), + cCE(miabt, e2d0010, 3, (RXA, RRnpc, RRnpc), xsc_mia), + cCE(miatb, e2e0010, 3, (RXA, RRnpc, RRnpc), xsc_mia), + cCE(miatt, e2f0010, 3, (RXA, RRnpc, RRnpc), xsc_mia), + cCE(mar, c400000, 3, (RXA, RRnpc, RRnpc), xsc_mar), + cCE(mra, c500000, 3, (RRnpc, RRnpc, RXA), xsc_mra), #undef ARM_VARIANT #define ARM_VARIANT ARM_CEXT_IWMMXT /* Intel Wireless MMX technology. */ - CE(tandcb, e13f130, 1, (RR), iwmmxt_tandorc), - CE(tandch, e53f130, 1, (RR), iwmmxt_tandorc), - CE(tandcw, e93f130, 1, (RR), iwmmxt_tandorc), - CE(tbcstb, e400010, 2, (RIWR, RR), rn_rd), - CE(tbcsth, e400050, 2, (RIWR, RR), rn_rd), - CE(tbcstw, e400090, 2, (RIWR, RR), rn_rd), - CE(textrcb, e130170, 2, (RR, I7), iwmmxt_textrc), - CE(textrch, e530170, 2, (RR, I7), iwmmxt_textrc), - CE(textrcw, e930170, 2, (RR, I7), iwmmxt_textrc), - CE(textrmub, e100070, 3, (RR, RIWR, I7), iwmmxt_textrm), - CE(textrmuh, e500070, 3, (RR, RIWR, I7), iwmmxt_textrm), - CE(textrmuw, e900070, 3, (RR, RIWR, I7), iwmmxt_textrm), - CE(textrmsb, e100078, 3, (RR, RIWR, I7), iwmmxt_textrm), - CE(textrmsh, e500078, 3, (RR, RIWR, I7), iwmmxt_textrm), - CE(textrmsw, e900078, 3, (RR, RIWR, I7), iwmmxt_textrm), - CE(tinsrb, e600010, 3, (RIWR, RR, I7), iwmmxt_tinsr), - CE(tinsrh, e600050, 3, (RIWR, RR, I7), iwmmxt_tinsr), - CE(tinsrw, e600090, 3, (RIWR, RR, I7), iwmmxt_tinsr), - CE(tmcr, e000110, 2, (RIWC, RR), rn_rd), - CE(tmcrr, c400000, 3, (RIWR, RR, RR), rm_rd_rn), - CE(tmia, e200010, 3, (RIWR, RR, RR), iwmmxt_tmia), - CE(tmiaph, e280010, 3, (RIWR, RR, RR), iwmmxt_tmia), - CE(tmiabb, e2c0010, 3, (RIWR, RR, RR), iwmmxt_tmia), - CE(tmiabt, e2d0010, 3, (RIWR, RR, RR), iwmmxt_tmia), - CE(tmiatb, e2e0010, 3, (RIWR, RR, RR), iwmmxt_tmia), - CE(tmiatt, e2f0010, 3, (RIWR, RR, RR), iwmmxt_tmia), - CE(tmovmskb, e100030, 2, (RR, RIWR), rd_rn), - CE(tmovmskh, e500030, 2, (RR, RIWR), rd_rn), - CE(tmovmskw, e900030, 2, (RR, RIWR), rd_rn), - CE(tmrc, e100110, 2, (RR, RIWC), rd_rn), - CE(tmrrc, c500000, 3, (RR, RR, RIWR), rd_rn_rm), - CE(torcb, e13f150, 1, (RR), iwmmxt_tandorc), - CE(torch, e53f150, 1, (RR), iwmmxt_tandorc), - CE(torcw, e93f150, 1, (RR), iwmmxt_tandorc), - CE(waccb, e0001c0, 2, (RIWR, RIWR), rd_rn), - CE(wacch, e4001c0, 2, (RIWR, RIWR), rd_rn), - CE(waccw, e8001c0, 2, (RIWR, RIWR), rd_rn), - CE(waddbss, e300180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waddb, e000180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waddbus, e100180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waddhss, e700180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waddh, e400180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waddhus, e500180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waddwss, eb00180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waddw, e800180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waddwus, e900180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(waligni, e000020, 4, (RIWR, RIWR, RIWR, I7), iwmmxt_waligni), - CE(walignr0, e800020, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(walignr1, e900020, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(walignr2, ea00020, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(walignr3, eb00020, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wand, e200000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wandn, e300000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wavg2b, e800000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wavg2br, e900000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wavg2h, ec00000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wavg2hr, ed00000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpeqb, e000060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpeqh, e400060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpeqw, e800060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpgtub, e100060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpgtuh, e500060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpgtuw, e900060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpgtsb, e300060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpgtsh, e700060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wcmpgtsw, eb00060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wldrb, c100000, 2, (RIWR, ADDR), iwmmxt_wldstbh), - CE(wldrh, c500000, 2, (RIWR, ADDR), iwmmxt_wldstbh), - CE(wldrw, c100100, 2, (RIWR_RIWC, ADDR), iwmmxt_wldstw), - CE(wldrd, c500100, 2, (RIWR, ADDR), iwmmxt_wldstd), - CE(wmacs, e600100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmacsz, e700100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmacu, e400100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmacuz, e500100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmadds, ea00100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmaddu, e800100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmaxsb, e200160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmaxsh, e600160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmaxsw, ea00160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmaxub, e000160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmaxuh, e400160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmaxuw, e800160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wminsb, e300160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wminsh, e700160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wminsw, eb00160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wminub, e100160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wminuh, e500160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wminuw, e900160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmov, e000000, 2, (RIWR, RIWR), iwmmxt_wmov), - CE(wmulsm, e300100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmulsl, e200100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmulum, e100100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wmulul, e000100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wor, e000000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wpackhss, e700080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wpackhus, e500080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wpackwss, eb00080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wpackwus, e900080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wpackdss, ef00080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wpackdus, ed00080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wrorh, e700040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wrorhg, e700148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wrorw, eb00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wrorwg, eb00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wrord, ef00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wrordg, ef00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wsadb, e000120, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsadbz, e100120, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsadh, e400120, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsadhz, e500120, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wshufh, e0001e0, 3, (RIWR, RIWR, I255), iwmmxt_wshufh), - CE(wsllh, e500040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsllhg, e500148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wsllw, e900040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsllwg, e900148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wslld, ed00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wslldg, ed00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wsrah, e400040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsrahg, e400148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wsraw, e800040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsrawg, e800148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wsrad, ec00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsradg, ec00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wsrlh, e600040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsrlhg, e600148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wsrlw, ea00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsrlwg, ea00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wsrld, ee00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsrldg, ee00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), - CE(wstrb, c000000, 2, (RIWR, ADDR), iwmmxt_wldstbh), - CE(wstrh, c400000, 2, (RIWR, ADDR), iwmmxt_wldstbh), - CE(wstrw, c000100, 2, (RIWR_RIWC, ADDR), iwmmxt_wldstw), - CE(wstrd, c400100, 2, (RIWR, ADDR), iwmmxt_wldstd), - CE(wsubbss, e3001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsubb, e0001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsubbus, e1001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsubhss, e7001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsubh, e4001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsubhus, e5001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsubwss, eb001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsubw, e8001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wsubwus, e9001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wunpckehub,e0000c0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckehuh,e4000c0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckehuw,e8000c0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckehsb,e2000c0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckehsh,e6000c0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckehsw,ea000c0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckihb, e1000c0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wunpckihh, e5000c0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wunpckihw, e9000c0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wunpckelub,e0000e0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckeluh,e4000e0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckeluw,e8000e0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckelsb,e2000e0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckelsh,e6000e0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckelsw,ea000e0, 2, (RIWR, RIWR), rd_rn), - CE(wunpckilb, e1000e0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wunpckilh, e5000e0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wunpckilw, e9000e0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wxor, e100000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), - CE(wzero, e300000, 1, (RIWR), iwmmxt_wzero), + cCE(tandcb, e13f130, 1, (RR), iwmmxt_tandorc), + cCE(tandch, e53f130, 1, (RR), iwmmxt_tandorc), + cCE(tandcw, e93f130, 1, (RR), iwmmxt_tandorc), + cCE(tbcstb, e400010, 2, (RIWR, RR), rn_rd), + cCE(tbcsth, e400050, 2, (RIWR, RR), rn_rd), + cCE(tbcstw, e400090, 2, (RIWR, RR), rn_rd), + cCE(textrcb, e130170, 2, (RR, I7), iwmmxt_textrc), + cCE(textrch, e530170, 2, (RR, I7), iwmmxt_textrc), + cCE(textrcw, e930170, 2, (RR, I7), iwmmxt_textrc), + cCE(textrmub, e100070, 3, (RR, RIWR, I7), iwmmxt_textrm), + cCE(textrmuh, e500070, 3, (RR, RIWR, I7), iwmmxt_textrm), + cCE(textrmuw, e900070, 3, (RR, RIWR, I7), iwmmxt_textrm), + cCE(textrmsb, e100078, 3, (RR, RIWR, I7), iwmmxt_textrm), + cCE(textrmsh, e500078, 3, (RR, RIWR, I7), iwmmxt_textrm), + cCE(textrmsw, e900078, 3, (RR, RIWR, I7), iwmmxt_textrm), + cCE(tinsrb, e600010, 3, (RIWR, RR, I7), iwmmxt_tinsr), + cCE(tinsrh, e600050, 3, (RIWR, RR, I7), iwmmxt_tinsr), + cCE(tinsrw, e600090, 3, (RIWR, RR, I7), iwmmxt_tinsr), + cCE(tmcr, e000110, 2, (RIWC, RR), rn_rd), + cCE(tmcrr, c400000, 3, (RIWR, RR, RR), rm_rd_rn), + cCE(tmia, e200010, 3, (RIWR, RR, RR), iwmmxt_tmia), + cCE(tmiaph, e280010, 3, (RIWR, RR, RR), iwmmxt_tmia), + cCE(tmiabb, e2c0010, 3, (RIWR, RR, RR), iwmmxt_tmia), + cCE(tmiabt, e2d0010, 3, (RIWR, RR, RR), iwmmxt_tmia), + cCE(tmiatb, e2e0010, 3, (RIWR, RR, RR), iwmmxt_tmia), + cCE(tmiatt, e2f0010, 3, (RIWR, RR, RR), iwmmxt_tmia), + cCE(tmovmskb, e100030, 2, (RR, RIWR), rd_rn), + cCE(tmovmskh, e500030, 2, (RR, RIWR), rd_rn), + cCE(tmovmskw, e900030, 2, (RR, RIWR), rd_rn), + cCE(tmrc, e100110, 2, (RR, RIWC), rd_rn), + cCE(tmrrc, c500000, 3, (RR, RR, RIWR), rd_rn_rm), + cCE(torcb, e13f150, 1, (RR), iwmmxt_tandorc), + cCE(torch, e53f150, 1, (RR), iwmmxt_tandorc), + cCE(torcw, e93f150, 1, (RR), iwmmxt_tandorc), + cCE(waccb, e0001c0, 2, (RIWR, RIWR), rd_rn), + cCE(wacch, e4001c0, 2, (RIWR, RIWR), rd_rn), + cCE(waccw, e8001c0, 2, (RIWR, RIWR), rd_rn), + cCE(waddbss, e300180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waddb, e000180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waddbus, e100180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waddhss, e700180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waddh, e400180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waddhus, e500180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waddwss, eb00180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waddw, e800180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waddwus, e900180, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(waligni, e000020, 4, (RIWR, RIWR, RIWR, I7), iwmmxt_waligni), + cCE(walignr0, e800020, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(walignr1, e900020, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(walignr2, ea00020, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(walignr3, eb00020, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wand, e200000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wandn, e300000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wavg2b, e800000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wavg2br, e900000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wavg2h, ec00000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wavg2hr, ed00000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpeqb, e000060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpeqh, e400060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpeqw, e800060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpgtub, e100060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpgtuh, e500060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpgtuw, e900060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpgtsb, e300060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpgtsh, e700060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wcmpgtsw, eb00060, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wldrb, c100000, 2, (RIWR, ADDR), iwmmxt_wldstbh), + cCE(wldrh, c500000, 2, (RIWR, ADDR), iwmmxt_wldstbh), + cCE(wldrw, c100100, 2, (RIWR_RIWC, ADDR), iwmmxt_wldstw), + cCE(wldrd, c500100, 2, (RIWR, ADDR), iwmmxt_wldstd), + cCE(wmacs, e600100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmacsz, e700100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmacu, e400100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmacuz, e500100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmadds, ea00100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmaddu, e800100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmaxsb, e200160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmaxsh, e600160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmaxsw, ea00160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmaxub, e000160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmaxuh, e400160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmaxuw, e800160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wminsb, e300160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wminsh, e700160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wminsw, eb00160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wminub, e100160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wminuh, e500160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wminuw, e900160, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmov, e000000, 2, (RIWR, RIWR), iwmmxt_wmov), + cCE(wmulsm, e300100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmulsl, e200100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmulum, e100100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wmulul, e000100, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wor, e000000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wpackhss, e700080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wpackhus, e500080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wpackwss, eb00080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wpackwus, e900080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wpackdss, ef00080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wpackdus, ed00080, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wrorh, e700040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wrorhg, e700148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wrorw, eb00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wrorwg, eb00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wrord, ef00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wrordg, ef00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wsadb, e000120, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsadbz, e100120, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsadh, e400120, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsadhz, e500120, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wshufh, e0001e0, 3, (RIWR, RIWR, I255), iwmmxt_wshufh), + cCE(wsllh, e500040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsllhg, e500148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wsllw, e900040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsllwg, e900148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wslld, ed00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wslldg, ed00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wsrah, e400040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsrahg, e400148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wsraw, e800040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsrawg, e800148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wsrad, ec00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsradg, ec00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wsrlh, e600040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsrlhg, e600148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wsrlw, ea00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsrlwg, ea00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wsrld, ee00040, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsrldg, ee00148, 3, (RIWR, RIWR, RIWG), rd_rn_rm), + cCE(wstrb, c000000, 2, (RIWR, ADDR), iwmmxt_wldstbh), + cCE(wstrh, c400000, 2, (RIWR, ADDR), iwmmxt_wldstbh), + cCE(wstrw, c000100, 2, (RIWR_RIWC, ADDR), iwmmxt_wldstw), + cCE(wstrd, c400100, 2, (RIWR, ADDR), iwmmxt_wldstd), + cCE(wsubbss, e3001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsubb, e0001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsubbus, e1001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsubhss, e7001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsubh, e4001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsubhus, e5001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsubwss, eb001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsubw, e8001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wsubwus, e9001a0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wunpckehub,e0000c0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckehuh,e4000c0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckehuw,e8000c0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckehsb,e2000c0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckehsh,e6000c0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckehsw,ea000c0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckihb, e1000c0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wunpckihh, e5000c0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wunpckihw, e9000c0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wunpckelub,e0000e0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckeluh,e4000e0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckeluw,e8000e0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckelsb,e2000e0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckelsh,e6000e0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckelsw,ea000e0, 2, (RIWR, RIWR), rd_rn), + cCE(wunpckilb, e1000e0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wunpckilh, e5000e0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wunpckilw, e9000e0, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wxor, e100000, 3, (RIWR, RIWR, RIWR), rd_rn_rm), + cCE(wzero, e300000, 1, (RIWR), iwmmxt_wzero), #undef ARM_VARIANT #define ARM_VARIANT ARM_CEXT_MAVERICK /* Cirrus Maverick instructions. */ - CE(cfldrs, c100400, 2, (RMF, ADDR), rd_cpaddr), - CE(cfldrd, c500400, 2, (RMD, ADDR), rd_cpaddr), - CE(cfldr32, c100500, 2, (RMFX, ADDR), rd_cpaddr), - CE(cfldr64, c500500, 2, (RMDX, ADDR), rd_cpaddr), - CE(cfstrs, c000400, 2, (RMF, ADDR), rd_cpaddr), - CE(cfstrd, c400400, 2, (RMD, ADDR), rd_cpaddr), - CE(cfstr32, c000500, 2, (RMFX, ADDR), rd_cpaddr), - CE(cfstr64, c400500, 2, (RMDX, ADDR), rd_cpaddr), - CE(cfmvsr, e000450, 2, (RMF, RR), rn_rd), - CE(cfmvrs, e100450, 2, (RR, RMF), rd_rn), - CE(cfmvdlr, e000410, 2, (RMD, RR), rn_rd), - CE(cfmvrdl, e100410, 2, (RR, RMD), rd_rn), - CE(cfmvdhr, e000430, 2, (RMD, RR), rn_rd), - CE(cfmvrdh, e100430, 2, (RR, RMD), rd_rn), - CE(cfmv64lr, e000510, 2, (RMDX, RR), rn_rd), - CE(cfmvr64l, e100510, 2, (RR, RMDX), rd_rn), - CE(cfmv64hr, e000530, 2, (RMDX, RR), rn_rd), - CE(cfmvr64h, e100530, 2, (RR, RMDX), rd_rn), - CE(cfmval32, e200440, 2, (RMAX, RMFX), rd_rn), - CE(cfmv32al, e100440, 2, (RMFX, RMAX), rd_rn), - CE(cfmvam32, e200460, 2, (RMAX, RMFX), rd_rn), - CE(cfmv32am, e100460, 2, (RMFX, RMAX), rd_rn), - CE(cfmvah32, e200480, 2, (RMAX, RMFX), rd_rn), - CE(cfmv32ah, e100480, 2, (RMFX, RMAX), rd_rn), - CE(cfmva32, e2004a0, 2, (RMAX, RMFX), rd_rn), - CE(cfmv32a, e1004a0, 2, (RMFX, RMAX), rd_rn), - CE(cfmva64, e2004c0, 2, (RMAX, RMDX), rd_rn), - CE(cfmv64a, e1004c0, 2, (RMDX, RMAX), rd_rn), - CE(cfmvsc32, e2004e0, 2, (RMDS, RMDX), mav_dspsc), - CE(cfmv32sc, e1004e0, 2, (RMDX, RMDS), rd), - CE(cfcpys, e000400, 2, (RMF, RMF), rd_rn), - CE(cfcpyd, e000420, 2, (RMD, RMD), rd_rn), - CE(cfcvtsd, e000460, 2, (RMD, RMF), rd_rn), - CE(cfcvtds, e000440, 2, (RMF, RMD), rd_rn), - CE(cfcvt32s, e000480, 2, (RMF, RMFX), rd_rn), - CE(cfcvt32d, e0004a0, 2, (RMD, RMFX), rd_rn), - CE(cfcvt64s, e0004c0, 2, (RMF, RMDX), rd_rn), - CE(cfcvt64d, e0004e0, 2, (RMD, RMDX), rd_rn), - CE(cfcvts32, e100580, 2, (RMFX, RMF), rd_rn), - CE(cfcvtd32, e1005a0, 2, (RMFX, RMD), rd_rn), - CE(cftruncs32,e1005c0, 2, (RMFX, RMF), rd_rn), - CE(cftruncd32,e1005e0, 2, (RMFX, RMD), rd_rn), - CE(cfrshl32, e000550, 3, (RMFX, RMFX, RR), mav_triple), - CE(cfrshl64, e000570, 3, (RMDX, RMDX, RR), mav_triple), - CE(cfsh32, e000500, 3, (RMFX, RMFX, I63s), mav_shift), - CE(cfsh64, e200500, 3, (RMDX, RMDX, I63s), mav_shift), - CE(cfcmps, e100490, 3, (RR, RMF, RMF), rd_rn_rm), - CE(cfcmpd, e1004b0, 3, (RR, RMD, RMD), rd_rn_rm), - CE(cfcmp32, e100590, 3, (RR, RMFX, RMFX), rd_rn_rm), - CE(cfcmp64, e1005b0, 3, (RR, RMDX, RMDX), rd_rn_rm), - CE(cfabss, e300400, 2, (RMF, RMF), rd_rn), - CE(cfabsd, e300420, 2, (RMD, RMD), rd_rn), - CE(cfnegs, e300440, 2, (RMF, RMF), rd_rn), - CE(cfnegd, e300460, 2, (RMD, RMD), rd_rn), - CE(cfadds, e300480, 3, (RMF, RMF, RMF), rd_rn_rm), - CE(cfaddd, e3004a0, 3, (RMD, RMD, RMD), rd_rn_rm), - CE(cfsubs, e3004c0, 3, (RMF, RMF, RMF), rd_rn_rm), - CE(cfsubd, e3004e0, 3, (RMD, RMD, RMD), rd_rn_rm), - CE(cfmuls, e100400, 3, (RMF, RMF, RMF), rd_rn_rm), - CE(cfmuld, e100420, 3, (RMD, RMD, RMD), rd_rn_rm), - CE(cfabs32, e300500, 2, (RMFX, RMFX), rd_rn), - CE(cfabs64, e300520, 2, (RMDX, RMDX), rd_rn), - CE(cfneg32, e300540, 2, (RMFX, RMFX), rd_rn), - CE(cfneg64, e300560, 2, (RMDX, RMDX), rd_rn), - CE(cfadd32, e300580, 3, (RMFX, RMFX, RMFX), rd_rn_rm), - CE(cfadd64, e3005a0, 3, (RMDX, RMDX, RMDX), rd_rn_rm), - CE(cfsub32, e3005c0, 3, (RMFX, RMFX, RMFX), rd_rn_rm), - CE(cfsub64, e3005e0, 3, (RMDX, RMDX, RMDX), rd_rn_rm), - CE(cfmul32, e100500, 3, (RMFX, RMFX, RMFX), rd_rn_rm), - CE(cfmul64, e100520, 3, (RMDX, RMDX, RMDX), rd_rn_rm), - CE(cfmac32, e100540, 3, (RMFX, RMFX, RMFX), rd_rn_rm), - CE(cfmsc32, e100560, 3, (RMFX, RMFX, RMFX), rd_rn_rm), - CE(cfmadd32, e000600, 4, (RMAX, RMFX, RMFX, RMFX), mav_quad), - CE(cfmsub32, e100600, 4, (RMAX, RMFX, RMFX, RMFX), mav_quad), - CE(cfmadda32, e200600, 4, (RMAX, RMAX, RMFX, RMFX), mav_quad), - CE(cfmsuba32, e300600, 4, (RMAX, RMAX, RMFX, RMFX), mav_quad), + cCE(cfldrs, c100400, 2, (RMF, ADDR), rd_cpaddr), + cCE(cfldrd, c500400, 2, (RMD, ADDR), rd_cpaddr), + cCE(cfldr32, c100500, 2, (RMFX, ADDR), rd_cpaddr), + cCE(cfldr64, c500500, 2, (RMDX, ADDR), rd_cpaddr), + cCE(cfstrs, c000400, 2, (RMF, ADDR), rd_cpaddr), + cCE(cfstrd, c400400, 2, (RMD, ADDR), rd_cpaddr), + cCE(cfstr32, c000500, 2, (RMFX, ADDR), rd_cpaddr), + cCE(cfstr64, c400500, 2, (RMDX, ADDR), rd_cpaddr), + cCE(cfmvsr, e000450, 2, (RMF, RR), rn_rd), + cCE(cfmvrs, e100450, 2, (RR, RMF), rd_rn), + cCE(cfmvdlr, e000410, 2, (RMD, RR), rn_rd), + cCE(cfmvrdl, e100410, 2, (RR, RMD), rd_rn), + cCE(cfmvdhr, e000430, 2, (RMD, RR), rn_rd), + cCE(cfmvrdh, e100430, 2, (RR, RMD), rd_rn), + cCE(cfmv64lr, e000510, 2, (RMDX, RR), rn_rd), + cCE(cfmvr64l, e100510, 2, (RR, RMDX), rd_rn), + cCE(cfmv64hr, e000530, 2, (RMDX, RR), rn_rd), + cCE(cfmvr64h, e100530, 2, (RR, RMDX), rd_rn), + cCE(cfmval32, e200440, 2, (RMAX, RMFX), rd_rn), + cCE(cfmv32al, e100440, 2, (RMFX, RMAX), rd_rn), + cCE(cfmvam32, e200460, 2, (RMAX, RMFX), rd_rn), + cCE(cfmv32am, e100460, 2, (RMFX, RMAX), rd_rn), + cCE(cfmvah32, e200480, 2, (RMAX, RMFX), rd_rn), + cCE(cfmv32ah, e100480, 2, (RMFX, RMAX), rd_rn), + cCE(cfmva32, e2004a0, 2, (RMAX, RMFX), rd_rn), + cCE(cfmv32a, e1004a0, 2, (RMFX, RMAX), rd_rn), + cCE(cfmva64, e2004c0, 2, (RMAX, RMDX), rd_rn), + cCE(cfmv64a, e1004c0, 2, (RMDX, RMAX), rd_rn), + cCE(cfmvsc32, e2004e0, 2, (RMDS, RMDX), mav_dspsc), + cCE(cfmv32sc, e1004e0, 2, (RMDX, RMDS), rd), + cCE(cfcpys, e000400, 2, (RMF, RMF), rd_rn), + cCE(cfcpyd, e000420, 2, (RMD, RMD), rd_rn), + cCE(cfcvtsd, e000460, 2, (RMD, RMF), rd_rn), + cCE(cfcvtds, e000440, 2, (RMF, RMD), rd_rn), + cCE(cfcvt32s, e000480, 2, (RMF, RMFX), rd_rn), + cCE(cfcvt32d, e0004a0, 2, (RMD, RMFX), rd_rn), + cCE(cfcvt64s, e0004c0, 2, (RMF, RMDX), rd_rn), + cCE(cfcvt64d, e0004e0, 2, (RMD, RMDX), rd_rn), + cCE(cfcvts32, e100580, 2, (RMFX, RMF), rd_rn), + cCE(cfcvtd32, e1005a0, 2, (RMFX, RMD), rd_rn), + cCE(cftruncs32,e1005c0, 2, (RMFX, RMF), rd_rn), + cCE(cftruncd32,e1005e0, 2, (RMFX, RMD), rd_rn), + cCE(cfrshl32, e000550, 3, (RMFX, RMFX, RR), mav_triple), + cCE(cfrshl64, e000570, 3, (RMDX, RMDX, RR), mav_triple), + cCE(cfsh32, e000500, 3, (RMFX, RMFX, I63s), mav_shift), + cCE(cfsh64, e200500, 3, (RMDX, RMDX, I63s), mav_shift), + cCE(cfcmps, e100490, 3, (RR, RMF, RMF), rd_rn_rm), + cCE(cfcmpd, e1004b0, 3, (RR, RMD, RMD), rd_rn_rm), + cCE(cfcmp32, e100590, 3, (RR, RMFX, RMFX), rd_rn_rm), + cCE(cfcmp64, e1005b0, 3, (RR, RMDX, RMDX), rd_rn_rm), + cCE(cfabss, e300400, 2, (RMF, RMF), rd_rn), + cCE(cfabsd, e300420, 2, (RMD, RMD), rd_rn), + cCE(cfnegs, e300440, 2, (RMF, RMF), rd_rn), + cCE(cfnegd, e300460, 2, (RMD, RMD), rd_rn), + cCE(cfadds, e300480, 3, (RMF, RMF, RMF), rd_rn_rm), + cCE(cfaddd, e3004a0, 3, (RMD, RMD, RMD), rd_rn_rm), + cCE(cfsubs, e3004c0, 3, (RMF, RMF, RMF), rd_rn_rm), + cCE(cfsubd, e3004e0, 3, (RMD, RMD, RMD), rd_rn_rm), + cCE(cfmuls, e100400, 3, (RMF, RMF, RMF), rd_rn_rm), + cCE(cfmuld, e100420, 3, (RMD, RMD, RMD), rd_rn_rm), + cCE(cfabs32, e300500, 2, (RMFX, RMFX), rd_rn), + cCE(cfabs64, e300520, 2, (RMDX, RMDX), rd_rn), + cCE(cfneg32, e300540, 2, (RMFX, RMFX), rd_rn), + cCE(cfneg64, e300560, 2, (RMDX, RMDX), rd_rn), + cCE(cfadd32, e300580, 3, (RMFX, RMFX, RMFX), rd_rn_rm), + cCE(cfadd64, e3005a0, 3, (RMDX, RMDX, RMDX), rd_rn_rm), + cCE(cfsub32, e3005c0, 3, (RMFX, RMFX, RMFX), rd_rn_rm), + cCE(cfsub64, e3005e0, 3, (RMDX, RMDX, RMDX), rd_rn_rm), + cCE(cfmul32, e100500, 3, (RMFX, RMFX, RMFX), rd_rn_rm), + cCE(cfmul64, e100520, 3, (RMDX, RMDX, RMDX), rd_rn_rm), + cCE(cfmac32, e100540, 3, (RMFX, RMFX, RMFX), rd_rn_rm), + cCE(cfmsc32, e100560, 3, (RMFX, RMFX, RMFX), rd_rn_rm), + cCE(cfmadd32, e000600, 4, (RMAX, RMFX, RMFX, RMFX), mav_quad), + cCE(cfmsub32, e100600, 4, (RMAX, RMFX, RMFX, RMFX), mav_quad), + cCE(cfmadda32, e200600, 4, (RMAX, RMAX, RMFX, RMFX), mav_quad), + cCE(cfmsuba32, e300600, 4, (RMAX, RMAX, RMFX, RMFX), mav_quad), }; #undef ARM_VARIANT #undef THUMB_VARIANT @@ -9513,6 +9533,8 @@ static const struct asm_opcode insns[] = #undef TUE #undef TUF #undef TCC +#undef cCE +#undef cC3 #undef CE #undef CM #undef UE @@ -10149,6 +10171,7 @@ md_pcrel_from_section (fixS * fixP, segT seg) case BFD_RELOC_ARM_THUMB_OFFSET: case BFD_RELOC_ARM_T32_OFFSET_IMM: case BFD_RELOC_ARM_T32_ADD_PC12: + case BFD_RELOC_ARM_T32_CP_OFF_IMM: return (base + 4) & ~3; /* Thumb branches are simply offset by +4. */ @@ -10351,6 +10374,25 @@ negate_data_op (unsigned long * instruction, return value; } +/* Read a 32-bit thumb instruction from buf. */ +static unsigned long +get_thumb32_insn (char * buf) +{ + unsigned long insn; + insn = md_chars_to_number (buf, THUMB_SIZE) << 16; + insn |= md_chars_to_number (buf + THUMB_SIZE, THUMB_SIZE); + + return insn; +} + +/* Write a 32-bit thumb instruction to buf. */ +static void +put_thumb32_insn (char * buf, unsigned long insn) +{ + md_number_to_chars (buf, insn >> 16, THUMB_SIZE); + md_number_to_chars (buf + THUMB_SIZE, insn, THUMB_SIZE); +} + void md_apply_fix (fixS * fixP, valueT * valP, @@ -10982,6 +11024,7 @@ md_apply_fix (fixS * fixP, #endif case BFD_RELOC_ARM_CP_OFF_IMM: + case BFD_RELOC_ARM_T32_CP_OFF_IMM: if (value < -1023 || value > 1023 || (value & 3)) as_bad_where (fixP->fx_file, fixP->fx_line, _("co-processor offset out of range")); @@ -10989,14 +11032,24 @@ md_apply_fix (fixS * fixP, sign = value >= 0; if (value < 0) value = -value; - newval = md_chars_to_number (buf, INSN_SIZE) & 0xff7fff00; + if (fixP->fx_r_type == BFD_RELOC_ARM_CP_OFF_IMM + || fixP->fx_r_type == BFD_RELOC_ARM_CP_OFF_IMM_S2) + newval = md_chars_to_number (buf, INSN_SIZE); + else + newval = get_thumb32_insn (buf); + newval &= 0xff7fff00; newval |= (value >> 2) | (sign ? INDEX_UP : 0); if (value == 0) newval &= ~WRITE_BACK; - md_number_to_chars (buf, newval, INSN_SIZE); + if (fixP->fx_r_type == BFD_RELOC_ARM_CP_OFF_IMM + || fixP->fx_r_type == BFD_RELOC_ARM_CP_OFF_IMM_S2) + md_number_to_chars (buf, newval, INSN_SIZE); + else + put_thumb32_insn (buf, newval); break; case BFD_RELOC_ARM_CP_OFF_IMM_S2: + case BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: if (value < -255 || value > 255) as_bad_where (fixP->fx_file, fixP->fx_line, _("co-processor offset out of range")); @@ -11314,6 +11367,7 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, case BFD_RELOC_ARM_SWI: type = "SWI"; break; case BFD_RELOC_ARM_MULTI: type = "MULTI"; break; case BFD_RELOC_ARM_CP_OFF_IMM: type = "CP_OFF_IMM"; break; + case BFD_RELOC_ARM_T32_CP_OFF_IMM: type = "T32_CP_OFF_IMM"; break; case BFD_RELOC_ARM_THUMB_ADD: type = "THUMB_ADD"; break; case BFD_RELOC_ARM_THUMB_SHIFT: type = "THUMB_SHIFT"; break; case BFD_RELOC_ARM_THUMB_IMM: type = "THUMB_IMM"; break; |