0.8.16.6:
[sbcl.git] / src / compiler / target-disassem.lisp
index c9fdf0f..b4572ef 100644 (file)
                    (: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))
                                         (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))
                                  (file-position f char-offset))
                                 (t
                                  (warn "Source file ~S has been modified; ~@
-                                        using form offset instead of ~
+                                         using form offset instead of ~
                                          file index."
                                        name)
                                  (let ((*read-suppress* t))
           nil)
          ((> form-number (length mapping-table))
           (warn "bogus form-number in form!  The source file has probably ~@
-                 been changed too much to cope with.")
+                  been changed too much to cope with.")
           (when cache
             ;; Disable future warnings.
             (setf (sfcache-toplevel-form cache) nil))
                          (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))
     (setf *assembler-routines-by-addr*
          (invert-address-hash sb!fasl:*assembler-routines*))
     (setf *assembler-routines-by-addr*
-         (invert-address-hash sb!fasl:*static-foreign-symbols*
+         (invert-address-hash sb!sys:*static-foreign-symbols*
                               *assembler-routines-by-addr*)))
   (gethash address *assembler-routines-by-addr*))
 \f
   (declare (type disassem-state dstate))
   (unless (typep address 'address)
     (return-from maybe-note-assembler-routine nil))
-  (let ((name (find-assembler-routine address)))
+  (let ((name (or
+              #!+linkage-table
+              (sb!sys:foreign-symbol-in-address (sb!sys:int-sap address))
+              (find-assembler-routine address))))
     (unless (null name)
       (note (lambda (stream)
              (if note-address-p
                      assoc-with
                      (sb!di:debug-var-symbol
                       (aref (dstate-debug-vars dstate)
-                            storage-location))
-                     stream))
+                            storage-location))))
            dstate)
       t)))
 \f