Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to sse2-packed-2008-11-12:||(view) (annotate)|
Minor cleanup. But all the runtime feature stuff into RUNTIME.
Initial support for SSE2. This compiles itself ok on Linux, and should work on OSX. Much cleanup is needed, and still need to restore buildability without SSE2. Use bootfiles/19e/boot-2008-09-sse2.lisp as the cross-compile script. The key changes are in these new files: o float-sse2.lisp: implements all of the floating-point stuff with SSE2 o sse2-array.lisp: replacement vops using sse2 instead of x87 o sse2-c-call.lisp: replacement vops using sse2 instead of x87. o sse2-sap.lisp: replacement vops using sse2 instead of x87 code/irrat.lisp: o Basically turn off all the special routines that use the x87 trig, log, or exp instructions. We don't support that currently. (Would be nice, though.) o Turn on %%sin and friends, like on ppc. o Turn off %sin-quick and friends since we don't want to use x87 now. code/misc.lisp: o Register :sse2 feature. compiler/float-tran.lisp: o Disable transforms for x86 that use x87 instructions. We don't support that with sse2. compiler/loadbackend.lisp: o Load up the appropriate sse2 files for the compiler. This will currently overwrite existing vops with vops for SSE2. compiler/x86/float.lisp: o Disable various vops using the x87 instructions, since float-sse2.lisp doesn't have equivalents. (Just in case. Since this isn't compiled or loaded, we shouldn't need to do this.) compiler/x86/insts.lisp: o Add support for SSE2 instructions. Shamelessly borrowed from our SBCL friends. compiler/x86/vm.lisp: o Turn off some fp-constants that are not supported with sse2. o Print FP registers as XMM instead of FR. lisp/Config.linux_gencgc: lisp/Config.x86_darwin: o Enable FEATURE_SSE2 flag when compiling. lisp/Darwin-os.c: lisp/Linux-os.c: o Get the mxcsr status bits too when getting the FPU status from a sigcontext. lisp/x86-assem.S: o For SSE2, we copy any floating-point result (in ST(0)) to XMM0, so Lisp code can get it. tools/comcom.lisp: o Compile up the SSE2 files as needed.
Minor tweaks. o Add mode line for emacs o Use FEATURE_LINKAGE_TABLE and FEATURE_GENCGC to enable/disable the appropriate flags.
Compile e_rem_pio2.c with -fno-strict-aliasing.
Import x86 Darwin port.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|