From 378dfce9ed1d69993561c94eae280c4d8f1c28c2 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 6 Sep 1994 18:24:43 -0400 Subject: [PATCH] (stackadjust/push peepholes): For the adjust/push/push pattern one offset was wrong. (stackadjust/push peepholes): For the adjust/push/push pattern one offset was wrong. Don't use addr for register and and MEM refs. From-SVN: r8027 --- gcc/config/ns32k/ns32k.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gcc/config/ns32k/ns32k.md b/gcc/config/ns32k/ns32k.md index cfd4cfd2ef4..e644740aa69 100644 --- a/gcc/config/ns32k/ns32k.md +++ b/gcc/config/ns32k/ns32k.md @@ -2702,7 +2702,9 @@ if (GET_CODE (operands[1]) == CONST_INT) output_asm_insn (output_move_dconst (INTVAL (operands[1]), \"%$%1,0(sp)\"), operands); - else if (address_operand (operands[1], SImode)) + else if (GET_CODE (operands[1]) != REG + && GET_CODE (operands[1]) != MEM + && address_operand (operands[1], SImode)) output_asm_insn (\"addr %a1,0(sp)\", operands); else output_asm_insn (\"movd %1,0(sp)\", operands); @@ -2724,15 +2726,19 @@ if (GET_CODE (operands[1]) == CONST_INT) output_asm_insn (output_move_dconst (INTVAL (operands[1]), \"%$%1,4(sp)\"), operands); - else if (address_operand (operands[1], SImode)) - output_asm_insn (\"addr %a1,0(sp)\", operands); + else if (GET_CODE (operands[1]) != REG + && GET_CODE (operands[1]) != MEM + && address_operand (operands[1], SImode)) + output_asm_insn (\"addr %a1,4(sp)\", operands); else output_asm_insn (\"movd %1,4(sp)\", operands); if (GET_CODE (operands[3]) == CONST_INT) output_asm_insn (output_move_dconst (INTVAL (operands[3]), \"%$%3,0(sp)\"), operands); - else if (address_operand (operands[3], SImode)) + else if (GET_CODE (operands[3]) != REG + && GET_CODE (operands[3]) != MEM + && address_operand (operands[3], SImode)) output_asm_insn (\"addr %a3,0(sp)\", operands); else output_asm_insn (\"movd %3,0(sp)\", operands); -- 2.30.2