X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fsubprim.lisp;h=44fa889cef69fc13dce4b0656a240326671e6338;hb=b83353d9f998e5c0e34604b5593df70c66d2c510;hp=da3d809ff5bbe2439caa08f33e83ac15b6b8ed39;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/compiler/x86/subprim.lisp b/src/compiler/x86/subprim.lisp index da3d809..44fa889 100644 --- a/src/compiler/x86/subprim.lisp +++ b/src/compiler/x86/subprim.lisp @@ -36,7 +36,7 @@ ;; list, because this is a :fast-safe vop. LOOP ;; Get the CDR and boost the count. - (loadw ptr ptr cons-cdr-slot list-pointer-type) + (loadw ptr ptr cons-cdr-slot list-pointer-lowtag) (inst add count (fixnumize 1)) ;; If we hit NIL, then we are done. (inst cmp ptr nil-value) @@ -45,10 +45,10 @@ ;; not, loop back for more. (move eax ptr) (inst and al-tn lowtag-mask) - (inst cmp al-tn list-pointer-type) + (inst cmp al-tn list-pointer-lowtag) (inst jmp :e loop) ;; It's dotted all right. Flame out. - (error-call vop object-not-list-error ptr) + (error-call vop 'object-not-list-error ptr) ;; We be done. DONE)) @@ -72,11 +72,13 @@ (inst jmp :e done) ;; Indirect the next cons cell, and boost the count. LOOP - (loadw ptr ptr cons-cdr-slot list-pointer-type) + (loadw ptr ptr cons-cdr-slot list-pointer-lowtag) (inst add count (fixnumize 1)) ;; If we aren't done, go back for more. (inst cmp ptr nil-value) (inst jmp :ne loop) DONE)) -(define-static-function length (object) :translate length) +(define-static-fun length (object) :translate length) +(define-static-fun %coerce-callable-to-fun (callable) + :translate %coerce-callable-to-fun)