Skip to content
  1. Apr 16, 2014
  2. Nov 04, 2011
  3. Sep 25, 2011
  4. Jul 14, 2010
  5. Jul 01, 2010
    • rtoy's avatar
      Fix critical bug introduced in previous changes. Incorrect results · 4578fb45
      rtoy authored
      were returned when calling out to a C function returning a float.
      
      float-sse2.lisp:
      o Remove the FLOAT-MOVE vop and add a FLOAT-MOVE/SINGLE and
        FLOAT-MOVE/DOUBLE that can handle moving from FR0 or any XMM
        register to any XMM register.
      o Update the move vops appropriately.
      
      sse2-c-call.lisp:
      o Don't need to move FR0 to XMM0 anymore.  This was one source of the
        problem.  The compiler knows now to ask for a move from FR0 to some
        XMM register.
      o Update comments.
      
      vm.lisp:
      o Correct printing of XMM registers.  Previously printed them as
        XMM8-15 but should have been XMM0-7.  (Mostly in trace files.)
      4578fb45
  6. Jun 22, 2010
    • rtoy's avatar
      Make previous changes build for x87. · 139c4f23
      rtoy authored
      compiler/x86/vm.lisp:
      o Change *float-register-names* to be defparameter.
      o Setup float-regs and def-random-reg-tns appropriately for x87 and
        sse2.
      
      lisp/Darwin-os.c:
      lisp/Linux-os.c:
      o Conditionalize previous change for FEATURE_SSE2.
      139c4f23
    • rtoy's avatar
      Revert the previous change to fix debug:arg/trace issue. Instead, use · 1fea054f
      rtoy authored
      Carl's suggestion and define new SC numbers for the xmm registers
      instead of overloading the x87 fpu registers and the xmm register
      SC's.
      
      bootfiles/20a/boot-2010-06-cross-x86.lisp:
      o New file needed for cross-compiling this change.
      
      code/x86-vm.lisp:
      o Revert previous change.
      
      compiler/x86/sse2-c-call.lisp:
      o Use xmm0-tn instead of fr0-tn.  No functional change, but makes the
        code more readable.
      
      compiler/x86/vm.lisp:
      o Increase the number of float registers from 8 to 16 (8 more for SSE2
        registers).
      o Define new xmm<n> registers
      o Update the locations with the new sse2 SC locations for single-reg,
        double-reg, double-double-reg, complex-single-reg,
        complex-double-reg, and complex-double-double-reg storage classes.
      
      lisp/Darwin-os.c:
      o Revert previous change.
      o Update os_sigcontext_fpu_reg to support the xmm registers.
      
      lisp/Linux-os.c:
      o Update os_sigcontext_fpu_reg to support the xmm registers.
      1fea054f
  7. Mar 19, 2010
  8. Nov 12, 2008
  9. Apr 21, 2008
  10. Apr 15, 2008
  11. Jun 30, 2006
  12. Jul 24, 1998
  13. Mar 21, 1998
  14. Feb 21, 1998
  15. Feb 14, 1998
  16. Nov 18, 1997
  17. Nov 04, 1997
    • dtc's avatar
      Merge in changes to the x86 backend from the gencgc branch, allowing · 725ab9ee
      dtc authored
      common binaries to be run on both:
      
      * The immediate-stack storage class has been removed, this is
      unnecessary as the descriptor-stack SC can be used. It may have once
      been part of some GC stragety to reduce the number of stack slots that
      needed to be noted for a GC.
      
      * The object allocation has been abstracted and cleaned up. This
      should produce slightly faster smaller code with CGC, and can be
      compiled to support inline allocation with GENCGC.  CGC compiled code
      will run under GENCGC, and GENCGC binaries that don't use inline
      allocation will run under CGC.
      
      * A random hash is now placed in the unused symbol object slot (the
      symbol-hash slot). This saves flushing the info cache at each GC, and
      may have other uses for symbol based hash tables. Should help MP
      safety.
      
      * Common set of static symbols used by both CGC and GENCGC.
      
      * Corrections to the stack-ref VOP; now returns lisp objects not
      unsigned numbers. Required some patches to debug-int.
      
      * Inline unsigned/signed byte 32 to bignum allocation enabled.
      
      * Support for the x86 xadd instruction applied to instance slot and
      symbol values - may be handy for some MP code.
      
      * Bump up the FASL file version from 1 to 2.
      725ab9ee
  18. Nov 01, 1997
    • dtc's avatar
      Improved support for (complex single-float) and (complex double-float) · 4c3b1bb6
      dtc authored
      types. Adds storage classes to the backend for these so they can be
      stored in registers or on the stack without consing; new primitive
      types etc. Also adds (simple-array (complex {single,double}-float))
      array types to avoid consing and speed vectors operations.  All
      these changes are conditional on the :complex-float feature. More work
      is needed to exploit these changes: improving the type dispatch in the
      various function; maybe compiler transforms or more VOPs to handle
      common functions inline.
      4c3b1bb6
  19. Jul 26, 1997
  20. Mar 29, 1997
  21. Jan 18, 1997