Commit 07c10d8f by Jason Merrill Committed by Jason Merrill

* calls.c (load_register_parameters): Fix zero size sibcall logic.

From-SVN: r234332
parent 09d8f359
2016-03-18 Jason Merrill <jason@redhat.com>
* calls.c (load_register_parameters): Fix zero size sibcall logic.
2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
* config/i386/sse.md: Use vpbroadcastq for broadcasting DF
......
......@@ -2083,9 +2083,9 @@ load_register_parameters (struct arg_data *args, int num_actuals,
/* Check for overlap with already clobbered argument area,
providing that this has non-zero size. */
if (is_sibcall
&& (size == 0
|| mem_overlaps_already_clobbered_arg_p
(XEXP (args[i].value, 0), size)))
&& size != 0
&& (mem_overlaps_already_clobbered_arg_p
(XEXP (args[i].value, 0), size)))
*sibcall_failure = 1;
if (size % UNITS_PER_WORD == 0
......
// Test for sibcall optimization with empty struct.
// { dg-options "-O2" }
// { dg-final { scan-assembler "jmp" { target i?86-*-* x86_64-*-* } } }
struct A { };
void f(struct A);
void g(struct A a) { f(a); }
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