Changeset 14657


Ignore:
Timestamp:
Feb 22, 2011, 7:00:44 PM (9 years ago)
Author:
rme
Message:

Don't bother to save/restore the state of the direction flag in
SPffcall and friends.

We already assume that the registers are in their normal state (we
push all the default node registers onto the lisp stack), so it's
just pointless.

File:
1 edited

Legend:

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

    r14652 r14657  
    10531053        __(movl $TCR_STATE_FOREIGN,rcontext(tcr.valence))
    10541054        __(movl rcontext(tcr.foreign_sp),%esp)
    1055         /* preserve state of direction flag */
    1056         __(pushfl)
    1057         __(popl rcontext(tcr.unboxed0))
    1058         __(cld)
    10591055        __(emms)
    10601056        __(pop %ebp)            /* backlink */
     
    10791075        __(clr %fn)
    10801076        __(pxor %fpzero,%fpzero)
    1081         __(pushl rcontext(tcr.unboxed0))
    1082         __(popfl)
    10831077        __(movl rcontext(tcr.save_vsp),%esp)
    10841078        __(movl rcontext(tcr.save_ebp),%ebp)
     
    11091103        __(movl $TCR_STATE_FOREIGN,rcontext(tcr.valence))
    11101104        __(movl rcontext(tcr.foreign_sp),%esp)
    1111         /* preserve state of direction flag */
    1112         __(pushfl)
    1113         __(popl rcontext(tcr.unboxed0))
    1114         __(cld)
    11151105        __(emms)
    11161106        __(pop %ebp)            /* backlink */
     
    11391129        __(clr %fn)
    11401130        __(pxor %fpzero,%fpzero)
    1141         __(pushl rcontext(tcr.unboxed0))
    1142         __(popf)
    11431131        __(movl rcontext(tcr.save_vsp),%esp)
    11441132        __(movl rcontext(tcr.save_ebp),%ebp)
     
    41584146/* previous %esp */
    41594147
     4148/*
     4149 * Note that we assume that the lisp registers are in the default
     4150 * state here:  that is, tcr.node_regs_mask has its default value,
     4151 * and the DF is clear.
     4152 */
    41604153_spentry(ffcall)
    41614154LocalLabelPrefix`'ffcall:
     
    41804173        __(movl $TCR_STATE_FOREIGN,rcontext(tcr.valence))
    41814174        __(movl rcontext(tcr.foreign_sp),%esp)
    4182         /* preserve state of direction flag */
    4183         __(pushfl)
    4184         __(popl rcontext(tcr.unboxed0))
    4185         __(cld)       
    41864175        __(stmxcsr rcontext(tcr.lisp_mxcsr))
    41874176        __(emms)
     
    42264215        __(fnclex)
    42274216        __endif
    4228 1:      /* restore state of DF from saved flags */
    4229         __(bt $DF_BIT,rcontext(tcr.unboxed0))
    4230         __(jnc 2f)
    4231         __(std)
    4232 2:     
    42334217        __(movl rcontext(tcr.save_vsp),%esp)
    42344218        __(movl rcontext(tcr.save_ebp),%ebp)
Note: See TracChangeset for help on using the changeset viewer.