From bcbed709847b6a0461ff70a574c14681af66844c Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 27 Oct 1995 06:52:12 -0400 Subject: (call_value_nt, call_nt): Force non-SYMBOL_REF into reg 27, just like for OSF. From-SVN: r10533 --- gcc/config/alpha/alpha.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'gcc') diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index c3972e1..72c54ee 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -2650,8 +2650,13 @@ abort (); operands[0] = XEXP (operands[0], 0); - if (GET_CODE (operands[0]) != SYMBOL_REF) - operands[0] = force_reg (Pmode, operands[0]); + if (GET_CODE (operands[1]) != SYMBOL_REF + && ! (GET_CODE (operands[1]) == REG && REGNO (operands[1]) == 27)) + { + rtx tem = gen_rtx (REG, DImode, 27); + emit_move_insn (tem, operands[1]); + operands[1] = tem; + } }") (define_expand "call_value" @@ -2701,8 +2706,13 @@ abort (); operands[1] = XEXP (operands[1], 0); - if (GET_CODE (operands[1]) != SYMBOL_REF) - operands[1] = force_reg (Pmode, operands[1]); + if (GET_CODE (operands[1]) != SYMBOL_REF + && ! (GET_CODE (operands[1]) == REG && REGNO (operands[1]) == 27)) + { + rtx tem = gen_rtx (REG, DImode, 27); + emit_move_insn (tem, operands[1]); + operands[1] = tem; + } }") (define_insn "" -- cgit v1.1