From f277471f3676db9a6fdb52c3fb137f4a47bed4fc Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 12 Nov 1996 16:37:12 -0500 Subject: [PATCH] (output_function_{pro,epi}logue): Save and restore fp-registers only if TARGET_68881. From-SVN: r13145 --- gcc/config/m68k/m68k.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index c6243ce4fc8..d6a17215ef1 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -255,18 +255,21 @@ output_function_prologue (stream, size) #endif } #endif - for (regno = 16; regno < 24; regno++) - if (regs_ever_live[regno] && ! call_used_regs[regno]) - mask |= 1 << (regno - 16); - if ((mask & 0xff) != 0) + if (TARGET_68881) { + for (regno = 16; regno < 24; regno++) + if (regs_ever_live[regno] && ! call_used_regs[regno]) + mask |= 1 << (regno - 16); + if ((mask & 0xff) != 0) + { #ifdef MOTOROLA - asm_fprintf (stream, "\tfmovm %0I0x%x,-(%Rsp)\n", mask & 0xff); + asm_fprintf (stream, "\tfmovm %0I0x%x,-(%Rsp)\n", mask & 0xff); #else - asm_fprintf (stream, "\tfmovem %0I0x%x,%Rsp@-\n", mask & 0xff); + asm_fprintf (stream, "\tfmovem %0I0x%x,%Rsp@-\n", mask & 0xff); #endif + } + mask = 0; } - mask = 0; for (regno = 0; regno < 16; regno++) if (regs_ever_live[regno] && ! call_used_regs[regno]) { @@ -428,12 +431,15 @@ output_function_epilogue (stream, size) fpoffset = nregs * 8; #endif nregs = 0; - for (regno = 16; regno < 24; regno++) - if (regs_ever_live[regno] && ! call_used_regs[regno]) - { - nregs++; - fmask |= 1 << (23 - regno); - } + if (TARGET_68881) + { + for (regno = 16; regno < 24; regno++) + if (regs_ever_live[regno] && ! call_used_regs[regno]) + { + nregs++; + fmask |= 1 << (23 - regno); + } + } foffset = fpoffset + nregs * 12; nregs = 0; mask = 0; if (frame_pointer_needed) -- 2.30.2