2013-06-12 Sandra Loosemore <sandra@codesourcery.com>
authorSandra Loosemore <sandra@codesourcery.com>
Wed, 12 Jun 2013 23:11:57 +0000 (23:11 +0000)
committerSandra Loosemore <sandra@codesourcery.com>
Wed, 12 Jun 2013 23:11:57 +0000 (23:11 +0000)
gas/
* config/tc-nios2.c (md_apply_fix):  Mask constant
BFD_RELOC_NIOS2_HIADJ16 value to 16 bits.

gas/testsuite/
* gas/nios2/movia.s: Add additional test case with negative
constant value.
* gas/nios2/movia.d: Likewise.

gas/ChangeLog
gas/config/tc-nios2.c
gas/testsuite/ChangeLog
gas/testsuite/gas/nios2/movia.d
gas/testsuite/gas/nios2/movia.s

index f286916429f8842209b9d09f8b9eb431ff1e7e9b..8c5165bd8f6f190b9dd09817b62ec66230c767be 100644 (file)
@@ -1,3 +1,8 @@
+2013-06-12  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * config/tc-nios2.c (md_apply_fix):  Mask constant
+       BFD_RELOC_NIOS2_HIADJ16 value to 16 bits.
+
 2013-06-10  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * config/tc-mips.c (append_insn): Don't do branch relaxation for
index 6c91fbe6b73a4473e6dc4c79486e47fb046c5596..659bbbc8eca1d7eafef2868229f7d6b6e6b24d61 100644 (file)
@@ -1258,7 +1258,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
              fixup = fixup & 0xFFFF;
              break;
            case BFD_RELOC_NIOS2_HIADJ16:
-             fixup = ((fixup >> 16) & 0xFFFF) + ((fixup >> 15) & 0x01);
+             fixup = ((((fixup >> 16) & 0xFFFF) + ((fixup >> 15) & 0x01))
+                      & 0xFFFF);
              break;
            default:
              {
index b38bb43c6df96209abab47f965cb61dcce8c2cc4..f39a4e879efa4afafe4761b831ab67994f009d6e 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-12  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * gas/nios2/movia.s: Add additional test case with negative
+       constant value.
+       * gas/nios2/movia.d: Likewise.
+
 2013-06-12  Sandra Loosemore  <sandra@codesourcery.com>
 
        * gas/nios2/tret.d: Correct eret encoding.
index 3903f18f25511653201f84d2884c6b00412ec91a..9b04a9d10359e92fb6a19f1892479819f5eb9814 100644 (file)
@@ -16,3 +16,5 @@ Disassembly of section .text:
                        10: R_NIOS2_HIADJ16     sym-0x7fffffff
 0+0014 <[^>]*> 21000004        addi    r4,r4,0
                        14: R_NIOS2_LO16        sym-0x7fffffff
+0+0018 <[^>]*> 00800034        movhi   r2,0
+0+001c <[^>]*> 10bffc04        addi    r2,r2,-16
index fe1d56cfefa4eca3ca7df6a1f88442b8c65807ae..9bc921b6bf07aa334c8f02a3b58f1eec06113194 100644 (file)
@@ -4,3 +4,4 @@ foo:
        movia r2, 0x80808080
        movia r3, sym + 0x80000000
        movia r4, sym - 0x7fffffff
+       movia r2, 0xfffffff0