Skip to content
Snippets Groups Projects
Commit b2a520c0 authored by wlott's avatar wlott
Browse files

Added a bunch of types to various define-primitive-objects and their slots.

parent 0304b296
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.22 1992/12/15 20:09:44 wlott Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.23 1992/12/16 21:36:27 wlott Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -173,13 +173,16 @@ ...@@ -173,13 +173,16 @@
:alloc-trans bignum::%allocate-bignum) :alloc-trans bignum::%allocate-bignum)
(digits :rest-p t :c-type "long")) (digits :rest-p t :c-type "long"))
(define-primitive-object (ratio :lowtag other-pointer-type (define-primitive-object (ratio :type ratio
:lowtag other-pointer-type
:header ratio-type :header ratio-type
:alloc-trans %make-ratio) :alloc-trans %make-ratio)
(numerator :ref-known (flushable movable) (numerator :type integer
:ref-known (flushable movable)
:ref-trans %numerator :ref-trans %numerator
:init :arg) :init :arg)
(denominator :ref-known (flushable movable) (denominator :type integer
:ref-known (flushable movable)
:ref-trans %denominator :ref-trans %denominator
:init :arg)) :init :arg))
...@@ -192,11 +195,18 @@ ...@@ -192,11 +195,18 @@
(filler) (filler)
(value :c-type "double" :length 2)) (value :c-type "double" :length 2))
(define-primitive-object (complex :lowtag other-pointer-type (define-primitive-object (complex :type complex
:lowtag other-pointer-type
:header complex-type :header complex-type
:alloc-trans %make-complex) :alloc-trans %make-complex)
(real :ref-known (flushable movable) :ref-trans %realpart :init :arg) (real :type real
(imag :ref-known (flushable movable) :ref-trans %imagpart :init :arg)) :ref-known (flushable movable)
:ref-trans %realpart
:init :arg)
(imag :type real
:ref-known (flushable movable)
:ref-trans %imagpart
:init :arg))
(define-primitive-object (array :lowtag other-pointer-type (define-primitive-object (array :lowtag other-pointer-type
:header t) :header t)
...@@ -232,12 +242,16 @@ ...@@ -232,12 +242,16 @@
:set-known (unsafe)) :set-known (unsafe))
(dimensions :rest-p t)) (dimensions :rest-p t))
(define-primitive-object (vector :lowtag other-pointer-type :header t) (define-primitive-object (vector :type vector
:lowtag other-pointer-type
:header t)
(length :ref-trans c::vector-length (length :ref-trans c::vector-length
:type index) :type index)
(data :rest-p t :c-type "unsigned long")) (data :rest-p t :c-type "unsigned long"))
(define-primitive-object (code :lowtag other-pointer-type :header t) (define-primitive-object (code :type code-component
:lowtag other-pointer-type
:header t)
(code-size :type index (code-size :type index
:ref-known (flushable movable) :ref-known (flushable movable)
:ref-trans %code-code-size) :ref-trans %code-code-size)
...@@ -254,13 +268,15 @@ ...@@ -254,13 +268,15 @@
(trace-table-offset) (trace-table-offset)
(constants :rest-p t)) (constants :rest-p t))
(define-primitive-object (fdefn :lowtag other-pointer-type (define-primitive-object (fdefn :type fdefn
:lowtag other-pointer-type
:header fdefn-type) :header fdefn-type)
(name :ref-trans fdefn-name) (name :ref-trans fdefn-name)
(function :ref-trans fdefn-function) (function :type (or function null) :ref-trans fdefn-function)
(raw-addr :c-type "char *")) (raw-addr :c-type "char *"))
(define-primitive-object (function :lowtag function-pointer-type (define-primitive-object (function :type function
:lowtag function-pointer-type
:header function-header-type) :header function-header-type)
#-gengc (self :ref-trans %function-self :set-trans (setf %function-self)) #-gengc (self :ref-trans %function-self :set-trans (setf %function-self))
#+gengc (entry-point :c-type "char *") #+gengc (entry-point :c-type "char *")
...@@ -330,7 +346,8 @@ ...@@ -330,7 +346,8 @@
(pointer :c-type "char *")) (pointer :c-type "char *"))
(define-primitive-object (weak-pointer :lowtag other-pointer-type (define-primitive-object (weak-pointer :type weak-pointer
:lowtag other-pointer-type
:header weak-pointer-type :header weak-pointer-type
:alloc-trans c::%make-weak-pointer) :alloc-trans c::%make-weak-pointer)
(value :ref-trans c::%weak-pointer-value (value :ref-trans c::%weak-pointer-value
...@@ -338,7 +355,8 @@ ...@@ -338,7 +355,8 @@
:set-trans (setf c::%weak-pointer-value) :set-trans (setf c::%weak-pointer-value)
:set-known (unsafe) :set-known (unsafe)
:init :arg) :init :arg)
(broken :ref-trans c::%weak-pointer-broken (broken :type (member t nil)
:ref-trans c::%weak-pointer-broken
:ref-known (flushable) :ref-known (flushable)
:set-trans (setf c::%weak-pointer-broken) :set-trans (setf c::%weak-pointer-broken)
:set-known (unsafe) :set-known (unsafe)
......
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