From bc7cd341567dd3b2978c2accb6063356280fb80e Mon Sep 17 00:00:00 2001 From: Stas Boukarev Date: Sun, 2 Jun 2013 20:21:38 +0400 Subject: [PATCH] disassemble: Better annotation of static functions and safepoints. Static functions, like LENGTH and some others, weren't annotated in the disassemble output. Also add annotations for safepoints. --- NEWS | 4 ++++ src/compiler/target-disassem.lisp | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index ba18c82..4c4f372 100644 --- 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 diff --git a/src/compiler/target-disassem.lisp b/src/compiler/target-disassem.lisp index 623b27a..4723c64 100644 --- a/src/compiler/target-disassem.lisp +++ b/src/compiler/target-disassem.lisp @@ -1794,7 +1794,17 @@ (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*)) ;;;; some handy function for machine-dependent code to use... -- 1.7.10.4