(:copier nil))
(sap-maker (missing-arg)
:type (function () sb!sys:system-area-pointer))
- (length 0 :type length)
+ (length 0 :type disassem-length)
(virtual-location 0 :type address)
(storage-info nil :type (or null storage-info))
(code nil :type (or null sb!kernel:code-component))
(declare (type compiled-function fun))
(sb!kernel:%simple-fun-next fun))
-(defun fun-address (function)
- (declare (type compiled-function function))
- (- (sb!kernel:get-lisp-obj-address function) sb!vm:fun-pointer-lowtag))
+(defun fun-address (fun)
+ (declare (type compiled-function fun))
+ (ecase (sb!kernel:widetag-of fun)
+ (#.sb!vm:simple-fun-header-widetag
+ (- (sb!kernel:get-lisp-obj-address fun) sb!vm:fun-pointer-lowtag))
+ (#.sb!vm:closure-header-widetag
+ (fun-address (sb!kernel:%closure-fun fun)))
+ (#.sb!vm:funcallable-instance-header-widetag
+ (fun-address (sb!kernel:funcallable-instance-fun fun)))))
;;; the offset of FUNCTION from the start of its code-component's
;;; instruction area
(1- lra-size))))
sb!vm:return-pc-header-widetag))
(unless (null stream)
- (princ '.lra stream))
- (incf (dstate-next-offs dstate) lra-size))
+ (note "possible LRA header" dstate)))
nil)
;;; Print the fun-header (entry-point) pseudo-instruction at the
debug-fun source-form-cache
hooks)
(declare (type (function () sb!sys:system-area-pointer) sap-maker)
- (type length length)
+ (type disassem-length length)
(type (or null address) virtual-location)
(type (or null sb!di:debug-fun) debug-fun)
(type (or null source-form-cache) source-form-cache))
(length (code-inst-area-length code)))
(declare (type sb!kernel:code-component code)
(type offset start-offset)
- (type length length))
+ (type disassem-length length))
(let ((segments nil))
(when code
(let ((fun-map (code-fun-map code))
code-component
(use-labels t))
(declare (type (or address sb!sys:system-area-pointer) address)
- (type length length)
+ (type disassem-length length)
(type stream stream)
(type (or null sb!kernel:code-component) code-component)
(type (member t nil) use-labels))
assoc-with
(sb!di:debug-var-symbol
(aref (dstate-debug-vars dstate)
- storage-location))
- stream))
+ storage-location))))
dstate)
t)))
\f