Changeset 7878


Ignore:
Timestamp:
Dec 11, 2007, 4:41:03 AM (13 years ago)
Author:
rme
Message:

WITH-SHORT-STACK-FLOATS macro

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/compiler/X86/X8632/x8632-arch.lisp

    r7816 r7878  
    675675  (let* ((pos (position name x86::*x86-nilreg-relative-symbols* :test #'eq)))
    676676    (if pos (* (1- pos) symbol.size))))
     677
     678(defmacro with-stack-short-floats (specs &body body)
     679  (ccl::collect ((binds)
     680                 (inits)
     681                 (names))
     682                (dolist (spec specs)
     683                  (let ((name (first spec)))
     684                    (binds `(,name (ccl::%make-sfloat)))
     685                    (names name)
     686                    (let ((init (second spec)))
     687                      (when init
     688                        (inits `(ccl::%short-float ,init ,name))))))
     689                `(let* ,(binds)
     690                  (declare (dynamic-extent ,@(names))
     691                           (short-float ,@(names)))
     692                  ,@(inits)
     693                  ,@body)))
    677694
    678695(defparameter *x8632-target-uvector-subtags*
Note: See TracChangeset for help on using the changeset viewer.