PR gas/11013
authorNick Clifton <nickc@redhat.com>
Wed, 2 Dec 2009 20:26:30 +0000 (20:26 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 2 Dec 2009 20:26:30 +0000 (20:26 +0000)
        * 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.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/arch7em.d
gas/testsuite/gas/arm/thumb32.d
opcodes/ChangeLog
opcodes/arm-dis.c

index 2624a468c51ff34b9f678a0185d7a772e3d83bd6..f941c9f7a9301d454b564c261a7033121a8a6c39 100644 (file)
@@ -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.
index 0ef05dfef42fceb50abb53f3b4fa5707e252f9a1..076c82b02d600e1265f6c53d14af15926963120b 100644 (file)
@@ -11102,6 +11102,24 @@ do_t_simd (void)
   inst.instruction |= Rm;
 }
 
+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)
 {
@@ -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.  */
index c7738a87f5daa0afd1dccf8aa46954de7a882506..e045c0792e6c2e4add0b756ba450c5500d82b222 100644 (file)
@@ -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>
 
index 5aa560799bdca972824365f89a36e17e63cf9ac5..4ca2bef316ec1165a4b4a2cbd07d8d7e956f1117 100644 (file)
@@ -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
index 04c90daa9d992e58f78839b5032e116b5109222d..95508f23eeea5e2548ff81f7896d4db541ded36e 100644 (file)
@@ -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
index e5c2f4433fa9e5ca57e7fce31f9fac37b2f8eaa8..489971199582f9dd5cef177a35e7ff2ace2f8b1b 100644 (file)
@@ -1,3 +1,10 @@
+2009-12-02  Nick Clifton  <nickc@redhat.com>
+           Richard Earnshaw  <rearnsha@arm.com>
+
+       PR gas/11013
+       * arm-dis.c (thumb32_opc): Adjust disassembly of QADD, QDADD, QSUB
+       and QDSUB.
+
 2009-11-30  Massimo Ruo Roch  <massimo.ruoroch@polito.it>
 
        PR gas/11030
index 38e1b66027161dfc0496835fa069495ccefbcfcc..a871d2364fd814501adc5cdd87ffd7b07b1bc786 100644 (file)
@@ -1364,10 +1364,10 @@ static const struct opcode32 thumb32_opcodes[] =
   {ARM_EXT_V6T2, 0xfa80f040, 0xfff0f0f0, "uadd8%c\t%8-11r, %16-19r, %0-3r"},
   {ARM_EXT_V6T2, 0xfa80f050, 0xfff0f0f0, "uqadd8%c\t%8-11r, %16-19r, %0-3r"},
   {ARM_EXT_V6T2, 0xfa80f060, 0xfff0f0f0, "uhadd8%c\t%8-11r, %16-19r, %0-3r"},
-  {ARM_EXT_V6T2, 0xfa80f080, 0xfff0f0f0, "qadd%c\t%8-11r, %16-19r, %0-3r"},
-  {ARM_EXT_V6T2, 0xfa80f090, 0xfff0f0f0, "qdadd%c\t%8-11r, %16-19r, %0-3r"},
-  {ARM_EXT_V6T2, 0xfa80f0a0, 0xfff0f0f0, "qsub%c\t%8-11r, %16-19r, %0-3r"},
-  {ARM_EXT_V6T2, 0xfa80f0b0, 0xfff0f0f0, "qdsub%c\t%8-11r, %16-19r, %0-3r"},
+  {ARM_EXT_V6T2, 0xfa80f080, 0xfff0f0f0, "qadd%c\t%8-11r, %0-3r, %16-19r"},
+  {ARM_EXT_V6T2, 0xfa80f090, 0xfff0f0f0, "qdadd%c\t%8-11r, %0-3r, %16-19r"},
+  {ARM_EXT_V6T2, 0xfa80f0a0, 0xfff0f0f0, "qsub%c\t%8-11r, %0-3r, %16-19r"},
+  {ARM_EXT_V6T2, 0xfa80f0b0, 0xfff0f0f0, "qdsub%c\t%8-11r, %0-3r, %16-19r"},
   {ARM_EXT_V6T2, 0xfa90f000, 0xfff0f0f0, "sadd16%c\t%8-11r, %16-19r, %0-3r"},
   {ARM_EXT_V6T2, 0xfa90f010, 0xfff0f0f0, "qadd16%c\t%8-11r, %16-19r, %0-3r"},
   {ARM_EXT_V6T2, 0xfa90f020, 0xfff0f0f0, "shadd16%c\t%8-11r, %16-19r, %0-3r"},