Skip to content
Snippets Groups Projects
  1. Oct 07, 2008
  2. Oct 06, 2008
  3. Oct 05, 2008
  4. 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
  5. Oct 03, 2008
  6. 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
    • rtoy's avatar
      Declare arg type for (setf floating-point-modes) so the code can run · 2d0985ef
      rtoy authored
      without consing.
      2d0985ef
    • rtoy's avatar
      Oops. Remove debugging print. · 18c8c601
      rtoy authored
      18c8c601
  7. Oct 01, 2008
  8. Sep 30, 2008
  9. Sep 29, 2008
  10. Sep 28, 2008
    • rtoy's avatar
      Move the x87-specific version of array.lisp to x87-array.lisp. · bd92b8de
      rtoy authored
      compiler/loadbackend.lisp:
      o Load up x87-array if we're not compiling for sse2.
      
      compiler/x86/array.lisp
      o Move out x87 stuff.
      
      compiler/x86/sse2-array.lisp:
      o Minor cleanup of comments.
      
      tools/comcom.lisp:
      o Compile either sse2-array or x87-array.
      
      compiler/x86/x87-array.lisp:
      o New file of x87-specific stuff.
      bd92b8de
    • rtoy's avatar
      Move the x87-specific version of sap.lisp to x87-sap.lisp. · 60f80f2f
      rtoy authored
      compiler/loadbackend.lisp:
      o Load up x87-sap if we're not compiling for sse2.
      
      compiler/x86/sap.lisp
      o Move out x87 stuff.
      
      compiler/x86/sse2-sap.lisp:
      o Minor cleanup of comments.
      
      tools/comcom.lisp:
      o Fix mistake in compiling float/float-sse2.  We only need to compile
        one or the other.
      o Compile either sse2-sap or x87-sap.
      o Compile either sse2-c-call or x87-c-call.
      
      compiler/x86/x87-sap.lisp:
      o New file of x87-specific stuff.
      60f80f2f
    • rtoy's avatar
      Move the x87-specific version of c-call.lisp to x87-c-call.lisp. · 67782d39
      rtoy authored
      compiler/loadbackend.lisp:
      o Clean up some code
      o Load up x87-c-call if we're not compiling for sse2.
      
      compiler/x86/c-call.lisp:
      o Move x87 stuff to x87-c-call.lisp.
      
      compiler/x86/sse2-c-call.lisp:
      o Add alloc-number-stack-space and dealloc-number-stack-space, in case
        we decide to turn off the x87 precision stuff.
      
      compiler/x86/x87-c-call.lisp:
      o New file of x87-specific stuff.
      67782d39
    • rtoy's avatar
      Preliminary support for dealing with x87 and sse2 in the same tree. · 61ec724b
      rtoy authored
      clean-target.sh:
      o Don't remove any Lisp core files.  (Need to rethink this and decide
        what should be deleted or not.)
      o Don't remove any module library fasls.
      
      make-main-dist.sh:
      o Install any lisp core files with the name lisp*.core.
      o Also install any module library fasls for both sse2 and x86f.
      61ec724b
    • rtoy's avatar
      Use a different file extension when compiling for sse2. This allows · 43d36596
      rtoy authored
      us to compile both sse2 and x87 versions in the same directory.  This
      somewhat simplifies building and creating binaries.
      43d36596
    • rtoy's avatar
      Use Carl's idea of doing the SSE2 stuff in c-call instead of in · e08e6cd1
      rtoy authored
      call_into_c.  This makes x86-assem.S not depend on sse2 in any way.
      
      compiler/x86/sse2-c-call.lisp:
      o When calling call_into_c directly, move the float result to xmm0.
      o Remove sse2 conditionalization since this file is for sse2
      
      lisp/x86-arch.c:
      o have_sse2 has been removed
      
      lisp/x86-assem.S:
      o Remove have_sse2
      o Don't move float result into xmm0.  Let the lisp code deal with it.
      e08e6cd1
  11. Sep 27, 2008
Loading