alias.c (find_base_value): When copying arguments, return the tenative value for a hard register.

* alias.c (find_base_value): When copying arguments, return the
        tenative value for a hard register.

From-SVN: r16319
This commit is contained in:
Jeffrey A Law 1997-11-04 23:09:21 +00:00 committed by Jeff Law
parent 30c317f5da
commit 73774bc7c0
2 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,8 @@
Tue Nov 4 16:07:15 1997 Jeffrey A Law (law@cygnus.com)
* alias.c (find_base_value): When copying arguments, return the
tenative value for a hard register.
Tue Nov 4 13:40:35 1997 Doug Evans <devans@canuck.cygnus.com>
* c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling.

View File

@ -95,16 +95,19 @@ find_base_value (src)
return src;
case REG:
/* If this REG is related to a known base value, return it. */
if (reg_base_value[REGNO (src)])
return reg_base_value[REGNO (src)];
/* At the start of a function argument registers have known base
values which may be lost later. Returning an ADDRESS
expression here allows optimization based on argument values
even when the argument registers are used for other purposes. */
if (REGNO (src) < FIRST_PSEUDO_REGISTER && copying_arguments)
return new_reg_base_value[REGNO (src)];
/* If this REG is related to a known base value, return it.
This must happen after the arg register check above to avoid
circular set chains. */
if (reg_base_value[REGNO (src)])
return reg_base_value[REGNO (src)];
return src;
case MEM: