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

Added a copy-list to keep from modifying the source code in

define-primitive-object.  Replaced the silly (eval `(make-... stuff
with a call to make-....  Moved float-format-digits into the code
sources, 'cause it's needed at run-time.
parent 673a9913
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@
;;; Scott Fahlman (FAHLMAN@CMUC).
;;; **********************************************************************
;;;
;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.63 1990/07/07 13:10:58 ram Exp $
;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.64 1990/07/10 18:34:18 wlott Exp $
;;;
;;; This file contains some parameterizations of various VM
;;; attributes for the MIPS. This file is separate from other stuff so
......@@ -93,11 +93,6 @@
(defconstant double-float-digits
(+ (byte-size double-float-significand-byte) word-bits 1))
(defun float-format-digits (format)
(ecase format
((short-float single-float) single-float-digits)
((double-float long-float) double-float-digits)))
;;;; Description of the target address space.
......@@ -264,19 +259,20 @@
&key header lowtag
&allow-other-keys)
&rest slots)
(setf options (copy-list options))
(remf options :header)
(remf options :lowtag)
(let ((prim-obj
(eval `(make-primitive-object
:name ',name
:header ,header
:lowtag ,lowtag
:options ',options
:slots (list ,@(mapcar #'(lambda (slot)
(if (atom slot)
`(make-slot ',slot)
`(apply #'make-slot ',slot)))
slots))))))
(make-primitive-object :name name
:header header
:lowtag lowtag
:options options
:slots (mapcar #'(lambda (slot)
(if (atom slot)
(make-slot slot)
(apply #'make-slot
slot)))
slots))))
(collect ((forms) (exports))
(let ((offset (if (primitive-object-header prim-obj) 1 0))
(variable-length nil))
......@@ -316,6 +312,7 @@
(export ',(exports))
,@(forms)))))
(defvar *primitive-objects* nil)
(defmacro define-for-each-primitive-object ((var) &body body)
......
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