X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fgeneric%2Ftarget-core.lisp;h=025e376bb6be5cd05f687309065887c545c9cc89;hb=2d3cb6dba6461e98744eca2a1df4f770cea468ca;hp=b09a66f28705f1f18463736f859858c0cefa49ba;hpb=dec94b039e8ec90baf21463df839a6181de606f6;p=sbcl.git diff --git a/src/compiler/generic/target-core.lisp b/src/compiler/generic/target-core.lisp index b09a66f..025e376 100644 --- a/src/compiler/generic/target-core.lisp +++ b/src/compiler/generic/target-core.lisp @@ -17,24 +17,24 @@ (in-package "SB!C") ;;; Make a function entry, filling in slots from the ENTRY-INFO. -(defun make-function-entry (entry code-obj object) - (declare (type entry-info entry) (type core-object object)) - (let ((offset (label-position (entry-info-offset entry)))) +(defun make-fun-entry (entry-info code-obj object) + (declare (type entry-info entry-info) (type core-object object)) + (let ((offset (label-position (entry-info-offset entry-info)))) (declare (type index offset)) (unless (zerop (logand offset sb!vm:lowtag-mask)) (error "Unaligned function object, offset = #X~X." offset)) - (let ((res (%primitive compute-function code-obj offset))) - (setf (%function-self res) res) - (setf (%function-next res) (%code-entry-points code-obj)) + (let ((res (%primitive compute-fun code-obj offset))) + (setf (%simple-fun-self res) res) + (setf (%simple-fun-next res) (%code-entry-points code-obj)) (setf (%code-entry-points code-obj) res) - (setf (%function-name res) (entry-info-name entry)) - (setf (%function-arglist res) (entry-info-arguments entry)) - (setf (%function-type res) (entry-info-type entry)) + (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)) - (note-function entry res object)))) + (note-fun entry-info res object)))) -;;; Dump a component to core. We pass in the assembler fixups, code vector -;;; and node info. +;;; Dump a component to core. We pass in the assembler fixups, code +;;; vector and node info. (defun make-core-component (component segment length trace-table fixups object) (declare (type component component) (type sb!assem:segment segment) @@ -47,7 +47,8 @@ (trace-table (pack-trace-table trace-table)) (trace-table-len (length trace-table)) (trace-table-bits (* trace-table-len tt-bits-per-entry)) - (total-length (+ length (ceiling trace-table-bits sb!vm:byte-bits))) + (total-length (+ length + (ceiling trace-table-bits sb!vm:n-byte-bits))) (box-num (- (length constants) sb!vm:code-trace-table-offset-slot)) (code-obj ;; FIXME: In CMU CL the X86 behavior here depended on @@ -73,7 +74,7 @@ (do-core-fixups code-obj fixups) (dolist (entry (ir2-component-entries 2comp)) - (make-function-entry entry code-obj object)) + (make-fun-entry entry code-obj object)) (sb!vm:sanctify-for-execution code-obj) @@ -81,9 +82,10 @@ (push info (core-object-debug-info object)) (setf (%code-debug-info code-obj) info)) - (setf (code-header-ref code-obj sb!vm:code-trace-table-offset-slot) length) + (setf (code-header-ref code-obj sb!vm:code-trace-table-offset-slot) + length) (copy-to-system-area trace-table - (* sb!vm:vector-data-offset sb!vm:word-bits) + (* sb!vm:vector-data-offset sb!vm:n-word-bits) fill-ptr 0 trace-table-bits) @@ -99,8 +101,7 @@ (list (ecase (car const) (:entry - (reference-core-function code-obj index - (cdr const) object)) + (reference-core-fun code-obj index (cdr const) object)) (:fdefinition (setf (code-header-ref code-obj index) (fdefinition-object (cdr const) t))))))))))