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

Initial MIPS version.

Transform char-int into char-code, 'cause we no longer support char bits.

Transform %type-check-error, %odd-keyword-arguments-error,
&unknown-keyword-argument-error, and %argument-count-error into VOPs that
signal that error.

Transform header-{ref,set,length} into simple-vector operations that do
something similar, for until we nuke all references to header-mumble.
parent 98fe233e
No related branches found
No related tags found
No related merge requests found
......@@ -7,11 +7,13 @@
;;; Scott Fahlman (FAHLMAN@CMUC).
;;; **********************************************************************
;;;
;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/vm-tran.lisp,v 1.2 1990/03/07 18:46:43 wlott Exp $
;;;
;;; This file contains impelemtentation-dependent transforms.
;;;
;;; Written by Rob MacLachlan
;;;
(in-package 'c)
(in-package "C")
;;; We need to define these predicates, since the TYPEP source transform picks
;;; whichever predicate was defined last when there are multiple predicates for
......@@ -30,9 +32,34 @@
`(functionp ,x))
(def-source-transform char-int (x)
`(truly-the char-int (%primitive make-fixnum ,x)))
`(char-code ,x))
(def-source-transform abs (x)
(once-only ((n-x x))
`(if (< ,n-x 0) (- ,n-x) ,n-x)))
(macrolet ((frob (name primitive)
`(def-source-transform ,name (&rest foo)
`(truly-the nil
(%primitive ,',primitive ,@foo)))))
(frob %type-check-error type-check-error)
(frob %odd-keyword-arguments-error odd-keyword-arguments-error)
(frob %unknown-keyword-argument-error unknown-keyword-argument-error)
(frob %argument-count-error argument-count-error))
;;; Let these pass for now.
(def-primitive-translator header-ref (obj slot)
(warn "Someone used HEADER-REF.")
`(%primitive fast-svref ,obj ,slot))
(def-primitive-translator header-set (obj slot value)
(warn "Someone used HEADER-SET.")
`(%primitive fast-svset ,obj ,slot ,value))
(def-primitive-translator header-length (obj)
(warn "Someone used HEADER-LENGTH.")
`(%primitive vector-length ,obj))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment