2011-11-23 Thomas Klein <th.r.klein@web.de>
authorRichard Earnshaw <richard.earnshaw@arm.com>
Wed, 23 Nov 2011 10:50:53 +0000 (10:50 +0000)
committerRichard Earnshaw <richard.earnshaw@arm.com>
Wed, 23 Nov 2011 10:50:53 +0000 (10:50 +0000)
* config/tc-arm.c (do_t_mov_cmp): Prevent emitting code for MOV
with two low register at arch v4t or v5t when assember using
unified syntax.

gas/ChangeLog
gas/config/tc-arm.c

index e385881d04cee70c61f9c74e0b733a5a3d242897..9348a20671b2624b1493bed74e18e3af68d605e4 100644 (file)
@@ -1,3 +1,9 @@
+2011-11-23  Thomas Klein  <th.r.klein@web.de>
+
+       * config/tc-arm.c (do_t_mov_cmp): Prevent emitting code for MOV
+       with two low register at arch v4t or v5t when assember using
+       unified syntax.
+
 2011-11-21  DJ Delorie  <dj@redhat.com>
 
        * config/rl78-defs.h (rl78_error): Add "const".
index e8040c384f9cd0c3fb26c031b929b1d6218875c6..bf44228c13dd0ec68e9b666269a9a6ebc926cfc8 100644 (file)
@@ -10913,6 +10913,11 @@ do_t_mov_cmp (void)
        switch (inst.instruction)
          {
          case T_MNEM_mov:
+           /* In v4t or v5t a move of two lowregs produces unpredictable
+              results. Don't allow this.*/
+           constraint (low_regs && !ARM_CPU_HAS_FEATURE (selected_cpu,
+                       arm_ext_v6),"MOV Rd, Rs with two low registers is not "
+                       "permitted on this architecture");
            inst.instruction = T_OPCODE_MOV_HR;
            inst.instruction |= (Rn & 0x8) << 4;
            inst.instruction |= (Rn & 0x7);
This page took 0.056085 seconds and 4 git commands to generate.