Update of /project/movitz/cvsroot/movitz In directory clnet:/tmp/cvs-serv24213
Modified Files: asm.lisp Log Message: Add support for incoming-symtab.
--- /project/movitz/cvsroot/movitz/asm.lisp 2008/02/04 07:45:08 1.7 +++ /project/movitz/cvsroot/movitz/asm.lisp 2008/02/04 08:33:39 1.8 @@ -6,7 +6,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: asm.lisp,v 1.7 2008/02/04 07:45:08 ffjeld Exp $ +;;;; $Id: asm.lisp,v 1.8 2008/02/04 08:33:39 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -102,11 +102,11 @@ ;;;;;;;;;;;;
-(defun proglist-encode (proglist &key corrections (start-pc 0) (cpu-package '#:asm-x86)) +(defun proglist-encode (proglist &key ((:symtab incoming-symtab) *symtab*) corrections (start-pc 0) (cpu-package '#:asm-x86)) "Encode a proglist, using instruction-encoder in symbol encode-instruction from cpu-package." (let ((encoder (find-symbol (string '#:encode-instruction) cpu-package)) (*pc* start-pc) - (*symtab* corrections) + (*symtab* (append incoming-symtab corrections)) (assumptions nil) (new-corrections nil) (sub-programs nil)) @@ -186,11 +186,13 @@ finally (cond ((not (null assumptions)) + (warn "prg: ~{~%~A~}" proglist) (error "Undefined symbol~P: ~{~S~^, ~}" (length assumptions) (mapcar #'car assumptions))) ((not (null new-corrections)) (return (proglist-encode proglist + :symtab incoming-symtab :start-pc start-pc :cpu-package cpu-package :corrections (nconc new-corrections corrections))))))