Commit 4b51caf2 by Kai Tietz Committed by Kai Tietz

i386.c (ix86_expand_epilogue): Adjust offset for xmm register restore.

2009-09-21  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
	xmm register restore.

2009-09-21  Kai Tietz  <kai.tietz@onevision.com>

	* gcc.dg/torture/calleesave-sse.c: New.

From-SVN: r151918
parent 5b5fba56
2009-09-21 Kai Tietz <kai.tietz@onevision.com>
* config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
xmm register restore.
2009-09-21 Jan Hubicka <jh@suse.cz>
* dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL.
......
......@@ -8916,7 +8916,7 @@ ix86_expand_epilogue (int style)
hard_frame_pointer_rtx,
GEN_INT (offset), style, false);
ix86_emit_restore_sse_regs_using_mov (stack_pointer_rtx,
frame.to_allocate, red_offset,
0, red_offset,
style == 2);
pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
GEN_INT (frame.nsseregs * 16 + frame.padding0),
......
2009-09-21 Kai Tietz <kai.tietz@onevision.com>
* gcc.dg/torture/calleesave-sse.c: New.
2009-09-21 Jan Hubicka <jh@suse.cz>
* gcc.dg/guality/inline-params.c: New testcase.
......
/* { dg-do run } */
/* { dg-options "-fno-omit-frame-pointer" } */
#define alloca __builtin_alloca
extern void abort (void);
__attribute__ ((noinline)) static double
bar (double a, double b, double c, double d, char *h)
{
*h = 0;
return a * b + b + c;
}
__attribute__ ((noinline)) static int
boo (double a, double b, double c, double d)
{
return c * b + a + b;
}
__attribute__ ((noinline)) static double
foo (double a, double b, double c, double d)
{
int aa = boo (b, c, d, a);
return bar (a, b, c, d, (char *) alloca (aa))
+ bar (d, c, b, a, (char *) alloca (aa));
}
int main ()
{
double a = 2.0, b = 3.0, c = 4.0, d = 5.0;
double r1, r2;
int aa;
aa = boo (b, c, d, a);
r1 = bar (a, b, c, d, (char *) alloca (aa))
+ bar (d, c, b, a, (char *) alloca (aa));
r2 = foo (a, b, c, d);
if (r1 != r2)
abort ();
return 0;
}
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