+2001-01-13 Alexandre Oliva <aoliva@redhat.com>
+
+ * reload1.c (replace_pseudos_in_call_usage): Use
+ reg_equiv_constant and reg_equiv_address, and don't try
+ regno_reg_rtx first.
+
2001-01-13 Richard Henderson <rth@redhat.com>
* ggc-page.c (alloc_page): Round up allocation size to one page.
code = GET_CODE (x);
if (code == REG)
{
- if (REGNO (x) < FIRST_PSEUDO_REGISTER)
+ int regno = REGNO (x);
+
+ if (regno < FIRST_PSEUDO_REGISTER)
return;
x = eliminate_regs (x, mem_mode, usage);
return;
}
- if (reg_renumber [REGNO (x)] < 0)
- *loc = regno_reg_rtx[REGNO (x)];
- else if (reg_equiv_mem[REGNO (x)])
- *loc = reg_equiv_mem[REGNO (x)];
+ if (reg_equiv_constant[regno])
+ *loc = reg_equiv_constant[regno];
+ else if (reg_equiv_mem[regno])
+ *loc = reg_equiv_mem[regno];
+ else if (reg_equiv_address[regno])
+ *loc = gen_rtx_MEM (GET_MODE (x), reg_equiv_address[regno]);
+ else if (GET_CODE (regno_reg_rtx[regno]) != REG
+ || REGNO (regno_reg_rtx[regno]) != regno)
+ *loc = regno_reg_rtx[regno];
else
abort ();