disassemble: Better annotation of static functions and safepoints.
authorStas Boukarev <stassats@gmail.com>
Sun, 2 Jun 2013 16:21:38 +0000 (20:21 +0400)
committerStas Boukarev <stassats@gmail.com>
Sun, 2 Jun 2013 16:21:38 +0000 (20:21 +0400)
Static functions, like LENGTH and some others, weren't annotated in
the disassemble output.
Also add annotations for safepoints.

NEWS
src/compiler/target-disassem.lisp

diff --git a/NEWS b/NEWS
index ba18c82..4c4f372 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,8 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
+changes relative to sbcl-1.1.8:
+  * enchancement: disassemble now annotates some previously missing static
+    function, like LENGTH.
+  
 changes in sbcl-1.1.8 relative to sbcl-1.1.7:
   * notice: The implementation of MAP-ALLOCATED-OBJECTS (the heart of
     ROOM, plus a few SB-INTROSPECT functions) has been completely
index 623b27a..4723c64 100644 (file)
           (invert-address-hash sb!fasl:*assembler-routines*))
     (setf *assembler-routines-by-addr*
           (invert-address-hash sb!sys:*static-foreign-symbols*
-                               *assembler-routines-by-addr*)))
+                               *assembler-routines-by-addr*))
+    (loop for static in sb!vm:*static-funs*
+          for address = (+ sb!vm::nil-value
+                           (sb!vm::static-fun-offset static))
+          do
+          (setf (gethash address *assembler-routines-by-addr*)
+                static))
+    ;; Not really a routine, but it uses the similar logic for annotations
+    #!+sb-safepoint
+    (setf (gethash sb!vm::gc-safepoint-page-addr *assembler-routines-by-addr*)
+          "safepoint"))
   (gethash address *assembler-routines-by-addr*))
 \f
 ;;;; some handy function for machine-dependent code to use...