Remove x32 addend overflow for BFD_RELOC_64
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 12 May 2012 12:34:37 +0000 (12:34 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 12 May 2012 12:34:37 +0000 (12:34 +0000)
gas/

* config/tc-i386.c (tc_gen_reloc): Remove x32 addend overflow
for BFD_RELOC_64.

gas/testsuite/

* gas/i386/ilp32/ilp32.exp: Don't run reloc64-inval.

* gas/i386/ilp32/reloc64.s: Add test for -4294967295 addend.
* gas/i386/ilp32/reloc64.d: Updated.

* gas/i386/ilp32/reloc64-inval.l: Removed.
* gas/i386/ilp32/reloc64-inval.s: Likewise.

gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/ChangeLog
gas/testsuite/gas/i386/ilp32/ilp32.exp
gas/testsuite/gas/i386/ilp32/reloc64-inval.l [deleted file]
gas/testsuite/gas/i386/ilp32/reloc64-inval.s [deleted file]
gas/testsuite/gas/i386/ilp32/reloc64.d
gas/testsuite/gas/i386/ilp32/reloc64.s

index 5eb6d0a..82bfc0e 100644 (file)
@@ -1,3 +1,8 @@
+2012-05-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (tc_gen_reloc): Remove x32 addend overflow
+       for BFD_RELOC_64.
+
 2012-05-11  Daniel Richard G.  <skunk@iskunk.org>
 
        PR binutils/14028
index e33fb6c..ccf54bc 100644 (file)
@@ -9173,25 +9173,6 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
       if (disallow_64bit_reloc)
        switch (code)
          {
-         case BFD_RELOC_64:
-           /* Check addend overflow.  */
-           if (!fits_in_signed_long (fixp->fx_offset))
-             {
-               bfd_signed_vma addend = fixp->fx_offset;
-               if (addend < 0)
-                 as_bad_where (fixp->fx_file, fixp->fx_line,
-                               _("cannot represent relocation %s with "
-                                 "addend -0x%" BFD_VMA_FMT "x in x32 "
-                                 "mode"),
-                               bfd_get_reloc_code_name (code), -addend);
-               else
-                 as_bad_where (fixp->fx_file, fixp->fx_line,
-                               _("cannot represent relocation %s with "
-                                 "addend 0x%" BFD_VMA_FMT "x in x32 "
-                                 "mode"),
-                               bfd_get_reloc_code_name (code), addend);
-             }
-           break;
          case BFD_RELOC_X86_64_DTPOFF64:
          case BFD_RELOC_X86_64_TPOFF64:
          case BFD_RELOC_64_PCREL:
index 7559561..f1df950 100644 (file)
@@ -1,3 +1,13 @@
+2012-05-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * gas/i386/ilp32/ilp32.exp: Don't run reloc64-inval.
+
+       * gas/i386/ilp32/reloc64.s: Add test for -4294967295 addend.
+       * gas/i386/ilp32/reloc64.d: Updated.
+
+       * gas/i386/ilp32/reloc64-inval.l: Removed.
+       * gas/i386/ilp32/reloc64-inval.s: Likewise.
+
 2012-05-09  H.J. Lu  <hongjiu.lu@intel.com>
 
        * gas/i386/ilp32/ilp32.exp: Run reloc64-inval.
index 95f3a2d..de43bf2 100644 (file)
@@ -26,7 +26,6 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check] &&
     }
 
     run_list_test "reloc64" "--defsym _bad_=1"
-    run_list_test "reloc64-inval"
 
     set ASFLAGS "$old_ASFLAGS"
 }
diff --git a/gas/testsuite/gas/i386/ilp32/reloc64-inval.l b/gas/testsuite/gas/i386/ilp32/reloc64-inval.l
deleted file mode 100644 (file)
index 1328237..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.*: Assembler messages:
-.*:2: Error: .*
-.*:3: Error: .*
diff --git a/gas/testsuite/gas/i386/ilp32/reloc64-inval.s b/gas/testsuite/gas/i386/ilp32/reloc64-inval.s
deleted file mode 100644 (file)
index 14134aa..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-       .data
-       .quad   xtrn + 0x80000000
-       .quad   xtrn - 0x80000001
index 140f24d..c2fd292 100644 (file)
@@ -60,6 +60,7 @@ Disassembly of section \.text:
 .*[    ]+R_X86_64_TPOFF32[     ]+xtrn
 .*[    ]+R_X86_64_TPOFF32[     ]+xtrn
 .*[    ]+R_X86_64_TPOFF32[     ]+xtrn
+.*[    ]+R_X86_64_64[  ]+xtrn\+0x1
 Disassembly of section \.data:
 #...
 .*[    ]+R_X86_64_32[  ]+xtrn
index 3a2dbb8..4149ec2 100644 (file)
@@ -178,6 +178,7 @@ bad .byte   xtrn@tpoff
 
        .text
        mov     xtrn@tpoff (%rbx), %eax
+       movabsq $xtrn - 4294967295, %rbp
 
        .data
        .quad   xtrn