Let OFFSET-CONFLICTS-IN-SB check multiple offsets at a time
[sbcl.git] / src / compiler / generic / target-core.lisp
index d70ede9..92197e2 100644 (file)
@@ -22,7 +22,7 @@
   #!+gencgc
   (without-gcing
     (%make-lisp-obj
-     (alien-funcall (extern-alien "alloc_code_object" (function unsigned-long unsigned unsigned))
+     (alien-funcall (extern-alien "alloc_code_object" (function unsigned unsigned unsigned))
                     boxed unboxed)))
   #!-gencgc
   (%primitive allocate-code-object boxed unboxed))
@@ -41,7 +41,7 @@
       (setf (%simple-fun-name res) (entry-info-name entry-info))
       (setf (%simple-fun-arglist res) (entry-info-arguments entry-info))
       (setf (%simple-fun-type res) (entry-info-type entry-info))
-      (setf (%simple-fun-xrefs res) (entry-info-xref entry-info))
+      (setf (%simple-fun-info res) (entry-info-info entry-info))
 
       (note-fun entry-info res object))))
 
            (fill-ptr (code-instructions code-obj)))
       (declare (type index box-num total-length))
 
-      (sb!assem:on-segment-contents-vectorly
-       segment
-       (lambda (v)
-         (declare (type (simple-array sb!assem:assembly-unit 1) v))
-         (copy-byte-vector-to-system-area v fill-ptr)
-         (setf fill-ptr (sap+ fill-ptr (length v)))))
+      (let ((v (sb!assem:segment-contents-as-vector segment)))
+        (declare (type (simple-array sb!assem:assembly-unit 1) v))
+        (copy-byte-vector-to-system-area v fill-ptr)
+        (setf fill-ptr (sap+ fill-ptr (length v))))
 
       (do-core-fixups code-obj fixup-notes)
 
                 (reference-core-fun code-obj index (cdr const) object))
                (:fdefinition
                 (setf (code-header-ref code-obj index)
-                      (fdefinition-object (cdr const) t))))))))))
+                      (fdefinition-object (cdr const) t)))
+               (:known-fun
+                (setf (code-header-ref code-obj index)
+                      (%coerce-name-to-fun (cdr const)))))))))))
   (values))