* aarch64-opc.c (aarch64_logical_immediate_p): Return FALSE if the
authorNick Clifton <nickc@redhat.com>
Wed, 28 Aug 2013 10:25:36 +0000 (10:25 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 28 Aug 2013 10:25:36 +0000 (10:25 +0000)
immediate is not suitable for the 32-bit ABI.

* gas/aarch64/illegal.s: Add illegal constant for logical
operation.
* gas/aarch64/illegal.l: Add expected error message.

gas/testsuite/ChangeLog
gas/testsuite/gas/aarch64/illegal.l
gas/testsuite/gas/aarch64/illegal.s
opcodes/ChangeLog
opcodes/aarch64-opc.c

index eb39f6b2908f4e571406b9542a5af56ab039c177..dd0fe7256e6e7574b4c46dd8e1c5e2c5b6f9823a 100644 (file)
@@ -1,3 +1,9 @@
+2013-08-28  Nick Clifton  <nickc@redhat.com>
+
+       * gas/aarch64/illegal.s: Add illegal constant for logical
+       operation.
+       * gas/aarch64/illegal.l: Add expected error message.
+
 2013-08-23  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * gas/testsuite/gas/mips/micromips-insn32.d: Adjust for delay
index d7740b9e26dc4c06a5c051a024a9a8ea8911e61c..e36b8fefb05b8cdaf1ea1d247729f2b5f3db35f9 100644 (file)
 [^:]*:543: Error: .*`fmov s0,#0x11'
 [^:]*:544: Error: .*`fmov s0,#0xC0280000C1400000'
 [^:]*:545: Error: .*`fmov d0,#0xC02f800000000000'
-[^:]*:550: Error: .*
+[^:]*:550: Error: .*`ands w0,w24,#0xffeefffffffffffd'
+[^:]*:553: Error: .*
index d2bc08a9d194f028b4e11df9914a27fd98c903d2..a46946e8926fef347477c730c15585cd63ab4139 100644 (file)
        // No 16-byte relocation
        ldr     q0, =one_label
 
+       ands    w0, w24, #0xffeefffffffffffd
+
 one_label:
+       
index ce6aebecf18306f3d3c6b1b8e7c982db54963bb4..6966b95c272fe67ed8890f5171a01de352a42465 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-28  Nick Clifton  <nickc@redhat.com>
+
+       * aarch64-opc.c (aarch64_logical_immediate_p): Return FALSE if the
+       immediate is not suitable for the 32-bit ABI.
+
 2013-08-23  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * micromips-opc.c (micromips_opcodes): Use RD_4 for "alnv.ps",
index 74f2826035f6509f45909acc0471d706f91796e5..f32ee5ec2f2f86750b2692d3a65523cf9a56f838 100644 (file)
@@ -1063,7 +1063,8 @@ aarch64_logical_immediate_p (uint64_t value, int is32, aarch64_insn *encoding)
       /* Allow all zeros or all ones in top 32-bits, so that
         constant expressions like ~1 are permitted.  */
       if (value >> 32 != 0 && value >> 32 != 0xffffffff)
-       return 0xffffffff;
+       return FALSE;
+
       /* Replicate the 32 lower bits to the 32 upper bits.  */
       value &= 0xffffffff;
       value |= value << 32;
This page took 0.029079 seconds and 4 git commands to generate.