(debug-info () :type list))
;;; Note the existence of FUNCTION.
-(defun note-function (info function object)
+(defun note-fun (info function object)
(declare (type function function)
(type core-object object))
(let ((patch-table (core-object-patch-table object)))
(values))
;;; Do "load-time" fixups on the code vector.
-(defun do-core-fixups (code fixups)
- (declare (list fixups))
- (dolist (info fixups)
- (let* ((kind (first info))
- (fixup (second info))
+(defun do-core-fixups (code fixup-notes)
+ (declare (list fixup-notes))
+ (dolist (note fixup-notes)
+ (let* ((kind (fixup-note-kind note))
+ (fixup (fixup-note-fixup note))
+ (position (fixup-note-position note))
(name (fixup-name fixup))
(flavor (fixup-flavor fixup))
- (offset (third info))
(value (ecase flavor
(:assembly-routine
(aver (symbolp name))
(error "undefined assembler routine: ~S" name)))
(:foreign
(aver (stringp name))
- (or (foreign-symbol-address-as-integer name)
- (error "unknown foreign symbol: ~S")))
+ ;; FOREIGN-SYMBOL-ADDRESS-AS-INTEGER signals an error
+ ;; if the symbol isn't found.
+ (foreign-symbol-address-as-integer name))
+ #!+linkage-table
+ (:foreign-dataref
+ (aver (stringp name))
+ (foreign-symbol-address-as-integer name t))
#!+x86
(:code-object
(aver (null name))
(values (get-lisp-obj-address code) t)))))
- (sb!vm:fixup-code-object code offset value kind))))
+ (sb!vm:fixup-code-object code position value kind))))
-;;; Stick a reference to the function Fun in Code-Object at index I. If the
-;;; function hasn't been compiled yet, make a note in the Patch-Table.
-(defun reference-core-function (code-obj i fun object)
+;;; Stick a reference to the function FUN in CODE-OBJECT at index I. If the
+;;; function hasn't been compiled yet, make a note in the patch table.
+(defun reference-core-fun (code-obj i fun object)
(declare (type core-object object) (type functional fun)
(type index i))
(let* ((info (leaf-info fun))