* config/tc-mips.c (macro): Shift the 32-bit address range

accessible with a lone "lui" down by 32768.
This commit is contained in:
Maciej W. Rozycki 2002-07-09 00:42:57 +00:00
parent f2f8f9957e
commit 78d32a179d
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,8 @@
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"

View File

@ -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;