Changeset 8344


Ignore:
Timestamp:
Jan 29, 2008, 12:58:20 AM (13 years ago)
Author:
gz
Message:

Update to trunk r8343

Location:
branches/event-ide/ccl
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/event-ide/ccl/level-1/linux-files.lisp

    r8335 r8344  
    350350
    351351(defun try-hard-to-get-errno (err)
    352   (declare (optimize (safety 0 speed 3)))
    353352  (when (eq err -1)
    354353    (let ((nerr (%get-errno)))
     
    356355  #+darwin-target
    357356  (when (eq err -1)
    358     ;; Not thread safe, but when can we do??
     357    ;; Not thread safe, but what else can I do??
    359358    (let ((nerr (pref (foreign-symbol-address "_errno") :signed)))
    360359      (unless (eq nerr 0) (setq err nerr))))
  • branches/event-ide/ccl/lib/lists.lisp

    r929 r8344  
    365365                   (test #'eql testp) (test-not nil notp))
    366366  "Substitute NEW for subtrees matching OLD."
    367   "replace with above def when labels works"
    368367  (if (and testp notp)
    369368    (test-not-error test test-not))
     
    393392(defun nsubst-if (new test tree &key key)
    394393  "Substitute NEW for subtrees of TREE for which TEST is true."
    395   "replace with above def when labels works."
    396394  (unless key (setq key #'identity))
    397395  (cond ((funcall test (funcall key tree)) new)
     
    410408(defun nsubst-if-not (new test tree &key key)
    411409  "Substitute NEW for subtrees of TREE for which TEST is false."
    412   "Replace with above def when labels works."
    413410  (unless key (setq key #'identity))
    414411  (cond ((not (funcall test (funcall key tree))) new)
  • branches/event-ide/ccl/lib/pathnames.lisp

    r8262 r8344  
    110110        (values new-name original (truename new-name))))))
    111111
    112 
    113112(defun copy-file (source-path dest-path &key (if-exists :error)
    114113                              (preserve-attributes nil))
    115114  (let* ((original (truename source-path))
    116          (original-namestring (native-translated-namestring original))
    117115         (new-name (merge-pathnames dest-path original))
    118          (new-namestring (native-translated-namestring new-name))
    119          (flags (if preserve-attributes "-pf" "-f")))
    120     (unless new-namestring
    121       (error "~S can't be created." new-name))
    122     (unless (and (probe-file new-name)
    123                  (not (if-exists if-exists new-name)))
    124       (let* ((proc (run-program "/bin/cp"
    125                                 `(,flags ,original-namestring ,new-namestring)
    126                                 :wait t))
    127              (exit-code (external-process-%exit-code proc)))
    128         (unless (zerop exit-code)
    129           (error "Error copying ~s to ~s: ~a"
    130                  source-path dest-path (%strerror exit-code)))
    131         (values new-name original (truename new-name))))))
     116         (buffer (make-array 4096 :element-type '(unsigned-byte 8))))
     117    (with-open-file (in original :direction :input
     118                        :element-type '(unsigned-byte 8))
     119      (with-open-file (out new-name :direction :output
     120                           :if-exists if-exists
     121                           :element-type '(unsigned-byte 8))
     122        (loop
     123          as n = (stream-read-vector in buffer 0 4096) until (eql n 0)
     124          do (stream-write-vector out buffer 0 n))))
     125    (when preserve-attributes
     126      (copy-file-attributes original new-name))
     127    (values new-name original (truename new-name))))
    132128
    133129(defun recursive-copy-directory (source-path dest-path &key test (if-exists :error))
  • branches/event-ide/ccl/library/darwinx8664-syscalls.lisp

    r4975 r8344  
    9393(define-syscall (logior platform-os-darwin platform-cpu-x86 platform-word-size-64) syscalls::truncate  (logior darwinx8664-unix-syscall-mask 200) (:address :unsigned-doubleword) :signed-fullword )
    9494(define-syscall (logior platform-os-darwin platform-cpu-x86 platform-word-size-64) syscalls::ftruncate  (logior darwinx8664-unix-syscall-mask 201) (:unsigned-fullword :unsigned-doubleword) :signed-fullword )
    95 
     95(define-syscall (logior platform-os-darwin platform-cpu-x86 platform-word-size-64) syscalls::poll (logior darwinx8664-unix-syscall-mask 230) ((:* (:struct :pollfd)) :int :int) :int)
    9696#+notdefinedyet
    9797(progn
  • branches/event-ide/ccl/lisp-kernel/x86-constants64.s

    r8262 r8344  
    155155define([next_method_context],[temp0])
    156156define([nargs_b],[imm2_b])     
    157 define([nargs],[imm2_w])
     157define([nargs_w],[imm2_w])
    158158define([nargs_q],[imm2])
    159 define([nargs_l],[imm2_l])
     159define([nargs],[imm2_l])
    160160define([ra0],[temp2])       
    161161                                               
  • branches/event-ide/ccl/lisp-kernel/x86-macros.s

    r8304 r8344  
    245245define([set_nargs],[
    246246        ifelse(eval($1>15),1,[
    247         __(movl [$]$1<<fixnumshift,%nargs_l)
     247        __(movl [$]$1<<fixnumshift,%nargs)
    248248        ],[
    249         __(xorl %nargs_l,%nargs_l)
     249        __(xorl %nargs,%nargs)
    250250        ifelse(eval($1),0,[],[
    251         __(addl [$]$1<<fixnumshift,%nargs_l)
     251        __(addl [$]$1<<fixnumshift,%nargs)
    252252        ])])])
    253253       
     
    393393define([push_argregs],[
    394394        new_macro_labels()
    395         __(testw %nargs,%nargs)
     395        __(testl %nargs,%nargs)
    396396        __(jz macro_label(done))
    397         __(cmpw [$]2*node_size,%nargs)
     397        __(cmpl [$]2*node_size,%nargs)
    398398        __(je macro_label(yz))
    399399        __(jb macro_label(z))
  • branches/event-ide/ccl/lisp-kernel/x86-spentry64.s

    r8262 r8344  
    11211121        __(cmpq lisp_frame.savera0(%rbp),%temp1)
    11221122        __(je 1f)
    1123         __(testw %nargs,%nargs)
    1124         __(movzwl %nargs,%nargs_l)
     1123        __(testl %nargs,%nargs)
    11251124        __(movl $nil_value,%arg_z_l)
    11261125        __(cmovneq -node_size(%rsp,%nargs_q),%arg_z)
     
    11311130/* actually need to return values ; always need to copy   */
    113211311:      __(leaq 2*node_size(%rbp),%imm1)
    1133         __(movzwl %nargs,%nargs_l)
    11341132        __(movq (%imm1),%ra0)
    11351133        __(addq $node_size,%imm1)
     
    114011382:      __(movq -node_size(%temp0),%temp1)
    11411139        __(subq $node_size,%temp0)
    1142         __(addq $node_size,%imm0)
     1140        __(addl $node_size,%imm0_l)
    11431141        __(movq %temp1,-node_size(%imm1))
    11441142        __(subq $node_size,%imm1)
    1145 3:      __(cmpw %imm0_w,%nargs)
     11433:      __(cmpl %imm0_l,%nargs)  ;
    11461144        __(jne 2b)
    11471145        __(movq %imm1,%rsp)
     
    11971195        __(movq %rcontext:tcr.catch_top,%imm1)
    11981196        __(xorl %imm0_l,%imm0_l)
    1199         __(movzwl %nargs,%nargs_l)
    12001197        __(movq (%rsp,%nargs_q),%temp0) /* temp0 = tag   */
    12011198        __(jmp local_label(_throw_test))
     
    12151212        __(testb $fulltagmask,catch_frame.mvflag(%imm1))
    12161213        __(jne local_label(_throw_multiple))
    1217         __(testw %nargs,%nargs)
     1214        __(testl %nargs,%nargs)
    12181215        __(movl $nil_value,%arg_z_l)
    12191216        __(je local_label(_throw_one_value))
     
    13001297_spentry(nthrowvalues)
    13011298        __(movb $1,%rcontext:tcr.unwinding)
    1302         __(movzwl %nargs,%nargs_l)
    13031299local_label(_nthrowv_nextframe):
    13041300        __(subq $fixnumone,%imm0)
     
    13901386        __(addq $node_size,%imm1)
    13911387local_label(_nthrowv_tpushtest):
    1392         __(subw $node_size,%nargs)
     1388        __(subl $node_size,%nargs)
    13931389        __(jns local_label(_nthrowv_tpushloop))
    13941390        __(pop %xfn)
     
    14381434_spentry(nthrow1value)
    14391435        __(movb $1,%rcontext:tcr.unwinding)
    1440         __(movzwl %nargs,%nargs_l)
    14411436local_label(_nthrow1v_nextframe):
    14421437        __(subq $fixnumone,%imm0)
     
    16481643_spentry(conslist)
    16491644        __(movl $nil_value,%arg_z_l)
    1650         __(testw %nargs,%nargs)
     1645        __(testl %nargs,%nargs)
    16511646        __(jmp 2f)
    165216471:      __(pop %arg_y)
    16531648        __(Cons(%arg_y,%arg_z,%arg_z))
    1654         __(subw $node_size,%nargs)
     1649        __(subl $node_size,%nargs)
    165516502:      __(jnz 1b)
    16561651        __(jmp *%ra0)           
     
    16611656       
    16621657_spentry(conslist_star)
    1663         __(testw %nargs,%nargs)
     1658        __(testl %nargs,%nargs)
    16641659        __(jmp 2f)
    166516601:      __(pop %arg_y)
    16661661        __(Cons(%arg_y,%arg_z,%arg_z))
    1667         __(subw $node_size,%nargs)
     1662        __(subl $node_size,%nargs)
    166816632:      __(jnz 1b)
    16691664        __(jmp *%ra0)           
     
    16731668/* doesn't get confused.   */
    16741669_spentry(stkconslist)
    1675         __(movzwl %nargs,%nargs_l)
    16761670        __(movq %nargs_q,%imm1)
    16771671        __(addq %imm1,%imm1)
     
    16801674        __(TSP_Alloc_Var(%imm1,%imm0))
    16811675        __(addq $fulltag_cons,%imm0)
    1682         __(testw %nargs,%nargs)
     1676        __(testl %nargs,%nargs)
    16831677        __(jmp 2f)
    168416781:      __(pop %temp0)
     
    16871681        __(movq %imm0,%arg_z)
    16881682        __(add $cons.size,%imm0)
    1689         __(subw $node_size,%nargs)
     1683        __(subl $node_size,%nargs)
    169016842:      __(jne 1b)
    16911685        __(jmp *%ra0)
     
    16961690       
    16971691_spentry(stkconslist_star)
    1698         __(movzwl %nargs,%nargs_l)
    16991692        __(movq %nargs_q,%imm1)
    17001693        __(addq %imm1,%imm1)
     
    17021695        __(TSP_Alloc_Var(%imm1,%imm0))
    17031696        __(addq $fulltag_cons,%imm0)
    1704         __(testw %nargs,%nargs)
     1697        __(testl %nargs,%nargs)
    17051698        __(jmp 2f)
    170616991:      __(pop %temp0)
     
    17091702        __(movq %imm0,%arg_z)
    17101703        __(addq $cons.size,%imm0)
    1711         __(subw $node_size,%nargs)
     1704        __(subl $node_size,%nargs)
    171217052:      __(jne 1b)
    17131706        __(jmp *%ra0)
     
    17181711       
    17191712_spentry(mkstackv)
    1720         __(movzwl %nargs,%nargs_l)
    17211713        __(dnode_align(%nargs_q,tsp_frame.fixed_overhead+node_size,%imm1))
    17221714        __(TSP_Alloc_Var(%imm1,%temp0))
    1723         __(movl %nargs_l,%imm0_l)
     1715        __(movl %nargs,%imm0_l)
    17241716        __(shlq $(num_subtag_bits-fixnumshift),%imm0)
    17251717        __(movb $subtag_simple_vector,%imm0_b)
    17261718        __(movq %imm0,(%temp0))
    17271719        __(leaq fulltag_misc(%temp0),%arg_z)
    1728         __(testw %nargs,%nargs)
     1720        __(testl %nargs,%nargs)
    17291721        __(leaq misc_data_offset(%arg_z,%nargs_q),%imm1)
    17301722        __(jmp 2f)
    173117231:      __(pop -node_size(%imm1))
    1732         __(subw $node_size,%nargs)
     1724        __(subl $node_size,%nargs)
    17331725        __(leaq -node_size(%imm1),%imm1)
    173417262:      __(jne 1b)
     
    20842076/* objects.   */
    20852077_spentry(gvector)
    2086         __(movzwl %nargs,%nargs_l)
    20872078        __(movq (%rsp,%nargs_q),%imm0)  /* boxed subtype   */
    20882079        __(sarq $fixnumshift,%imm0)
     
    21162107        __(ref_global(ret1val_addr,%imm1))
    21172108        __(cmpq %imm1,%ra0)
    2118         __(movzwl %nargs,%nargs_l)
    21192109        __(movl $nil_value,%arg_z_l)
    21202110        __(je 0f)
    2121         __(testw %nargs,%nargs)
     2111        __(testl %nargs,%nargs)
    21222112        __(cmovneq -node_size(%rsp,%nargs_q),%arg_z)
    21232113        __(movq %temp0,%rsp)
     
    21522142        __(push_argregs())
    21532143        __(movq %next_method_context,%arg_y)
    2154         __(movzwl %nargs,%nargs_l)
    2155         __(movl %nargs_l,%imm1_l)
     2144        __(movl %nargs,%imm1_l)
    21562145        __(testl %imm1_l,%imm1_l)
    21572146        __(movl $nil_value,%arg_z_l)
     
    21712160        __(push_argregs())
    21722161        __(movq %next_method_context,%arg_y)
    2173         __(movzwl %nargs,%nargs_l)
    2174         __(movl %nargs_l,%imm1_l)
     2162        __(movl %nargs,%imm1_l)
    21752163        __(subl %imm0_l,%imm1_l)
    21762164        __(movl $nil_value,%arg_z_l)
     
    21892177/* make an &rest arg out of any others   */
    21902178_spentry(heap_cons_rest_arg)
    2191         __(movzwl %nargs,%nargs_l)
    2192         __(movl %nargs_l,%imm1_l)
     2179        __(movl %nargs,%imm1_l)
    21932180        __(subl %imm0_l,%imm1_l)
    21942181        __(movq %next_method_context,%arg_y)
     
    22302217       
    22312218_spentry(keyword_bind)
    2232         __(movzwl %nargs,%imm1_l)
     2219        __(movl %nargs,%imm1_l)
    22332220        __(subq %imm0,%imm1)
    22342221        __(jbe local_label(no_keyword_values))
     
    22372224        __(movl $nil_value,%arg_z_l)
    22382225        __(movq %imm1,%nargs_q)
    2239         __(testw %nargs,%nargs)
     2226        __(testl %nargs,%nargs)
    22402227        __(jmp 1f)
    224122280:      __(pop %arg_y)
    22422229        __(Cons(%arg_y,%arg_z,%arg_z))
    2243         __(subw $node_size,%nargs)
     2230        __(subl $node_size,%nargs)
    224422311:      __(jnz 0b)
    22452232        __(movl $XBADKEYS,%arg_y_l)
     
    23542341        /* Signal an "unknown keywords" error   */
    23552342        __(movq %imm1,%nargs_q)
    2356         __(testw %nargs,%nargs)
     2343        __(testl %nargs,%nargs)
    23572344        __(movl $nil_value,%arg_z_l)
    23582345        __(jmp 5f)
    235923464:      __(pop %arg_y)
    23602347        __(Cons(%arg_y,%arg_z,%arg_z))
    2361         __(subw $node_size,%nargs)
     2348        __(subl $node_size,%nargs)
    236223495:      __(jnz 4b)
    23632350        __(movl $XBADKEYS,%arg_y_l)
     
    24032390
    24042391_spentry(stack_cons_rest_arg)
    2405         __(movzwl %nargs,%nargs_l)
    2406         __(movl %nargs_l,%imm1_l)
     2392        __(movl %nargs,%imm1_l)
    24072393        __(subl %imm0_l,%imm1_l)
    24082394        __(movl $nil_value,%arg_z_l)
     
    24512437/*   if all args fit in registers.   */
    24522438_spentry(spreadargz)
    2453         __(testw %nargs,%nargs)
     2439        __(testl %nargs,%nargs)
    24542440        __(jne 0f)
    24552441        __(push $reserved_frame_marker)
     
    24692455        __(push %arg_x)
    24702456        __(jne 1b)
    2471 2:      __(addw %imm0_w,%nargs)
     24572:      __(addw %imm0_w,%nargs_w)
    24722458        __(jne 4f)
    247324593:      __(addq $2*node_size,%rsp)
    24742460        __(jmp *%ra0)
    2475 4:      __(cmpw $1*node_size,%nargs)
     24614:      __(cmpl $1*node_size,%nargs)
    24762462        __(pop %arg_z)
    24772463        __(je 3b)
    2478         __(cmpw $2*node_size,%nargs)
     2464        __(cmpl $2*node_size,%nargs)
    24792465        __(pop %arg_y)
    24802466        __(je 3b)
    2481         __(cmpw $3*node_size,%nargs)
     2467        __(cmpl $3*node_size,%nargs)
    24822468        __(pop %arg_x)
    24832469        __(je 3b)
     
    25042490/* relative to it and restore %rbp/%ra0   */
    25052491_spentry(tfuncallgen)
    2506         __(cmpw $nargregs*node_size,%nargs)
     2492        __(cmpl $nargregs*node_size,%nargs)
    25072493        __(jbe 9f)
    2508         __(movzwl %nargs,%nargs_l)
    25092494        __(lea -nargregs*node_size(%rsp,%nargs_q),%imm0)
    25102495        __(xorl %imm1_l,%imm1_l)
     
    25302515/* Some args were pushed; move them down in the frame   */
    25312516_spentry(tfuncallslide)
    2532         __(movzwl %nargs,%nargs_l)
    25332517        __(lea -nargregs*node_size(%rsp,%nargs_q),%imm0)
    25342518        __(xorl %imm1_l,%imm1_l)
     
    25552539
    25562540_spentry(tcallsymgen)
    2557         __(cmpw $nargregs*node_size,%nargs)
     2541        __(cmpl $nargregs*node_size,%nargs)
    25582542        __(jbe 9f)
    2559         __(movzwl %nargs,%nargs_l)
    25602543        __(lea -nargregs*node_size(%rsp,%nargs_q),%imm0)
    25612544        __(xorl %imm1_l,%imm1_l)
     
    25802563
    25812564_spentry(tcallsymslide)
    2582         __(movzwl %nargs,%nargs_l)
    25832565        __(lea -nargregs*node_size(%rsp,%nargs_q),%imm0)
    25842566        __(xorl %imm1_l,%imm1_l)
     
    26042586
    26052587_spentry(tcallnfngen)
    2606         __(cmpw $nargregs*node_size,%nargs)
     2588        __(cmpl $nargregs*node_size,%nargs)
    26072589        __(jbe 9f)
    2608         __(movzwl %nargs,%nargs_l)
    26092590        __(lea -nargregs*node_size(%rsp,%nargs_q),%imm0)
    26102591        __(xorl %imm1_l,%imm1_l)
     
    26312612
    26322613_spentry(tcallnfnslide)
    2633         __(movzwl %nargs,%nargs_l)
    26342614        __(lea -nargregs*node_size(%rsp,%nargs_q),%imm0)
    26352615        __(xorl %imm1_l,%imm1_l)
     
    27532733/* node header subtag.) Nargs set to count of things vpushed.     */
    27542734_spentry(stkgvector)
    2755         __(movzwl %nargs,%nargs_l)
    27562735        __(lea -fixnum_one(%nargs_q),%imm0)
    27572736        __(lea (%rsp,%imm0),%arg_x)
     
    28402819        __(jne local_label(req_loop))
    28412820local_label(opt):       
    2842         __(movw %nargs,%imm0_w)
     2821        __(movw %nargs_w,%imm0_w)
    28432822        __(shrw $8,%imm0_w)
    28442823        __(je local_label(rest_keys))
    2845         __(btl $initopt_bit,%nargs_l)
     2824        __(btl $initopt_bit,%nargs)
    28462825        __(jc local_label(opt_supp))
    28472826        /* 'simple' &optionals:  no supplied-p, default to nil.   */
     
    28802859        __(jne local_label(default_hard_opt))   
    28812860local_label(rest_keys):
    2882         __(btl $restp_bit,%nargs_l)
     2861        __(btl $restp_bit,%nargs)
    28832862        __(jc local_label(have_rest))
    2884         __(btl $keyp_bit,%nargs_l)
     2863        __(btl $keyp_bit,%nargs)
    28852864        __(jc local_label(have_keys))
    28862865        __(compare_reg_to_nil(%arg_reg))
     
    28892868local_label(have_rest):
    28902869        __(pushq %arg_reg)
    2891         __(btl $keyp_bit,%nargs_l)
     2870        __(btl $keyp_bit,%nargs)
    28922871        __(jc local_label(have_keys))
    28932872        __(jmp *%ra0)           
     
    29162895        /* of NILs on the vstack.   */
    29172896       
    2918         __(movl %nargs_l,%imm1_l)
     2897        __(movl %nargs,%imm1_l)
    29192898        __(shrl $16,%imm1_l)
    29202899        __(movzbl %imm1_b,%imm0_l)
     
    29602939        __(jne local_label(match_keys_loop))
    29612940        __(subl $1,%imm0_l)
    2962         __(btsl $seen_aok_bit,%nargs_l)
     2941        __(btsl $seen_aok_bit,%nargs)
    29632942        __(jc local_label(match_keys_loop))
    29642943        /* First time we've seen :allow-other-keys.  Maybe set aok_bit.   */
    29652944        __(compare_reg_to_nil(%save3))
    29662945        __(je local_label(match_keys_loop))
    2967         __(btsl $aok_bit,%nargs_l)
     2946        __(btsl $aok_bit,%nargs)
    29682947        __(jmp local_label(match_keys_loop))
    29692948        /* Got a match.  Worry about :allow-other-keys here, too.   */
     
    29762955        __(cmpq $nrs.kallowotherkeys,%save2)
    29772956        __(jne local_label(match_keys_loop))
    2978         __(btsl $seen_aok_bit,%nargs_l)
     2957        __(btsl $seen_aok_bit,%nargs)
    29792958        __(jnc local_label(match_keys_loop))
    29802959        __(compare_reg_to_nil(%save3))
    29812960        __(je local_label(match_keys_loop))
    2982         __(btsl $aok_bit,%nargs_l)
     2961        __(btsl $aok_bit,%nargs)
    29832962        __(jmp local_label(match_keys_loop))
    29842963local_label(matched_keys):             
     
    29892968        __(testl %imm0_l,%imm0_l)
    29902969        __(je local_label(keys_ok))
    2991         __(btl $aok_bit,%nargs_l)
     2970        __(btl $aok_bit,%nargs)
    29922971        __(jnc local_label(badkeys))
    29932972local_label(keys_ok):   
     
    30643043/* the difference between the current RSP and the target.   */
    30653044_spentry(mvslide)
    3066         __(movzwl %nargs,%nargs_l)
    3067         __(movl %nargs_l,%imm1_l)
     3045        __(movl %nargs,%imm1_l)
    30683046        __(lea (%rsp,%nargs_q),%temp0)
    30693047        __(testq %imm1,%imm1)
     
    30853063/* common exit: nargs = values in this set, imm1 = ptr to tsp before call to save_values   */
    30863064local_label(save_values_to_tsp):
    3087         __(movzwl %nargs,%nargs_l)
    30883065        __(movq %rcontext:tcr.save_tsp,%arg_x)
    30893066        __(dnode_align(%nargs_q,tsp_frame.fixed_overhead+(2*node_size),%imm0)) /* count, link   */
     
    31153092/* values. This makes recover_values harder.   */
    31163093_spentry(add_values)
    3117         __(testw %nargs,%nargs)
     3094        __(testl %nargs,%nargs)
    31183095        __(movq %rcontext:tcr.save_tsp,%imm1)
    31193096        __(movq (%imm1),%imm1)
     
    31413118        __(jne local_label(walkloop))
    31423119
    3143         __(movzwl %nargs,%nargs_l)
    31443120        /* the final segment pointer is now in %arg_y  */
    31453121        /* walk backwards, pushing values on the stack and incrementing %nargs   */
     
    31723148        /* segment pointers Can tell the end because that previous  */
    31733149        /* segment pointer is the prev tsp pointer   */
    3174         __(xorl %nargs_l,%nargs_l)
     3150        __(xorl %nargs,%nargs)
    31753151        __(movq %rcontext:tcr.save_tsp,%temp1)
    31763152        __(movq %temp1,%arg_x)  /* current segment   */
     
    31863162        __(jne local_label(walkloop_mvcall))
    31873163
    3188         __(cmpw $nargregs*node_size,%nargs)
     3164        __(cmpl $nargregs*node_size,%nargs)
    31893165        __(jbe local_label(pushloop_mvcall))
    31903166        __(push $reserved_frame_marker)
     
    44154391        new_local_labels()
    44164392        __(movq (%arg_z),%imm0)
    4417         __(testw %nargs,%nargs) /* anything pushed by caller ? */
     4393        __(testl %nargs,%nargs) /* anything pushed by caller ? */
    44184394        __(leaq node_size(%arg_z,%imm0),%imm1)
    44194395        __(jne 0f)              /* yes, caller has already created frame. */
     
    44224398        __(push $reserved_frame_marker)
    44234399        __(push $reserved_frame_marker)
    4424 0:      __(addw %imm0_w,%nargs)
     44000:      __(addw %imm0_w,%nargs_w)
    44254401        __(cmpw $(nargregs*node_size),%imm0_w)
    44264402        __(jae 9f)
     
    44314407        /* lexpr count was 0; vpop the args that */
    44324408        /* were pushed by the caller */
    4433         __(testw %nargs,%nargs)
     4409        __(testl %nargs,%nargs)
    44344410        __(je local_label(all_args_popped))
    44354411        __(pop %arg_z)
    44364412local_label(maybe_pop_yx):             
    4437         __(cmpw $(1*node_size),%nargs)
     4413        __(cmpl $(1*node_size),%nargs)
    44384414        __(je local_label(all_args_popped))
    44394415        __(pop %arg_y)
    4440         __(cmp $(2*node_size),%nargs)
     4416        __(cmpl $(2*node_size),%nargs)
    44414417        __(je local_label(all_args_popped))
    44424418local_label(pop_arg_x):         
     
    44464422        /* by the caller, discard the reserved frame that the caller */
    44474423        /* pushed.         */
    4448         __(cmpw %imm0_w,%nargs)
     4424        __(cmpw %imm0_w,%nargs_w)
    44494425        __(je local_label(go))
    4450         __(cmpw $(nargregs*node_size),%nargs)
     4426        __(cmpl $(nargregs*node_size),%nargs)
    44514427        __(ja local_label(go))
    44524428        __(addq $(2*node_size),%rsp)
     
    44684444        /* lexpr count is two: set arg_y, arg_z from the */
    44694445        /* lexpr, maybe vpop arg_x */
    4470 2:      __(cmpw $(2*node_size),%nargs)
     44462:      __(cmpl $(2*node_size),%nargs)
    44714447        __(movq -node_size*1(%imm1),%arg_y)
    44724448        __(movq -node_size*2(%imm1),%arg_z)
     
    47634739        __(subq $fulltag_function-fulltag_misc,%fn)
    47644740        __(vector_length(%fn,%imm0))
    4765         __(movzwl %nargs,%nargs_l)
    47664741       
    47674742        __(subq $6<<fixnumshift,%imm0)  /* imm0 = inherited arg count   */
    47684743        __(lea (%nargs_q,%imm0),%imm1)
    4769         __(cmpw $nargregs<<fixnumshift,%imm1_w)
     4744        __(cmpl $nargregs<<fixnumshift,%imm1_l)
    47704745        __(jna,pt local_label(regs_only))
    47714746        __(pop %ra0)
    4772         __(cmpw $nargregs<<fixnumshift,%nargs)
     4747        __(cmpl $nargregs<<fixnumshift,%nargs)
    47734748        __(jna,pt local_label(no_insert))
    47744749       
     
    48034778        __(movq misc_data_offset(%fn,%imm1),%arg_z)
    48044779        __(addq $node_size,%imm1)
    4805         __(addw $fixnum_one,%nargs)
     4780        __(addl $fixnum_one,%nargs)
    48064781        __(subq $node_size,%arg_x)
    48074782        __(movq %arg_z,(%arg_x))
     
    48304805        /* nargregs or fewer args were already vpushed.   */
    48314806        /* if exactly nargregs, vpush remaining inherited vars.   */
    4832         __(cmpw $nargregs<<fixnumshift,%nargs)
     4807        __(cmpl $nargregs<<fixnumshift,%nargs)
    48334808        __(movl $5<<fixnumshift,%imm1_l) /* skip code, new fn   */
    48344809        __(leaq 5<<fixnumshift(%imm0),%temp1)
     
    48374812        __(push misc_data_offset(%fn,%imm1))
    48384813        __(addq $node_size,%imm1)
    4839         __(addw $fixnumone,%nargs)
     4814        __(addl $fixnumone,%nargs)
    48404815        __(subq $node_size,%imm0)
    48414816        __(jnz local_label(vpush_remaining))
     
    48444819        /* if nargs was > 1 (and we know that it was < 3), it must have   */
    48454820        /* been 2.  Set arg_x, then vpush the remaining args.   */
    4846         __(cmpw $fixnumone,%nargs)
     4821        __(cmpl $fixnumone,%nargs)
    48474822        __(jle local_label(set_y_z))
    48484823local_label(set_arg_x):
    48494824        __(subq $node_size,%temp1)
    48504825        __(movq misc_data_offset(%fn,%temp1),%arg_x)
    4851         __(addw $fixnumone,%nargs)
     4826        __(addl $fixnumone,%nargs)
    48524827        __(subq $fixnumone,%imm0)
    48534828        __(jne local_label(vpush_remaining))
     
    48604835        __(subq $node_size,%temp1)
    48614836        __(movq misc_data_offset(%fn,%temp1),%arg_y)
    4862         __(addw $fixnumone,%nargs)
     4837        __(addl $fixnumone,%nargs)
    48634838        __(subq $fixnum_one,%imm0)
    48644839        __(jnz local_label(set_arg_x))
     
    48674842        __(subq $node_size,%temp1)
    48684843        __(movq misc_data_offset(%fn,%temp1),%arg_z)
    4869         __(addw $fixnumone,%nargs)
     4844        __(addl $fixnumone,%nargs)
    48704845        __(subq $fixnum_one,%imm0)
    48714846        __(jne local_label(set_arg_y))
     
    48764851local_label(regs_only):
    48774852        __(leaq 5<<fixnumshift(%imm0),%temp1)
    4878         __(testw %nargs,%nargs)
     4853        __(testl %nargs,%nargs)
    48794854        __(jne local_label(some_args))
    48804855        __(cmpw $node_size,%imm0)
     
    48864861        __(movq misc_data_offset-(node_size*3)(%fn,%temp1),%arg_x)
    48874862local_label(rgo):
    4888         __(addw %imm0_w,%nargs)
     4863        __(addw %imm0_w,%nargs_w)
    48894864        __(jmp *misc_data_offset+(4*node_size)(%fn))
    48904865local_label(some_args):         
    4891         __(cmpw $2*node_size,%nargs)
     4866        __(cmpl $2*node_size,%nargs)
    48924867        __(jz local_label(rtwo))
    48934868        /* One arg was passed, could be one or two inherited args */
Note: See TracChangeset for help on using the changeset viewer.