- Nov 01, 2008
-
-
rtoy authored
-
- Oct 20, 2008
-
-
rtoy authored
core.
-
rtoy authored
-
rtoy authored
code and call-out vop to be ignorant of whether we're have sse2 or not. Always do the x87 fstp/fldz stuff. compiler/x86/sse2-c-call.lisp: o Revert to vers 1.1.2.4, reinstating the fstp/fldz stuff in the callout vop. lisp/lisp.c: o Remove use of use_sse2. o Use fpu_mode_t for checking the fpu type. x86-assem.S: o Revert to ver 1.29.6.4: - Remove use of use_sse2. - Always do x87 fstp/fldz stuff whether we're using an sse2 or x87 core.
-
rtoy authored
the register for the real argument.
-
rtoy authored
-
- Oct 17, 2008
-
-
rtoy authored
complex to a float, which doesn't work. Fix mistake so we coerce the complex to a complex type.
-
- Oct 16, 2008
-
-
rtoy authored
o Move the deftransforms for = to a different place so they're enabled for complex single and double floats. o Remove deftransform for < and > for complexes since we can't actually compare complexes that way. o Add deftransforms for the case where the real argument has higher precision than the complex argument.
-
rtoy authored
code/exports.lisp: o Export %complex-{single,double,double-double}-float compiler/sparc/float.lisp: o Add deftransforms instead of vops to handle the %complex-foo conversions. compiler/x86/float-sse2.lisp: o Add vops to convert to complexes, taking advantage of packed operations when possible. o Add temporary reg that was accidentally deleted back in to the complex-op-float vops compiler/x86/insts.lisp: o Define cvtpd2ps and cvtps2pd instructions.
-
rtoy authored
a stack or descriptor object so we can use memory operands directly instead of loading the float into a register first.
-
rtoy authored
but basic contagion between complexes of different types and complexes and reals (that don't increase the precision of the complex result).
-
- Oct 15, 2008
- Oct 12, 2008
-
-
rtoy authored
bootfiles/19e/boot-2008-09-sse2.lisp: o Add :complex-fp-vops feature code/sparc-svr4-vm.lisp: code/x86-vm.lisp: o Register :complex-fp-vops feature compiler/float-tran.lisp: o Clean up deftransforms for complex arithmetic to support complex-fp-vops. o Add special vop for complex division that takes advantage of the fast complex multiply. compiler/x86/float-sse2.lisp: o Add vops for complex arithmetic. o Add guard for sse3 for some vops that need sse3 instructions. compiler/x86/insts.lisp: o Always define instructions available with sse3. Leave a comment so we know they're for sse3.
-
- Oct 11, 2008
- Oct 10, 2008
-
-
rtoy authored
o Remove deftransform for +, -, * for complex single-floats so we can use our vops. compiler/x86/float-sse2.lisp: o Forgot to implement packed versions of complex-single-move and move-to-complex-single. o Use movlps instead of movups (which is wrong for our packed numbers). o Add vops for complex single +, -, and *, and division of a complex single by a single-float
-
rtoy authored
-
rtoy authored
o Fix mistake in abs and %negate vops for single and double floats. Was using the wrong move instruction. o Add support for packed complex singles. vm.lisp: o With packed complex single floats, we can use all available SSE registers.
-
rtoy authored
-
rtoy authored
-
rtoy authored
for the stack. We make the offsets correct instead.
-
rtoy authored
to memory anymore, so this should be faster, but I didn't measure it.
-
rtoy authored
o Add pcmpeqq, but disabled since it an Opteron doesn't like it. o Add packed shift instructions: psrl, psll, psra.
-
rtoy authored
o Add vop to divide a complex by a real using packed operations. float-tran.lisp: o New transform for /. Take advantage of packed complex multiply and packed division of a complex by a real. o Remove deftransform for dividing a complex double-float by a double-float. These give a moderate speedup for complex double-float divison. Still seems much slower than x87.
-
rtoy authored
-
rtoy authored
-
- Oct 09, 2008
-
-
rtoy authored
-
rtoy authored
-
rtoy authored
o Add UNPCKLPD instruction. o Use define-regular-sse-inst to define UNPCKHPD and UNPCKLPD. o Add MOVHPD and MOVLPD instructions.
-
rtoy authored
alignment requirements. o Simplify definition of deifne-movsd/ss-sse-inst. o Fix bug in printer for shufpd.
-
rtoy authored
Disable some deftransforms for complex double addition, subtraction, and multiplication so we can use the vops.
-
rtoy authored
(This should be done in a better way.) o LOAD-COMPLEX-DOUBLE and MOVE-TO-COMPLEX-DOUBLE were storing instead of loading value. o Don't target the result register in MAKE-COMPLEX-DOUBLE-FLOAT. o Add some vops to do complex double float addition, subtraction, and multiplication. This requires changes to float-tran to be effective. The multiplication vop uses an sse3 instruction so it needs to be rewritten.
-
rtoy authored
o Make sure unpckhpd never uses a memory operand (128-bit alignment not guaranteed). o Add some comments to describe what the instructions do. o Make sure shufpd never uses a memory operand (128-bit alignment not guaranteed) and make sure the immediate value is valid.
-
- Oct 07, 2008