Commit adb9effb by Jeffrey A Law Committed by Jeff Law

Take out find_base_value change -- not needed, only the find_base_term

change was needed.

From-SVN: r16185
parent e85988b5
...@@ -17,9 +17,8 @@ Sun Oct 26 09:21:40 1997 Jeffrey A Law (law@cygnus.com) ...@@ -17,9 +17,8 @@ Sun Oct 26 09:21:40 1997 Jeffrey A Law (law@cygnus.com)
* Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions.
* alias.c (find_base_value): Handle PRE_INC, PRE_DEC, POST_INC, * alias.c (find_base_term): Handle PRE_INC, PRE_DEC, POST_INC,
and POS_DEC. and POS_DEC.
(find_base_term): Likewise.
* alias.c (true_dependence): Fix typo. * alias.c (true_dependence): Fix typo.
......
...@@ -93,13 +93,6 @@ find_base_value (src) ...@@ -93,13 +93,6 @@ find_base_value (src)
case LABEL_REF: case LABEL_REF:
return src; return src;
case PRE_INC:
case PRE_DEC:
case POST_INC:
case POST_DEC:
src = XEXP (src, 0);
/* fall through */
case REG: case REG:
/* At the start of a function argument registers have known base /* At the start of a function argument registers have known base
values which may be lost later. Returning an ADDRESS values which may be lost later. Returning an ADDRESS
...@@ -107,6 +100,8 @@ find_base_value (src) ...@@ -107,6 +100,8 @@ find_base_value (src)
even when the argument registers are used for other purposes. */ even when the argument registers are used for other purposes. */
if (REGNO (src) < FIRST_PSEUDO_REGISTER && copying_arguments) if (REGNO (src) < FIRST_PSEUDO_REGISTER && copying_arguments)
return reg_base_value[REGNO (src)]; return reg_base_value[REGNO (src)];
if (REG_N_SETS (REGNO (src)) == 1 && reg_base_value[REGNO (src)])
return reg_base_value[REGNO (src)];
return src; return src;
case MEM: case MEM:
...@@ -129,7 +124,21 @@ find_base_value (src) ...@@ -129,7 +124,21 @@ find_base_value (src)
case PLUS: case PLUS:
case MINUS: case MINUS:
{ {
rtx src_0 = XEXP (src, 0), src_1 = XEXP (src, 1); rtx temp, src_0 = XEXP (src, 0), src_1 = XEXP (src, 1);
if (GET_CODE (src_0) == REG)
{
temp = find_base_value (src_0);
if (temp)
src_0 = temp;
}
if (GET_CODE (src_1) == REG)
{
temp = find_base_value (src_1);
if (temp)
src_1 = temp;
}
/* Guess which operand is the base address. /* Guess which operand is the base address.
...@@ -144,6 +153,12 @@ find_base_value (src) ...@@ -144,6 +153,12 @@ find_base_value (src)
|| GET_CODE (src_0) == CONST) || GET_CODE (src_0) == CONST)
return find_base_value (src_0); return find_base_value (src_0);
if (GET_CODE (src_0) == CONST_INT
|| GET_CODE (src_1) == SYMBOL_REF
|| GET_CODE (src_1) == LABEL_REF
|| GET_CODE (src_1) == CONST)
return find_base_value (src_1);
if (GET_CODE (src_0) == REG && REGNO_POINTER_FLAG (REGNO (src_0))) if (GET_CODE (src_0) == REG && REGNO_POINTER_FLAG (REGNO (src_0)))
return find_base_value (src_0); return find_base_value (src_0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment