https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83292
Andrew Church <achurch+gcc at achurch dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|__builtin_apply() triggers |__builtin_apply(),
|x87 stack exception on |__builtin_return() trigger
|32-bit x86 |x87 stack exception on
| |32-bit x86
--- Comment #1 from Andrew Church <achurch+gcc at achurch dot org> ---
For the record, __builtin_return() has the same problem of mixing x87 and MMX
instructions, so this doesn't work around the problem when using
__builtin_return():
void *retval = __builtin_apply(...);
__asm__ volatile("finit"); // reset x87 state
__builtin_return(retval); // corrupts x87 state again