Let OFFSET-CONFLICTS-IN-SB check multiple offsets at a time
[sbcl.git] / src / compiler / fun-info-funs.lisp
index 6c7c63d..d399be7 100644 (file)
@@ -9,28 +9,40 @@
 (defun %def-reffer (name offset lowtag)
   (let ((fun-info (fun-info-or-lose name)))
     (setf (fun-info-ir2-convert fun-info)
-         (lambda (node block)
-           (ir2-convert-reffer node block name offset lowtag))))
+          (lambda (node block)
+            (ir2-convert-reffer node block name offset lowtag))))
   name)
 
 (defun %def-setter (name offset lowtag)
   (let ((fun-info (fun-info-or-lose name)))
     (setf (fun-info-ir2-convert fun-info)
-         (if (listp name)
-             (lambda (node block)
-               (ir2-convert-setfer node block name offset lowtag))
-             (lambda (node block)
-               (ir2-convert-setter node block name offset lowtag)))))
+          (if (listp name)
+              (lambda (node block)
+                (ir2-convert-setfer node block name offset lowtag))
+              (lambda (node block)
+                (ir2-convert-setter node block name offset lowtag)))))
   name)
 
-(defun %def-alloc (name words variable-length-p header lowtag inits)
+(defun %def-alloc (name words allocation-style header lowtag inits)
   (let ((info (fun-info-or-lose name)))
     (setf (fun-info-ir2-convert info)
-         (if variable-length-p
-             (lambda (node block)
-               (ir2-convert-variable-allocation node block name words header
-                                                lowtag inits))
-             (lambda (node block)
-               (ir2-convert-fixed-allocation node block name words header
-                                             lowtag inits)))))
+          (ecase allocation-style
+            (:var-alloc
+             (lambda (node block)
+                (ir2-convert-variable-allocation node block name words header
+                                                 lowtag inits)))
+            (:fixed-alloc
+             (lambda (node block)
+               (ir2-convert-fixed-allocation node block name words header
+                                             lowtag inits)))
+            (:structure-alloc
+             (lambda (node block)
+               (ir2-convert-structure-allocation node block name words header
+                                                 lowtag inits))))))
   name)
+
+(defun %def-casser (name offset lowtag)
+  (let ((fun-info (fun-info-or-lose name)))
+    (setf (fun-info-ir2-convert fun-info)
+          (lambda (node block)
+            (ir2-convert-casser node block name offset lowtag)))))