Changeset 12008


Ignore:
Timestamp:
May 7, 2009, 4:37:00 AM (11 years ago)
Author:
gb
Message:

When popping flags on return from callback, recognize that we may
have aligned the stack after saving flags on entry, so re-establish
%esp relative to %ebp before popfl. (This seems to have mostly affected
Linux when exception callbacks returned.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-spentry32.s

    r12003 r12008  
    43554355         __(jne local_label(winapi_return))
    43564356        __endif
     4357        /* since we aligned the stack after pushing flags, we're not
     4358           really sure where %esp is relative to where flags were saved.
     4359           We do know where the saved flags are relative to %ebp, so use
     4360           that to establish %esp before the popfl.
     4361        */
     4362        __(lea -24(%ebp),%esp)
    43574363        __(popfl)       /* flags from bt way back when */
    43584364        __(jc local_label(discard_first_arg))
Note: See TracChangeset for help on using the changeset viewer.