diff --git a/compiler/generic/utils.lisp b/compiler/generic/utils.lisp
index 072308e43606283af2e5df6a5726c797d45695da..83974780567ef503d7ca574fcde0e5dc9d988b6f 100644
--- a/compiler/generic/utils.lisp
+++ b/compiler/generic/utils.lisp
@@ -7,11 +7,11 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/utils.lisp,v 1.2 1991/02/20 15:17:25 ram Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/utils.lisp,v 1.3 1992/03/12 15:25:02 wlott Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/utils.lisp,v 1.2 1991/02/20 15:17:25 ram Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/utils.lisp,v 1.3 1992/03/12 15:25:02 wlott Exp $
 ;;;
 ;;; Utility functions needed by the back end to generate code.
 ;;;
@@ -20,7 +20,8 @@
 
 (in-package "VM")
 
-(export '(fixnum static-symbol-p static-symbol-offset offset-static-symbol))
+(export '(fixnum static-symbol-p static-symbol-offset offset-static-symbol
+		 static-function-offset))
 
 
 
@@ -59,3 +60,15 @@
       (error "Byte offset, ~D, is not correct." offset))
     (elt static-symbols n)))
 
+(defun static-function-offset (name)
+  "Return the (byte) offset from NIL to the start of the fdefn object
+   for the static function NAME."
+  (let ((static-syms (length static-symbols))
+	(static-function-index (position name static-functions)))
+    (unless static-function-index
+      (error "~S isn't a static function." name))
+    (+ (* static-syms (pad-data-block symbol-size))
+       (pad-data-block (1- symbol-size))
+       (- list-pointer-type)
+       (* static-function-index (pad-data-block fdefn-size))
+       (* fdefn-raw-addr-slot word-bytes))))