PR gas/12715
authorMatthew Gretton-Dann <matthew.gretton-dann@arm.com>
Thu, 12 May 2011 12:41:45 +0000 (12:41 +0000)
committerMatthew Gretton-Dann <matthew.gretton-dann@arm.com>
Thu, 12 May 2011 12:41:45 +0000 (12:41 +0000)
* gas/config/tc-arm.c (parse_big_immediate):  Fix parsing of 64-bit
immediates on 32-bit hosts.
* gas/testsuite/gas/arm/neon-const.s: Add testcase for 64-bit Neon constants.
* gas/testsuite/gas/arm/neon-const.d: Likewise.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/neon-const.d
gas/testsuite/gas/arm/neon-const.s

index 56a0177..61843fa 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-12  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       PR gas/12715
+       * config/tc-arm.c (parse_big_immediate):  Fix parsing of 64-bit
+       immediates on 32-bit hosts.
+
 2011-05-10  Quentin Neill  <quentin.neill@amd.com>
 
        * config/tc-i386.c (cpu_arch): Add bdver2 and rename
index a0b31a0..64a71e8 100644 (file)
@@ -4459,7 +4459,7 @@ parse_big_immediate (char **str, int i)
       /* If we're on a 64-bit host, then a 64-bit number can be returned using
         O_constant.  We have to be careful not to break compilation for
         32-bit X_add_number, though.  */
-      if ((exp.X_add_number & ~0xffffffffl) != 0)
+      if ((exp.X_add_number & ~(offsetT)(0xffffffffU)) != 0)
        {
           /* X >> 32 is illegal if sizeof (exp.X_add_number) == 4.  */
          inst.operands[i].reg = ((exp.X_add_number >> 16) >> 16) & 0xffffffff;
index f1ba989..1b70d3d 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-12  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       PR gas/12715
+       * gas/arm/neon-const.s: Add testcase for 64-bit Neon constants.
+       * gas/arm/neon-const.d: Likewise.
+
 2011-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * gas/mips/24k-branch-delay-1.d: Allow 64-bit addresses.  Stub out
index a1bc97c..6c46930 100644 (file)
@@ -263,3 +263,4 @@ Disassembly of section .text:
 0[0-9a-f]+ <[^>]+> f3850f5f    vmov\.f32       q0, #-0\.484375 ; 0xbef80000
 0[0-9a-f]+ <[^>]+> f3860f5f    vmov\.f32       q0, #-0\.96875  ; 0xbf780000
 0[0-9a-f]+ <[^>]+> f3870f5f    vmov\.f32       q0, #-1\.9375   ; 0xbff80000
+0[0-9a-f]+ <[^>]+> f3879e3f    vmov\.i64       d9, #0xffffffffffffffff
index a6fb550..aaaf144 100644 (file)
         vmov.f32 q0, -0.484375
         vmov.f32 q0, -0.96875
         vmov.f32 q0, -1.9375
+
+       vmov.i64 d9, #0xffffffffffffffff