diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2002-07-09 00:42:57 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@linux-mips.org> | 2002-07-09 00:42:57 +0000 |
commit | 78d32a179d5eb83ddc7e68f7c40ec3556937a112 (patch) | |
tree | cb2f16ad84818ed348a427c992ffd2cc50e4612d | |
parent | f2f8f9957e2ec908234141a4824c54d5d4fb8ad0 (diff) | |
download | gdb-78d32a179d5eb83ddc7e68f7c40ec3556937a112.zip gdb-78d32a179d5eb83ddc7e68f7c40ec3556937a112.tar.gz gdb-78d32a179d5eb83ddc7e68f7c40ec3556937a112.tar.bz2 |
* config/tc-mips.c (macro): Shift the 32-bit address range
accessible with a lone "lui" down by 32768.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 2fc3cfe..f57681c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,10 @@ 2002-07-08 Maciej W. Rozycki <macro@ds2.pg.gda.pl> + * config/tc-mips.c (macro): Shift the 32-bit address range + accessible with a lone "lui" down by 32768. + +2002-07-08 Maciej W. Rozycki <macro@ds2.pg.gda.pl> + * config/tc-mips.c (load_address): Use non-trapping "daddu" instead of "dadd" in address calculations. (macro): Likewise. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 47f43b0..ba4480c 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -5497,13 +5497,15 @@ macro (ip) If we have 64-bit addresses, as an optimization, for addresses which are 32-bit constants (e.g. kseg0/kseg1 addresses) we fall back to the 32-bit address generation - mechanism since it is more efficient. This code should + mechanism since it is more efficient. Note that due to + the signed offset used by memory operations, the 32-bit + range is shifted down by 32768 here. This code should probably attempt to generate 64-bit constants more efficiently in general. */ if (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))) { p = NULL; |