replace DEFINE-MORE-FUN with compiler smarts
[sbcl.git] / src / compiler / generic / primtype.lisp
index 561114c..4fee64c 100644 (file)
@@ -16,7 +16,7 @@
 
 (/show0 "primtype.lisp 17")
 
-(!def-primitive-type t (descriptor-reg #!+(or x86 x86-64) any-reg))
+(!def-primitive-type t (descriptor-reg))
 (/show0 "primtype.lisp 20")
 (setf *backend-t-primitive-type* (primitive-type-or-lose t))
 
@@ -64,7 +64,7 @@
     #!-#.(cl:if (cl:= sb!vm::n-machine-word-bits 64) '(and) '(or))
     (:or signed-byte-32 fixnum unsigned-byte-31 positive-fixnum))
   (!def-primitive-type-alias untagged-num
-    (:or . #.(print (union (cdr '#1#) (cdr '#2#))))))
+    (:or . #.(sort (copy-list (union (cdr '#1#) (cdr '#2#))) #'string<))))
 
 ;;; other primitive immediate types
 (/show0 "primtype.lisp 68")
 ;;; !DEF-VM-SUPPORT-ROUTINE and DEFUN-CACHED.
 (/show0 "primtype.lisp 188")
 (!def-vm-support-routine primitive-type (type)
+  (sb!kernel::maybe-reparse-specifier! type)
   (primitive-type-aux type))
 (/show0 "primtype.lisp 191")
 (defun-cached (primitive-type-aux
                               (setq res new-ptype)
                               (return (any)))))
                       (setf res ptype))))
-              type))
-           res))
+              type)
+             res)))
         (named-type
          (ecase (named-type-name type)
            ((t *) (values *backend-t-primitive-type* t))