On Wed, May 13, 2015 at 8:17 PM, Alexander Monakov wrote:
> Can you also tell me why ..._pop call and sibcall instructions are predicated
> on !TARGET_64BIT?
Because " /* None of the 64-bit ABIs pop arguments. */ ".
Please see call_pop documentation and ix86_return_pops_args from
config/i386/
Ah. I realize it's most likely for testing sibcall_[value]_pop_memory
peepholes, right? In which case the testcase might look like this:
/* { dg-do compile } */
/* { dg-options "-O2" } */
void foo (int a, void (**doo1) (void), void (**doo2) (void))
{
char s[16] = {0};
do s[a] =
Hello,
Last year's x86 sibcall improvements added a currently xfailed test:
/* { dg-do compile { target ia32 } } */
/* { dg-options "-O2" } */
extern int doo1 (int);
extern int doo2 (int);
extern void bar (char *);
int foo (int a)
{
char s[256];
bar (s);
return (a < 0