summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2003-04-09 03:07:48 +0000
committerAlexandre Oliva <aoliva@redhat.com>2003-04-09 03:07:48 +0000
commit81008dd3eeb061e703c24d8e336e69e31c299d71 (patch)
treeeadc88b915d760e02654af7ac0b3f8346d92f85c
parent7c39c74e8089331a4ac35b1fc2c961c1faf174f7 (diff)
downloadbinutils-redhat-81008dd3eeb061e703c24d8e336e69e31c299d71.tar.gz
* config/tc-mips.c (macro): Put back `+ 0x8000' in test for 64-bit
constant address that Alexandre took out by accident. Reject 64-bit addresses that are not sign extensions of 32 bits only if we don't support 64-bit address constants.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-mips.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index cf54e8501f..dd82150bd8 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2003-04-09 Chris Demetriou <cgd@broadcom.com>
+
+ * config/tc-mips.c (macro): Put back `+ 0x8000' in test for 64-bit
+ constant address that Alexandre took out by accident. Reject
+ 64-bit addresses that are not sign extensions of 32 bits only if
+ we don't support 64-bit address constants.
+
2003-04-09 Alan Modra <amodra@bigpond.net.au>
* config/tc-ppc.c (md_apply_fix3): Generate ADDR16 relocs.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index e07dde39f2..7fa025169c 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -5849,7 +5849,7 @@ macro (ip)
*/
if ((offset_expr.X_op != O_constant && HAVE_64BIT_ADDRESSES)
|| (offset_expr.X_op == O_constant
- && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number)
+ && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number + 0x8000)
&& HAVE_64BIT_ADDRESS_CONSTANTS))
{
p = NULL;
@@ -5898,6 +5898,7 @@ macro (ip)
return;
}
else if (offset_expr.X_op == O_constant
+ && !HAVE_64BIT_ADDRESS_CONSTANTS
&& !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
as_bad (_("load/store address overflow (max 32 bits)"));