aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2009-09-15 17:47:26 +0000
committerH.J. Lu <hjl.tools@gmail.com>2009-09-15 17:47:26 +0000
commit9de868bf63da6e25619af0a1876200ca4cbd6375 (patch)
treee78da61f4dcb9ada0d228a8eeeba91489bbb5d97 /gas
parent44353522ecb0bfbddc5670741e5e8a3f7ae8d2e6 (diff)
downloadgdb-9de868bf63da6e25619af0a1876200ca4cbd6375.zip
gdb-9de868bf63da6e25619af0a1876200ca4cbd6375.tar.gz
gdb-9de868bf63da6e25619af0a1876200ca4cbd6375.tar.bz2
2009-09-15 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (offset_in_range): Sign extend offset only for 32bit address mode.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a044a5c..9a9026e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2009-09-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/tc-i386.c (offset_in_range): Sign extend offset only
+ for 32bit address mode.
+
2009-09-15 Tristan Gingold <gingold@adacore.com>
* makefile.vms (OBJS): Compile te-vms.c only on Itanium.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index bf756b8..e5ff75f 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1762,8 +1762,11 @@ offset_in_range (offsetT val, int size)
default: abort ();
}
- /* If BFD64, sign extend val. */
- if (!use_rela_relocations)
+#ifdef BFD64
+ /* If BFD64, sign extend val for 32bit address mode. */
+ if (flag_code != CODE_64BIT
+ || i.prefix[ADDR_PREFIX])
+#endif
if ((val & ~(((addressT) 2 << 31) - 1)) == 0)
val = (val ^ ((addressT) 1 << 31)) - ((addressT) 1 << 31);