Changeset 9625
- Timestamp:
- May 29, 2008, 10:13:51 PM (16 years ago)
- File:
-
- 1 edited
-
branches/ia32/lisp-kernel/x86-spentry32.s (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/lisp-kernel/x86-spentry32.s
r9616 r9625 2321 2321 /* '%err-disp in %imm0.) */ 2322 2322 _spentry(ksignalerr) 2323 __(int $3)2324 2323 __(mov $nrs.errdisp,%imm0) 2325 2324 __(mov symbol.fcell(%imm0),%fn) … … 2564 2563 2565 2564 _spentry(tcallnfngen) 2566 __(int $3) 2565 __(cmpl $nargregs*node_size,%nargs) 2566 __(jbe 9f) 2567 __(lea -nargregs*node_size(%esp,%nargs),%imm0) 2568 __(movd %nargs,%mm0) /* stash nargs aka temp1 */ 2569 __(xorl %temp1,%temp1) 2570 __(movl %temp0,%rcontext:tcr.save0) 2571 /* It's OK to use %ra0 (%temp0) as an temp here, since the */ 2572 /* real return address is on the stack. */ 2573 0: __(movl -node_size(%imm0),%ra0) 2574 __(movl %ra0,-node_size(%ebp,%temp1)) 2575 __(subl $node_size,%imm0) 2576 __(subl $node_size,%temp1) 2577 __(cmpl %imm0,%esp) 2578 __(jne 0b) 2579 __(movl %rcontext:tcr.save0,%fn) 2580 __(movss %fpzero,%rcontext:tcr.save0) 2581 __(lea (%ebp,%temp1),%esp) 2582 __(movl lisp_frame.savera0(%ebp),%ra0) 2583 __(movl lisp_frame.backlink(%ebp),%ebp) 2584 __(push %ra0) 2585 __(jmp *%fn) 2586 9: /* All args in regs; exactly the same as the tcallnfnvsp case */ 2587 __(movl %temp0,%fn) 2588 __(leave) 2589 __(jmp *%fn) 2567 2590 _endsubp(tcallnfngen) 2568 2591
Note:
See TracChangeset
for help on using the changeset viewer.
