m68hc11.md ("add-split"): Fix add split when operand 2 is the stack pointer.

* config/m68hc11/m68hc11.md ("add-split"): Fix add split when
	operand 2 is the stack pointer.
	("addr-peephole"): Fix address computation peephole when operand 2
	is the stack pointer.

From-SVN: r45925
This commit is contained in:
Stephane Carrez 2001-10-01 15:33:55 +02:00 committed by Stephane Carrez
parent 0692acba4c
commit d5d5ec4560
2 changed files with 17 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2001-10-01 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* config/m68hc11/m68hc11.md ("add-split"): Fix add split when
operand 2 is the stack pointer.
("addr-peephole"): Fix address computation peephole when operand 2
is the stack pointer.
Mon Oct 1 09:26:41 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.

View File

@ -3657,8 +3657,9 @@
(set (match_dup 0) (reg:HI D_REGNUM))])]
"
/* Save the operand2 in a temporary location and use it. */
if (H_REG_P (operands[2])
|| reg_mentioned_p (operands[0], operands[2]))
if ((H_REG_P (operands[2])
|| reg_mentioned_p (operands[0], operands[2]))
&& !(SP_REG_P (operands[2]) && GET_CODE (operands[3]) == PLUS))
{
operands[4] = gen_rtx (REG, HImode, SOFT_TMP_REGNUM);
operands[6] = operands[4];
@ -6121,9 +6122,14 @@
{
int value_loaded = 1;
if (X_REG_P (operands[0]))
if (X_REG_P (operands[0]) || SP_REG_P (operands[2]))
{
output_asm_insn (\"ldx\\t%2\\n\\txgdx\", operands);
rtx ops[2];
ops[0] = operands[0];
ops[1] = operands[2];
m68hc11_gen_movhi (insn, ops);
output_asm_insn (\"xgd%0\", operands);
}
else if (Y_REG_P (operands[0]))
{