From: Sandra Loosemore Date: Wed, 12 Jun 2013 23:11:57 +0000 (+0000) Subject: 2013-06-12 Sandra Loosemore X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5d5755a724d32a703e7ff0fe3d6a864706d91fa3;p=binutils-gdb.git 2013-06-12 Sandra Loosemore 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. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index f286916429f..8c5165bd8f6 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2013-06-12 Sandra Loosemore + + * config/tc-nios2.c (md_apply_fix): Mask constant + BFD_RELOC_NIOS2_HIADJ16 value to 16 bits. + 2013-06-10 Maciej W. Rozycki * config/tc-mips.c (append_insn): Don't do branch relaxation for diff --git a/gas/config/tc-nios2.c b/gas/config/tc-nios2.c index 6c91fbe6b73..659bbbc8eca 100644 --- a/gas/config/tc-nios2.c +++ b/gas/config/tc-nios2.c @@ -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: { diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index b38bb43c6df..f39a4e879ef 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2013-06-12 Sandra Loosemore + + * gas/nios2/movia.s: Add additional test case with negative + constant value. + * gas/nios2/movia.d: Likewise. + 2013-06-12 Sandra Loosemore * gas/nios2/tret.d: Correct eret encoding. diff --git a/gas/testsuite/gas/nios2/movia.d b/gas/testsuite/gas/nios2/movia.d index 3903f18f255..9b04a9d1035 100644 --- a/gas/testsuite/gas/nios2/movia.d +++ b/gas/testsuite/gas/nios2/movia.d @@ -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 diff --git a/gas/testsuite/gas/nios2/movia.s b/gas/testsuite/gas/nios2/movia.s index fe1d56cfefa..9bc921b6bf0 100644 --- a/gas/testsuite/gas/nios2/movia.s +++ b/gas/testsuite/gas/nios2/movia.s @@ -4,3 +4,4 @@ foo: movia r2, 0x80808080 movia r3, sym + 0x80000000 movia r4, sym - 0x7fffffff + movia r2, 0xfffffff0