Commit 85802504 by Gunther Nikl Committed by Bernardo Innocenti

m68k.c (m68k_compute_frame_layout): Swap reg_mask and reg_rev_mask computation.

	* config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and
	reg_rev_mask computation.
	(m68k_output_function_prologue): Fix usage of current_frame (one typo
	and one missing); use reg_rev_mask not reg_mask.
	(m68k_output_function_epilogue): Fix usage of current_frame;
	use fpu_rev_mask not fpu_mask.

From-SVN: r72964
parent a89e3f21
2003-10-26 Gunther Nikl <gni@gecko.de>
* config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and
reg_rev_mask computation.
(m68k_output_function_prologue): Fix usage of current_frame (one typo
and one missing); use reg_rev_mask not reg_mask.
(m68k_output_function_epilogue): Fix usage of current_frame;
use fpu_rev_mask not fpu_mask.
2003-10-26 Bernardo Innocenti <bernie@develer.com> 2003-10-26 Bernardo Innocenti <bernie@develer.com>
* config/m68k/m68k.c (m68k_output_function_prologue): Eliminate * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate
......
...@@ -358,8 +358,8 @@ m68k_compute_frame_layout (void) ...@@ -358,8 +358,8 @@ m68k_compute_frame_layout (void)
for (regno = 16; regno < 24; regno++) for (regno = 16; regno < 24; regno++)
if (m68k_save_reg (regno, interrupt_handler)) if (m68k_save_reg (regno, interrupt_handler))
{ {
mask |= 1 << (23 - regno); mask |= 1 << (regno - 16);
rmask |= 1 << (regno - 16); rmask |= 1 << (23 - regno);
saved++; saved++;
} }
current_frame.foffset = saved * 12 /* (TARGET_CFV4E ? 8 : 12) */; current_frame.foffset = saved * 12 /* (TARGET_CFV4E ? 8 : 12) */;
...@@ -610,7 +610,7 @@ m68k_output_function_prologue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED ...@@ -610,7 +610,7 @@ m68k_output_function_prologue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED
#ifdef MOTOROLA #ifdef MOTOROLA
asm_fprintf (stream, "\tfmovm %I0x%x,-(%Rsp)\n", current_frame.fpu_mask); asm_fprintf (stream, "\tfmovm %I0x%x,-(%Rsp)\n", current_frame.fpu_mask);
#else #else
asm_fprintf (stream, "\tfmovem %I0x%x,%Rsp@-\n", current_frmae.fpu_mask); asm_fprintf (stream, "\tfmovem %I0x%x,%Rsp@-\n", current_frame.fpu_mask);
#endif #endif
if (dwarf2out_do_frame ()) if (dwarf2out_do_frame ())
{ {
...@@ -695,9 +695,9 @@ m68k_output_function_prologue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED ...@@ -695,9 +695,9 @@ m68k_output_function_prologue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED
else else
{ {
#ifdef MOTOROLA #ifdef MOTOROLA
asm_fprintf (stream, "\tmovm.l %I0x%x,-(%Rsp)\n", current_frame.reg_mask); asm_fprintf (stream, "\tmovm.l %I0x%x,-(%Rsp)\n", current_frame.reg_rev_mask);
#else #else
asm_fprintf (stream, "\tmoveml %I0x%x,%Rsp@-\n", current_frame.reg_mask); asm_fprintf (stream, "\tmoveml %I0x%x,%Rsp@-\n", current_frame.reg_rev_mask);
#endif #endif
} }
if (dwarf2out_do_frame ()) if (dwarf2out_do_frame ())
...@@ -922,7 +922,7 @@ m68k_output_function_epilogue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED ...@@ -922,7 +922,7 @@ m68k_output_function_epilogue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED
#else #else
asm_fprintf (stream, "\tmoveml %s@(-%wd),%I0x%x\n", asm_fprintf (stream, "\tmoveml %s@(-%wd),%I0x%x\n",
reg_names[FRAME_POINTER_REGNUM], reg_names[FRAME_POINTER_REGNUM],
offset + fsize, current_frame.offset + fsize,
current_frame.reg_mask); current_frame.reg_mask);
#endif #endif
} }
...@@ -1001,7 +1001,7 @@ m68k_output_function_epilogue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED ...@@ -1001,7 +1001,7 @@ m68k_output_function_epilogue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED
asm_fprintf (stream, "\tfmovm -%wd(%s),%I0x%x\n", asm_fprintf (stream, "\tfmovm -%wd(%s),%I0x%x\n",
current_frame.foffset + fsize, current_frame.foffset + fsize,
reg_names[FRAME_POINTER_REGNUM], reg_names[FRAME_POINTER_REGNUM],
current_frame.fpu_mask); current_frame.fpu_rev_mask);
#else #else
asm_fprintf (stream, "\tfmovem %s@(-%wd),%I0x%x\n", asm_fprintf (stream, "\tfmovem %s@(-%wd),%I0x%x\n",
reg_names[FRAME_POINTER_REGNUM], reg_names[FRAME_POINTER_REGNUM],
......
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