Skip to content
Snippets Groups Projects
  1. Oct 16, 2008
    • rtoy's avatar
      More complex contagion stuff. · 199cd5fa
      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.
      199cd5fa
    • rtoy's avatar
      Micro-optimization: For complex op float vops, allow the float to be · e42c0aa0
      rtoy authored
      a stack or descriptor object so we can use memory operands directly
      instead of loading the float into a register first.
      e42c0aa0
    • rtoy's avatar
      Implement support for contagion for complex numbers. Needs more work, · d7296fcc
      rtoy authored
      but basic contagion between complexes of different types and complexes
      and reals (that don't increase the precision of the complex result).
      d7296fcc
  2. Oct 15, 2008
  3. Oct 12, 2008
    • rtoy's avatar
      Add complex floating-point vops to speed up complex arithmetic. · db7cad86
      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.
      db7cad86
  4. Oct 11, 2008
  5. Oct 10, 2008
  6. Oct 09, 2008
  7. Oct 07, 2008
  8. Oct 06, 2008
  9. Oct 05, 2008
  10. Oct 04, 2008
    • rtoy's avatar
      Remove uses of x87 stuff when using sse2. Update core file format to · 331b55d4
      rtoy authored
      tell us if the core is for x87 or sse2.
      
      compiler/x86/sse2-c-call.lisp:
      o Remove all of the fp-pop, fldz stuff from the inline foreign call.
      o If there's a floating-point result, save the result and pop the FPU
        stack.
      
      lisp/x86-assem.S:
      o Add global variable use_sse2.  Non-zero means we are using SSE2 and
        should not do any x87 stuff in call_into_c and call_into_lisp.  We
        just branch around that code.  (Should we do this in a different way
        and have separate versions for x87 and sse2?)
      
      lisp/save.c:
      o After the core version, output a word indicating the type of FPU.
        Default is 0.  A value of 1 indicates we have SSE2.
      
      lisp/coreparse.c:
      o Read the fpu type word and return it.
      o load_core_file has extra parameter to return the fpu type.
      
      lisp/core.h:
      o Update declaration of load_core_file
      
      lisp/lisp.c:
      o Update calls to new load_core_file.
      o Add check to print a message before exiting in the case that the
        core uses SSE2 and but the chip doesn't support SSE2.
      o Set use_sse2 flag appropriately.
      331b55d4
    • rtoy's avatar
      Oops. Found one case where we were using x87 instructions where we · 24a3673d
      rtoy authored
      shouldn't have been.
      24a3673d
  11. Oct 03, 2008
  12. Oct 02, 2008
    • rtoy's avatar
      code/float-trap.lisp: · 52334cc1
      rtoy authored
      o Oops.  Was setting the wrong bits in the x87 modes for rounding
        control.
      o Also always set precision to 64-bits.  (Not sure if we should do
        this.  And something else is setting the mode back to 53-bits
        anyway.)
      
      compiler/x86/float-sse2.lisp:
      o Document the format of the mxcsr register and the x87 status and
        control words, just so we don't have to go look up the Intel docs
        all the time.
      52334cc1
Loading