i386.c (output_to_reg): Add code to emulate non-popping DImode case.
� * i386.c (output_to_reg): Add code to emulate non-popping DImode case. From-SVN: r21389
This commit is contained in:
parent
bc6bd744c5
commit
60aeab7f32
@ -1,3 +1,8 @@
|
||||
Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* i386.c (output_to_reg): Add code to emulate non-popping DImode
|
||||
case.
|
||||
|
||||
Sun Jul 26 01:01:32 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
|
||||
|
@ -891,6 +891,17 @@ output_to_reg (dest, dies, scratch_mem)
|
||||
{
|
||||
if (dies)
|
||||
output_asm_insn (AS1 (fistp%z3,%y0), xops);
|
||||
else if (GET_MODE (xops[3]) == DImode && ! dies)
|
||||
{
|
||||
/* There is no DImode version of this without a stack pop, so
|
||||
we must emulate it. It doesn't matter much what the second
|
||||
instruction is, because the value being pushed on the FP stack
|
||||
is not used except for the following stack popping store.
|
||||
This case can only happen without optimization, so it doesn't
|
||||
matter that it is inefficient. */
|
||||
output_asm_insn (AS1 (fistp%z3,%0), xops);
|
||||
output_asm_insn (AS1 (fild%z3,%0), xops);
|
||||
}
|
||||
else
|
||||
output_asm_insn (AS1 (fist%z3,%y0), xops);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user