Commit 73b64462 authored by wlott's avatar wlott
Browse files

Changed def-vm-support-routine to explicitly change *target-backend*

instead of assuming special macroexpand support in the compiler.
Changed backend-info-environment to be a list instead of a single info
environment.  NIL (the default) means use *info-environment*.  Added
slots to hold assembler data structures.
parent 1a3bb12e
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
(defun ,local-name ,ll ,@body) (defun ,local-name ,ll ,@body)
(setf (,(intern (concatenate 'simple-string "BACKEND-" (string name)) (setf (,(intern (concatenate 'simple-string "BACKEND-" (string name))
(find-package "C")) (find-package "C"))
*backend*) *target-backend*)
#',local-name)))) #',local-name))))
...@@ -157,7 +157,12 @@ ...@@ -157,7 +157,12 @@
(parsed-vops (make-hash-table :test #'eq) :type hash-table) (parsed-vops (make-hash-table :test #'eq) :type hash-table)
;; The backend specific aspects of the info environment. ;; The backend specific aspects of the info environment.
(info-environment (make-info-environment :name "Backend Info")) (info-environment nil :type list)
;; Support for the assembler.
(instruction-formats (make-hash-table :test #'eq) :type hash-table)
(instruction-flavors (make-hash-table :test #'equal) :type hash-table)
(special-arg-types (make-hash-table :test #'eq) :type hash-table)
. #.(mapcar #'(lambda (slot) . #.(mapcar #'(lambda (slot)
`(,slot nil :type (or null function))) `(,slot nil :type (or null function)))
...@@ -165,6 +170,7 @@ ...@@ -165,6 +170,7 @@
#'string< #'string<
:key #'symbol-name))) :key #'symbol-name)))
(defprinter backend (defprinter backend
name) name)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment