On Mon, Oct 08, 2001 at 07:47:48PM +0100, Christophe Rhodes wrote:
> As the SPARC port is currently stalled (as it appears to be the case
> that the third (ucontext) argument to SA_SIGINFO signal handlers is
> not currently implemented in SPARC/linux), I have returned to the
> issue of generating code for backend variants. The only example in the
> current CVS sources is the pair of translators for double-float %log1p
> (flog1p and flog1p-pentium).
> As was explained on this list, both VOPs work on pentium-class and
> above machines; on earlier machines, however, the fyl2xp1 instruction
> behaved slightly differently, necessitating a range check.
> The attached patch
> * implements the simplest possible interface for controlling
> backend-subfeature optimization (a new special variable);
> * updates the %log1p VOPs to reflect both this interface and the
> deduction that both VOPs work fine on high machines.
OK, that looks like it'll worth having as an experimental feature
anyway. I've merged it into sbcl-0.pre7.57.
Since neither of us is completely satisfied with the interface, I
added some explanatory comments.
;;; This is a prototype interface to support Christophe Rhodes' new
;;; (sbcl-0.pre7.57) VOP :GUARD clauses for implementations which
;;; depend on CPU variants, e.g. the differences between I486,
;;; Pentium, and Pentium Pro, or the differences between different
;;; SPARC versions.
If the interface isn't revised as we think more about it, and learn
more about it (e.g. benchmarking impact of the changes) then the
comments can be revised.
William Harold Newman <william.newman@...>
"Those who study history are doomed to watch others repeat it."
- Susan E. Cohen
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C