Skip to content
Snippets Groups Projects
Commit 81ab2a45 authored by ram's avatar ram
Browse files

Added a funcallable-instance object for better PCL support.

parent 4accee7b
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Lisp, please contact Scott Fahlman (Scott.Fahlman@CS.CMU.EDU) ;;; Lisp, please contact Scott Fahlman (Scott.Fahlman@CS.CMU.EDU)
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.3 1990/11/16 04:40:43 wlott Exp $ ;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.4 1990/11/21 16:21:48 ram Exp $
;;; ;;;
;;; This file contains the machine independent aspects of the object ;;; This file contains the machine independent aspects of the object
;;; representation. ;;; representation.
...@@ -34,7 +34,8 @@ ...@@ -34,7 +34,8 @@
closure-function-header-type return-pc-header-type closure-function-header-type return-pc-header-type
value-cell-header-type symbol-header-type base-character-type value-cell-header-type symbol-header-type base-character-type
sap-type unbound-marker-type weak-pointer-type sap-type unbound-marker-type weak-pointer-type
structure-header-type vector-normal-subtype structure-header-type funcallable-instance-header-type
vector-normal-subtype
vector-valid-hashing-subtype vector-must-rehash-subtype vector-valid-hashing-subtype vector-must-rehash-subtype
primitive-object primitive-object-p primitive-object primitive-object-p
primitive-object-name primitive-object-header primitive-object-name primitive-object-header
...@@ -44,6 +45,10 @@ ...@@ -44,6 +45,10 @@
slot-offset slot-length slot-options *primitive-objects* slot-offset slot-length slot-options *primitive-objects*
define-for-each-primitive-object)) define-for-each-primitive-object))
(in-package "KERNEL")
(export '(%set-funcallable-instance-function %make-funcallable-instance))
(in-package "VM")
;;;; Type based constants: ;;;; Type based constants:
...@@ -132,7 +137,8 @@ ...@@ -132,7 +137,8 @@
sap sap
unbound-marker unbound-marker
weak-pointer weak-pointer
structure-header) structure-header
funcallable-instance-header)
;;; The different vector subtypes. ;;; The different vector subtypes.
...@@ -369,6 +375,15 @@ ...@@ -369,6 +375,15 @@
:ref-trans %closure-function) :ref-trans %closure-function)
(info :rest-p t :set-vop c::closure-init :ref-vop c::closure-ref)) (info :rest-p t :set-vop c::closure-init :ref-vop c::closure-ref))
(define-primitive-object (funcallable-instance
:lowtag function-pointer-type
:header funcallable-instance-header-type
:alloc-trans %make-funcallable-instance)
(function :init :arg
:set-vop set-funcallable-instance-function
:set-trans %set-funcallable-instance-function)
(info :rest-p t))
(define-primitive-object (value-cell :lowtag other-pointer-type (define-primitive-object (value-cell :lowtag other-pointer-type
:header value-cell-header-type :header value-cell-header-type
:alloc-vop c::make-value-cell) :alloc-vop c::make-value-cell)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment