Changeset 10934


Ignore:
Timestamp:
Oct 1, 2008, 12:14:29 AM (11 years ago)
Author:
gb
Message:

Swap lisp/foreign %es values (if WIN32_ES_HACK) when transitioning
between lisp/foreign code.

Location:
trunk/source/lisp-kernel
Files:
2 edited

Legend:

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

    r10797 r10934  
    40874087        __(push %arg_z)
    40884088        __(push %fn)
     4089        __ifdef([WIN32_ES_HACK])
     4090         __(movl rcontext(tcr.linear),%ebx)
     4091        __endif
    40894092        __(movl %esp,rcontext(tcr.save_vsp))
    40904093        __(movl %ebp,rcontext(tcr.save_ebp))
     
    40944097        __(pushfl)
    40954098        __(popl rcontext(tcr.save_eflags))
    4096         __(cld)
     4099        __(cld)       
    40974100        __(stmxcsr rcontext(tcr.lisp_mxcsr))
    40984101        __(emms)
     
    41044107        __(movl %ecx,%esp)
    41054108/*      __(addl $node_size,%esp) */
     4109        __ifdef([WIN32_ES_HACK])
     4110         __(push %ds)
     4111         __(pop %es)
     4112        __endif
    41064113LocalLabelPrefix[]ffcall_call:
    41074114        __(call *%eax)
     4115        __ifdef([WIN32_ES_HACK])
     4116         __(movw tcr.ldt_selector(%ebx),%rcontext_reg)
     4117        __endif
    41084118LocalLabelPrefix[]ffcall_call_end:
    41094119        __(movl %ebp,%esp)
     
    42664276        __(addl $12,%esp)       /* discard alignment padding */
    42674277        __(ldmxcsr rcontext(tcr.foreign_mxcsr))
     4278        __ifdef([WIN32_ES_HACK])
     4279         __(push %ds)
     4280         __(pop %es)
     4281        __endif
    42684282        __(pop %ebp)
    42694283        __(pop %ebx)
     
    42824296        __(leave)
    42834297        __(ret)
    4284 2: /* double-float return in x87 */
     42982:      /* double-float return in x87 */
    42854299        __(fldl -8(%ebp))
    42864300        __(leave)
  • trunk/source/lisp-kernel/x86-subprims32.s

    r10919 r10934  
    101101        __(pop %edi)
    102102        __(ldmxcsr rcontext(tcr.foreign_mxcsr))
     103        __ifdef([WIN32_ES_HACK])
     104         __(push %ds)
     105         __(pop %es)
     106        __endif
    103107        __(movl $nil_value, %eax)
    104108        __(leave)
Note: See TracChangeset for help on using the changeset viewer.