From: Nikodemus S. <de...@us...> - 2005-05-06 18:58:46
|
Update of /cvsroot/sbcl/sbcl/src/compiler/sparc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv794/src/compiler/sparc Modified Files: macros.lisp Log Message: 0.9.0.22: more fixed allocation * fix remaining WITH-FIXED-ALLOCATIONS with empty bodies. NB: there seems to be some doubt whether this is actually the right thing to do, as CMUCL has at least in sparc/float.lisp in MOVE-FOO-FLOAT a commit message by William Lott indicating that this was intentional "to avoid handling a trap within P-A". Which trap that would be is unclear, but hopefully we will eventually rediscover the cases where this is intentional. * make WITH-FIXED-ALLOCATION signal a BUG if body is empty to catch this in the future. * sprinkle WITH-FIXED-ALLOCATION with FAIRY-D^WONCE-ONLY on platforms that didn't have it yet. Index: macros.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/sparc/macros.lisp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- macros.lisp 2 Sep 2003 00:08:15 -0000 1.9 +++ macros.lisp 6 May 2005 18:58:37 -0000 1.10 @@ -140,6 +140,8 @@ Result-TN, and Temp-TN is a non-descriptor temp (which may be randomly used by the body.) The body is placed inside the PSEUDO-ATOMIC, and presumably initializes the object." + (unless body + (bug "empty &body in WITH-FIXED-ALLOCATION")) (once-only ((result-tn result-tn) (temp-tn temp-tn) (type-code type-code) (size size)) `(pseudo-atomic (:extra (pad-data-block ,size)) |