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 /gas/config/tc-mips.c | |
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.
Diffstat (limited to 'gas/config/tc-mips.c')
-rw-r--r-- | gas/config/tc-mips.c | 6 |
1 files changed, 4 insertions, 2 deletions
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; |