aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 cf54e85..dd82150 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 e07dde3..7fa0251 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)"));