re PR target/27390 (gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0)
2006-06-07 Paolo Bonzini <bonzini@gnu.org> PR target/27390 * reg-stack.c (subst_stack_regs_pat): Reorder resetting of the imaginary and real parts of a clobbered register. Emit insn to set the imaginary part. From-SVN: r114462
This commit is contained in:
parent
0e9a445b9d
commit
190e953465
2 changed files with 18 additions and 7 deletions
|
@ -1,3 +1,10 @@
|
|||
2006-06-07 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
PR target/27390
|
||||
* reg-stack.c (subst_stack_regs_pat): Reorder resetting of
|
||||
the imaginary and real parts of a clobbered register.
|
||||
Emit insn to set the imaginary part.
|
||||
|
||||
2006-06-06 Peter Lemieszewski <lemie@us.ibm.com>
|
||||
|
||||
* config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
|
||||
|
|
|
@ -1371,16 +1371,20 @@ subst_stack_regs_pat (rtx insn, stack regstack, rtx pat)
|
|||
if (!note)
|
||||
{
|
||||
rtx t = *dest;
|
||||
if (COMPLEX_MODE_P (GET_MODE (t)))
|
||||
{
|
||||
rtx u = FP_MODE_REG (REGNO (t) + 1, SFmode);
|
||||
if (get_hard_regnum (regstack, u) == -1)
|
||||
{
|
||||
rtx pat2 = gen_rtx_CLOBBER (VOIDmode, u);
|
||||
rtx insn2 = emit_insn_before (pat2, insn);
|
||||
control_flow_insn_deleted
|
||||
|= move_nan_for_stack_reg (insn2, regstack, u);
|
||||
}
|
||||
}
|
||||
if (get_hard_regnum (regstack, t) == -1)
|
||||
control_flow_insn_deleted
|
||||
|= move_nan_for_stack_reg (insn, regstack, t);
|
||||
if (COMPLEX_MODE_P (GET_MODE (t)))
|
||||
{
|
||||
t = FP_MODE_REG (REGNO (t) + 1, DFmode);
|
||||
if (get_hard_regnum (regstack, t) == -1)
|
||||
control_flow_insn_deleted
|
||||
|= move_nan_for_stack_reg (insn, regstack, t);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue