Index: /branches/x8664-call/ccl/compiler/X86/X8664/x8664-arch.lisp
===================================================================
--- /branches/x8664-call/ccl/compiler/X86/X8664/x8664-arch.lisp	(revision 6303)
+++ /branches/x8664-call/ccl/compiler/X86/X8664/x8664-arch.lisp	(revision 6304)
@@ -1283,5 +1283,15 @@
     `(ccl::%stack-block ((,buf ,size :clear t))
       ,@body)))
-  
+
+;;; an (lea (@ disp (% rip)) (% fn)) instruction following a tagged
+;;; return address helps the runtime map from the return address to
+;;; the containing function.  That instuction is 7 bytes long: 3
+;;; bytes of code followed by 4 bytes of displacement.  The constant
+;;; part of that - assuming that FN is R13 - looks like #x4c #x8d #x2d.
+
+(defconstant recover-fn-from-rip-length 7)
+(defconstant recover-fn-from-rip-disp-offset 3)
+(defconstant recover-fn-from-rip-word0 #x8d4c)
+(defconstant recover-fn-from-rip-byte2 #x2d)
 
 
