Skip to content
Snippets Groups Projects
load.lisp 32.6 KiB
Newer Older
ram's avatar
ram committed
	      (clc::bi
	       (unless (<= #x-80000 offset #x7FFFF)
		 (error "Offset #X~X out of BI range for ~A to reference ~A.~%"
			offset (car reflist) (cadr refs)))
	       (patch-instruction (hi lo address location)
		 (setf (ldb (byte 4 0) hi) (ash offset -16))
		 (setq lo (logand offset #xFFFF))))
	      (clc::ba (error "I can't resolve a BA reference yet.~%"))
	      (clc::l (error "I can't resolve an L reference yet.~%"))))))))
  (setq *external-references* ())

  (dolist (mo *miscop-definitions*)
    (let* ((name (intern (symbol-name (car mo)) (find-package "COMPILER")))
	   (index (get name 'clc::transfer-vector-index)))
      (if index
	  (%primitive write-control-stack
		      (%primitive make-immediate-type (ash index 2)
				  %assembler-code-type)
		      (cdr mo))
	  (pushnew name *user-defined-miscops*))))
  (setq *miscop-definitions* ()))

(proclaim '(notinline read-byte))