Commit f277471f by Richard Kenner

(output_function_{pro,epi}logue): Save and restore fp-registers only

if TARGET_68881.

From-SVN: r13145
parent d8db8192
...@@ -255,6 +255,8 @@ output_function_prologue (stream, size) ...@@ -255,6 +255,8 @@ output_function_prologue (stream, size)
#endif #endif
} }
#endif #endif
if (TARGET_68881)
{
for (regno = 16; regno < 24; regno++) for (regno = 16; regno < 24; regno++)
if (regs_ever_live[regno] && ! call_used_regs[regno]) if (regs_ever_live[regno] && ! call_used_regs[regno])
mask |= 1 << (regno - 16); mask |= 1 << (regno - 16);
...@@ -267,6 +269,7 @@ output_function_prologue (stream, size) ...@@ -267,6 +269,7 @@ output_function_prologue (stream, size)
#endif #endif
} }
mask = 0; mask = 0;
}
for (regno = 0; regno < 16; regno++) for (regno = 0; regno < 16; regno++)
if (regs_ever_live[regno] && ! call_used_regs[regno]) if (regs_ever_live[regno] && ! call_used_regs[regno])
{ {
...@@ -428,12 +431,15 @@ output_function_epilogue (stream, size) ...@@ -428,12 +431,15 @@ output_function_epilogue (stream, size)
fpoffset = nregs * 8; fpoffset = nregs * 8;
#endif #endif
nregs = 0; nregs = 0;
if (TARGET_68881)
{
for (regno = 16; regno < 24; regno++) for (regno = 16; regno < 24; regno++)
if (regs_ever_live[regno] && ! call_used_regs[regno]) if (regs_ever_live[regno] && ! call_used_regs[regno])
{ {
nregs++; nregs++;
fmask |= 1 << (23 - regno); fmask |= 1 << (23 - regno);
} }
}
foffset = fpoffset + nregs * 12; foffset = fpoffset + nregs * 12;
nregs = 0; mask = 0; nregs = 0; mask = 0;
if (frame_pointer_needed) if (frame_pointer_needed)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment