Changeset 8391


Ignore:
Timestamp:
Feb 1, 2008, 3:44:38 PM (17 years ago)
Author:
R. Matthew Emerson
Message:

Change nargs from imm0 to temp1.

Location:
branches/ia32/lisp-kernel
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/lisp-kernel/x86-constants32.h

    r8359 r8391  
    2828#define Iallocptr Itemp0
    2929#define Ira0 Itemp0
    30 #define Inargs Iimm0
     30#define Inargs Itemp1
    3131#define Ixfn Itemp1
    3232
  • branches/ia32/lisp-kernel/x86-constants32.s

    r8382 r8391  
    4545define([allocptr],[temp0])
    4646
    47 define([nargs_b],[imm0_b])
    48 define([nargs_w],[imm0_w])
    49 define([nargs],[imm0])
     47define([nargs],[temp1])
    5048
    5149define([ra0],[temp0])
  • branches/ia32/lisp-kernel/x86-macros.s

    r8383 r8391  
    468468define([do_funcall],[
    469469        new_macro_labels()
    470         __(movl %imm0,%temp1) /* preserve nargs */
    471470        extract_fulltag(%temp0,%imm0)
    472471        __(cmpb $fulltag_misc,%imm0_b)
    473         __(movl %temp1,%imm0)
    474472        __(jne macro_label(bad))
    475473        __(cmpb $subtag_function,misc_subtag_offset(%temp0))
  • branches/ia32/lisp-kernel/x86-spentry32.s

    r8350 r8391  
    942942
    943943_spentry(tcallsymslide)
    944         __(int $3)
     944        __(movl %ebp,%imm0)
     945        __(subl %nargs,%imm0)   /* new tos */
     946        __(push %imm0)
     947        __(push %arg_y)
     948        __(push %arg_z)
     949        __(push %nargs)
     950        __(lea (4-nargregs)*node_size(%esp,%nargs),%arg_y) /* src ptr */
     951        __(movl %ebp,%imm0) /* dst ptr */
     952        __(subl $fixnumone*nargregs,%nargs)
     953        __(jmp 1f)
     9540:      __(subl $node_size,%arg_y)
     955        __(movl (%arg_y),%arg_z)
     956        __(subl $node_size,%imm0)
     957        __(movl %arg_z,(%imm0))
     9581:      __(subl $fixnumone,%nargs)
     959        __(jge 0b)
     960        __(pop %nargs)
     961        __(pop %arg_z)
     962        __(pop %arg_y)
     963        __(pop %esp)
     964        __(push -node_size(%ebp))
     965        __(movl 0(%ebp),%ebp)
     966        __(jump_fname)
    945967_endsubp(tcallsymslide)
    946968
     
    964986_endsubp(tcallnfnvsp)
    965987
     988/* Make a "raw" area on the foreign stack, stack-cons a macptr to point */
     989/* to it, and return the macptr.  Size (in bytes, boxed) is in arg_z */
     990/* on entry; macptr in arg_z on exit. */
    966991_spentry(makestackblock)
    967         __(int $3)
     992        __(unbox_fixnum(%arg_z,%imm0))
     993        __(dnode_align(%imm0,tsp_frame.fixed_overhead+macptr.size,%imm0))
     994        __(cmpl $tstack_alloc_limit,%imm0)
     995        __(jae 1f)
     996        __(movd %rcontext:tcr.foreign_sp,%mm0)
     997        __(subl %imm0,%rcontext:tcr.foreign_sp)
     998        __(movl %rcontext:tcr.foreign_sp,%arg_z)
     999        __(movd %mm0,(%arg_z))
     1000        __(lea macptr.size+tsp_frame.fixed_overhead(%arg_z),%imm0)
     1001        __(movl $macptr_header,tsp_frame.fixed_overhead(%arg_z))
     1002        __(addl $fulltag_misc+tsp_frame.fixed_overhead,%arg_z)
     1003        __(movl %imm0,macptr.address(%arg_z))
     1004        __(movss %fpzero,macptr.domain(%arg_z))
     1005        __(movss %fpzero,macptr.type(%arg_z))
     1006        __(ret)
     10071:      __(movd %rcontext:tcr.foreign_sp,%mm0)
     1008        __(subl $dnode_size,%rcontext:tcr.foreign_sp)
     1009        __(movl %rcontext:tcr.foreign_sp,%imm0)
     1010        __(movd %mm0,(%imm0))
     1011        __(set_nargs(1))
     1012        __(movl $nrs.new_gcable_ptr,%fname)
     1013        __(jump_fname())
    9681014_endsubp(makestackblock)
    9691015       
Note: See TracChangeset for help on using the changeset viewer.