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

Reply via email to