- Timestamp:
- May 7, 2008, 9:09:48 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ia32/lisp-kernel/x86-spentry32.s (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/lisp-kernel/x86-spentry32.s
r9379 r9398 3864 3864 3865 3865 _spentry(callback) 3866 __(int $3)3867 3866 __(push %ebp) 3868 3867 __(movl %esp,%ebp) 3868 /* C scalar args are already on the stack. */ 3869 /* arg word 0 at 8(%ebp), word 1 at 12(%ebp), etc. */ 3870 3869 3871 /* C NVRs */ 3870 3872 __(push %edi) 3871 3873 __(push %esi) 3872 3874 __(push %ebx) 3875 __(push %ebp) 3873 3876 3874 __( movl %eax,%edi)3877 __(box_fixnum(%eax,%esi)) /* put callback index in arg_y */ 3875 3878 __(ref_global(get_tcr,%eax)) 3876 3879 __(push $1) 3877 3880 __(call *%eax) 3878 /* linear TCR addr now in %eax; callback index in %edi */ 3879 __(movl %edi,%eax) 3881 /* linear TCR addr now in %eax */ 3880 3882 __(push %rcontext:tcr.foreign_sp) 3883 __(movl %esp,%rcontext:tcr.foreign_sp) 3881 3884 __(clr %arg_z) 3882 __(clr %arg_y)3885 /* arg_y contains callback index */ 3883 3886 __(clr %temp1) 3884 3887 __(clr %temp0) … … 3886 3889 __(pxor %fpzero,%fpzero) 3887 3890 __(movl %rcontext:tcr.save_vsp,%esp) 3888 __(box_fixnum(%eax,%arg_y))3889 3891 __(movl %ebp,%arg_z) 3892 __(movl %rcontext:tcr.save_ebp,%ebp) 3890 3893 __(movl $TCR_STATE_LISP,%rcontext:tcr.valence) 3891 3894 __(stmxcsr %rcontext:tcr.foreign_mxcsr) … … 3904 3907 __(emms) 3905 3908 __(pop %rcontext:tcr.foreign_sp) 3909 __(addl $node_size,%esp) 3906 3910 __(ldmxcsr %rcontext:tcr.foreign_mxcsr) 3911 __(pop %ebp) 3907 3912 __(pop %ebx) 3908 3913 __(pop %esi) 3909 3914 __(pop %edi) 3915 __(movl -4(%ebp),%eax) 3916 /* fp result? */ 3910 3917 __(leave) 3911 3918 __(ret)
Note:
See TracChangeset
for help on using the changeset viewer.
