Ignore:
Timestamp:
Feb 11, 2009, 1:24:56 AM (11 years ago)
Author:
gb
Message:

Propagate r11710, r11712 to 1.3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/1.3/source/lisp-kernel/x86-asmutils32.s

    r11609 r11714  
    198198_exportfn(C(restore_windows_context))
    199199Xrestore_windows_context_start:
     200        __(movl 4(%esp),%ecx)   /* context */
    200201        __(movl 12(%esp),%edx)  /* old valence */
    201202        __(movl 8(%esp),%eax)   /* tcr */
    202203        __(movw tcr.ldt_selector(%eax), %rcontext_reg)
    203         __(movl 4(%esp),%ecx)   /* context */
    204204        __(movl %edx,rcontext(tcr.valence))
    205205        __(movl $0,rcontext(tcr.pending_exception_context))
     
    223223        __(movl win32_context.Eax(%ecx),%eax)
    224224        __(movl win32_context.Esp(%ecx),%esp)
    225         __(pushl win32_context.Eip(%ecx))
    226 Xrestore_windows_context_load_rcx:               
     225        __(pushl win32_context.EFlags(%ecx))
     226        __(pushl %cs)
     227        __(pushl win32_context.Eip(%ecx))       
     228        /* This must be the last thing before the iret, e.g., if we're
     229        interrupted before the iret, the context we're returning to here
     230        is still in %ecx.  If we're interrupted -at- the iret, then
     231        everything but that which the iret will restore has been restored. */
    227232        __(movl win32_context.Ecx(%ecx),%ecx)
    228233Xrestore_windows_context_iret:           
    229         __(ret)
     234        __(iret)
    230235Xrestore_windows_context_end:             
    231236        __(nop)
     
    247252        .globl C(restore_windows_context_start)
    248253        .globl C(restore_windows_context_end)
    249         .globl C(restore_windows_context_load_rcx)
    250254        .globl C(restore_windows_context_iret)
    251255C(restore_windows_context_start):  .long Xrestore_windows_context_start
    252256C(restore_windows_context_end): .long Xrestore_windows_context_end
    253 C(restore_windows_context_load_rcx):  .long Xrestore_windows_context_load_rcx
    254257C(restore_windows_context_iret): .long Xrestore_windows_context_iret
    255258        .text
Note: See TracChangeset for help on using the changeset viewer.