rs6000.c (secondary_reload_class): Fix Darwin specific misuse of r0 as a reload address.
2001-05-18 Dale Johannesen <dalej@apple.com> * config/rs6000/rs6000.c (secondary_reload_class): Fix Darwin specific misuse of r0 as a reload address. From-SVN: r42287
This commit is contained in:
parent
eb47ec1b69
commit
46fad5b721
@ -1,3 +1,8 @@
|
||||
2001-05-18 Dale Johannesen <dalej@apple.com>
|
||||
|
||||
* config/rs6000/rs6000.c (secondary_reload_class): Fix Darwin
|
||||
specific misuse of r0 as a reload address.
|
||||
|
||||
Fri May 18 22:42:04 CEST 2001 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* combine.c (combine_simplify_rtx): Clear op0_mode if simplification
|
||||
|
@ -3587,17 +3587,22 @@ secondary_reload_class (class, mode, in)
|
||||
{
|
||||
int regno;
|
||||
|
||||
#if TARGET_ELF
|
||||
/* We can not copy a symbolic operand directly into anything other than
|
||||
BASE_REGS for TARGET_ELF. So indicate that a register from BASE_REGS
|
||||
is needed as an intermediate register. */
|
||||
if (class != BASE_REGS
|
||||
&& (GET_CODE (in) == SYMBOL_REF
|
||||
|| GET_CODE (in) == HIGH
|
||||
|| GET_CODE (in) == LABEL_REF
|
||||
|| GET_CODE (in) == CONST))
|
||||
return BASE_REGS;
|
||||
#endif
|
||||
if (TARGET_ELF || (DEFAULT_ABI == ABI_DARWIN && flag_pic))
|
||||
{
|
||||
/* We cannot copy a symbolic operand directly into anything
|
||||
other than BASE_REGS for TARGET_ELF. So indicate that a
|
||||
register from BASE_REGS is needed as an intermediate
|
||||
register.
|
||||
|
||||
On Darwin, pic addresses require a load from memory, which
|
||||
needs a base register. */
|
||||
if (class != BASE_REGS
|
||||
&& (GET_CODE (in) == SYMBOL_REF
|
||||
|| GET_CODE (in) == HIGH
|
||||
|| GET_CODE (in) == LABEL_REF
|
||||
|| GET_CODE (in) == CONST))
|
||||
return BASE_REGS;
|
||||
}
|
||||
|
||||
if (GET_CODE (in) == REG)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user