Simplify (and robustify) regular PACKing
[sbcl.git] / src / compiler / ppc / subprim.lisp
index 9e1826d..1f3c090 100644 (file)
@@ -1,6 +1,6 @@
 ;;;
 ;;; Written by William Lott.
-;;; 
+;;;
 (in-package "SB!VM")
 
 
   (:temporary (:scs (descriptor-reg) :from (:argument 0)) ptr)
   (:temporary (:scs (non-descriptor-reg)) temp)
   (:temporary (:scs (any-reg) :type fixnum :to (:result 0) :target result)
-             count)
+              count)
   (:results (result :scs (any-reg descriptor-reg)))
   (:policy :fast-safe)
   (:vop-var vop)
   (:save-p :compute-only)
   (:generator 50
     (let ((done (gen-label))
-         (loop (gen-label))
-         (not-list (generate-cerror-code vop object-not-list-error object)))
+          (loop (gen-label))
+          (not-list (gen-label)))
       (move ptr object)
       (move count zero-tn)
 
       (inst cmpw ptr null-tn)
       (inst beq done)
 
-      (test-type ptr temp not-list t sb!vm:list-pointer-lowtag)
+      (test-type ptr not-list t (list-pointer-lowtag) :temp temp)
 
-      (loadw ptr ptr sb!vm:cons-cdr-slot sb!vm:list-pointer-lowtag)
+      (loadw ptr ptr cons-cdr-slot list-pointer-lowtag)
       (inst addi count count (fixnumize 1))
-      (test-type ptr temp loop nil sb!vm:list-pointer-lowtag)
+      (test-type ptr loop nil (list-pointer-lowtag) :temp temp)
 
-      (cerror-call vop done object-not-list-error ptr)
+      (emit-label not-list)
+      (error-call vop 'object-not-list-error ptr)
 
       (emit-label done)
       (move result count))))
-       
+
 
 (define-static-fun length (object) :translate length)