diff options
author | Nick Clifton <nickc@redhat.com> | 2009-12-02 20:26:30 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2009-12-02 20:26:30 +0000 |
commit | 03ee1b7f8eb5cee9654e9d789e0c46a098bed895 (patch) | |
tree | 44760d80f8168eb6f7d0b59222cfaf3f584b1cd3 /gas | |
parent | 8cebebb9a2f399f50f4284797528fb952dd80576 (diff) | |
download | gdb-03ee1b7f8eb5cee9654e9d789e0c46a098bed895.zip gdb-03ee1b7f8eb5cee9654e9d789e0c46a098bed895.tar.gz gdb-03ee1b7f8eb5cee9654e9d789e0c46a098bed895.tar.bz2 |
PR gas/11013
* arm-dis.c (thumb32_opc): Adjust disassembly of QADD, QDADD, QSUB
and QDSUB.
* gas/arm/arch7em.d: Update expected disassembly.
* gas/arm/thumb32.d: Likewise.
* config/tc-arm.c (do_t_simd2): New function.
(insns): Use do_t_simd2 for QADD, QDADD, QSUB and QDSUB.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 26 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/arch7em.d | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/thumb32.d | 8 |
5 files changed, 44 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 2624a46..f941c9f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2009-12-02 Nick Clifton <nickc@redhat.com> + Richard Earnshaw <rearnsha@arm.com> + + PR gas/11013 + * config/tc-arm.c (do_t_simd2): New function. + (insns): Use do_t_simd2 for QADD, QDADD, QSUB and QDSUB. + 2009-11-30 Joseph Myers <joseph@codesourcery.com> * configure: Regenerate. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 0ef05df..076c82b 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -11103,6 +11103,24 @@ do_t_simd (void) } static void +do_t_simd2 (void) +{ + unsigned Rd, Rn, Rm; + + Rd = inst.operands[0].reg; + Rm = inst.operands[1].reg; + Rn = inst.operands[2].reg; + + reject_bad_reg (Rd); + reject_bad_reg (Rn); + reject_bad_reg (Rm); + + inst.instruction |= Rd << 8; + inst.instruction |= Rn << 16; + inst.instruction |= Rm; +} + +static void do_t_smc (void) { unsigned int value = inst.reloc.exp.X_add_number; @@ -16494,10 +16512,10 @@ static const struct asm_opcode insns[] = TCE("smulwb", 12000a0, fb30f000, 3, (RRnpc, RRnpc, RRnpc), smul, t_simd), TCE("smulwt", 12000e0, fb30f010, 3, (RRnpc, RRnpc, RRnpc), smul, t_simd), - TCE("qadd", 1000050, fa80f080, 3, (RRnpc, RRnpc, RRnpc), rd_rm_rn, t_simd), - TCE("qdadd", 1400050, fa80f090, 3, (RRnpc, RRnpc, RRnpc), rd_rm_rn, t_simd), - TCE("qsub", 1200050, fa80f0a0, 3, (RRnpc, RRnpc, RRnpc), rd_rm_rn, t_simd), - TCE("qdsub", 1600050, fa80f0b0, 3, (RRnpc, RRnpc, RRnpc), rd_rm_rn, t_simd), + TCE("qadd", 1000050, fa80f080, 3, (RRnpc, RRnpc, RRnpc), rd_rm_rn, t_simd2), + TCE("qdadd", 1400050, fa80f090, 3, (RRnpc, RRnpc, RRnpc), rd_rm_rn, t_simd2), + TCE("qsub", 1200050, fa80f0a0, 3, (RRnpc, RRnpc, RRnpc), rd_rm_rn, t_simd2), + TCE("qdsub", 1600050, fa80f0b0, 3, (RRnpc, RRnpc, RRnpc), rd_rm_rn, t_simd2), #undef ARM_VARIANT #define ARM_VARIANT & arm_ext_v5e /* ARM Architecture 5TE. */ diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index c7738a8..e045c07 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2009-12-02 Nick Clifton <nickc@redhat.com> + Richard Earnshaw <rearnsha@arm.com> + + PR gas/11013 + * gas/arm/arch7em.d: Update expected disassembly. + * gas/arm/thumb32.d: Likewise. + 2009-11-17 Quentin Neill <quentin.neill@amd.com> Sebastian Pop <sebastian.pop@amd.com> diff --git a/gas/testsuite/gas/arm/arch7em.d b/gas/testsuite/gas/arm/arch7em.d index 5aa5607..4ca2bef 100644 --- a/gas/testsuite/gas/arm/arch7em.d +++ b/gas/testsuite/gas/arm/arch7em.d @@ -13,14 +13,14 @@ Disassembly of section .text: 0[0-9a-f]+ <[^>]+> eac0 00c0 pkhbt r0, r0, r0, lsl #3 0[0-9a-f]+ <[^>]+> eac3 0102 pkhbt r1, r3, r2 0[0-9a-f]+ <[^>]+> eac2 4163 pkhtb r1, r2, r3, asr #17 -0[0-9a-f]+ <[^>]+> fa82 f183 qadd r1, r2, r3 +0[0-9a-f]+ <[^>]+> fa83 f182 qadd r1, r2, r3 0[0-9a-f]+ <[^>]+> fa92 f113 qadd16 r1, r2, r3 0[0-9a-f]+ <[^>]+> fa82 f113 qadd8 r1, r2, r3 0[0-9a-f]+ <[^>]+> faa2 f113 qaddsubx r1, r2, r3 0[0-9a-f]+ <[^>]+> faa2 f113 qaddsubx r1, r2, r3 -0[0-9a-f]+ <[^>]+> fa82 f193 qdadd r1, r2, r3 -0[0-9a-f]+ <[^>]+> fa82 f1b3 qdsub r1, r2, r3 -0[0-9a-f]+ <[^>]+> fa82 f1a3 qsub r1, r2, r3 +0[0-9a-f]+ <[^>]+> fa83 f192 qdadd r1, r2, r3 +0[0-9a-f]+ <[^>]+> fa83 f1b2 qdsub r1, r2, r3 +0[0-9a-f]+ <[^>]+> fa83 f1a2 qsub r1, r2, r3 0[0-9a-f]+ <[^>]+> fad2 f113 qsub16 r1, r2, r3 0[0-9a-f]+ <[^>]+> fac2 f113 qsub8 r1, r2, r3 0[0-9a-f]+ <[^>]+> fae2 f113 qsubaddx r1, r2, r3 diff --git a/gas/testsuite/gas/arm/thumb32.d b/gas/testsuite/gas/arm/thumb32.d index 04c90da..95508f2 100644 --- a/gas/testsuite/gas/arm/thumb32.d +++ b/gas/testsuite/gas/arm/thumb32.d @@ -695,14 +695,14 @@ Disassembly of section .text: 0[0-9a-f]+ <[^>]+> bd02 pop \{r1, pc\} 0[0-9a-f]+ <[^>]+> e92d 1f00 stmdb sp!, \{r8, r9, sl, fp, ip\} 0[0-9a-f]+ <[^>]+> e8bd 1f00 ldmia\.w sp!, \{r8, r9, sl, fp, ip\} -0[0-9a-f]+ <[^>]+> fa82 f183 qadd r1, r2, r3 +0[0-9a-f]+ <[^>]+> fa83 f182 qadd r1, r2, r3 0[0-9a-f]+ <[^>]+> fa92 f113 qadd16 r1, r2, r3 0[0-9a-f]+ <[^>]+> fa82 f113 qadd8 r1, r2, r3 0[0-9a-f]+ <[^>]+> faa2 f113 qaddsubx r1, r2, r3 0[0-9a-f]+ <[^>]+> faa2 f113 qaddsubx r1, r2, r3 -0[0-9a-f]+ <[^>]+> fa82 f193 qdadd r1, r2, r3 -0[0-9a-f]+ <[^>]+> fa82 f1b3 qdsub r1, r2, r3 -0[0-9a-f]+ <[^>]+> fa82 f1a3 qsub r1, r2, r3 +0[0-9a-f]+ <[^>]+> fa83 f192 qdadd r1, r2, r3 +0[0-9a-f]+ <[^>]+> fa83 f1b2 qdsub r1, r2, r3 +0[0-9a-f]+ <[^>]+> fa83 f1a2 qsub r1, r2, r3 0[0-9a-f]+ <[^>]+> fad2 f113 qsub16 r1, r2, r3 0[0-9a-f]+ <[^>]+> fac2 f113 qsub8 r1, r2, r3 0[0-9a-f]+ <[^>]+> fae2 f113 qsubaddx r1, r2, r3 |