;;;; the byte code interpreter
+;;; FIXME: should really be in SB!BYTECODE
(in-package "SB!C")
;;;; This software is part of the SBCL system. See the README file for
(defun two-arg-string< (x y) (string= x y))
(defun two-arg-string> (x y) (string= x y))
\f
-;;;; miscellaneous primitive stubs
-
-(macrolet ((def-frob (name &optional (args '(x)))
- `(defun ,name ,args (,name ,@args))))
- (def-frob %code-code-size)
- (def-frob %code-debug-info)
- (def-frob %code-entry-points)
- (def-frob %funcallable-instance-function)
- (def-frob %funcallable-instance-layout)
- (def-frob %funcallable-instance-lexenv)
- (def-frob %function-next)
- (def-frob %function-self)
- (def-frob %set-funcallable-instance-function (fin new-val)))
-\f
;;;; funny functions
;;; (used both by the byte interpreter and by the IR1 interpreter)
(if (typep type 'structure-class)
(let ((info (layout-info (class-layout type))))
(if (and info (eq (dd-type info) 'structure))
- (let ((pred (dd-predicate info)))
- (if (and pred (fboundp pred))
- (fdefinition pred)
+ (let ((predicate-name (dd-predicate-name info)))
+ (if (and predicate-name (fboundp predicate-name))
+ (fdefinition predicate-name)
type))
type))
type))))