1. 27 Aug, 2020 1 commit
    • Raymond Toy's avatar
      Fix #86: Make cmucl work with gcc 8.1.1 and later · d51dabf0
      Raymond Toy authored
      In alloc(), save the fpu state on entry to the function and restore it
      just before returning.  
      
      While we're at it, use the __attribute__ option to get a 16-byte
      aligned area where we can save the fpu state.
      
      And also set optimization to -O2 for linux.
      d51dabf0
  2. 22 Sep, 2018 1 commit
  3. 04 Oct, 2015 3 commits
  4. 24 Jun, 2014 1 commit
    • Raymond Toy's avatar
      Change max gen to GC to 3; add inteface to set it. · 0cf9036d
      Raymond Toy authored
       * lisp/gencgc.c
         * Set number of generations to GC to 3 instead of NUM_GENERATIONS -
           1.
         * Add simple interface to allow user to set the number of
           generations and return the old value.
       * code/gc.lisp:
         * Add Lisp interface to set the number of generations to GC.
      0cf9036d
  5. 12 Jan, 2014 1 commit
    • Raymond Toy's avatar
      Remove the zero checking of the heap. · c9a3b19c
      Raymond Toy authored
      It's been several months without any issue after adding the lazy
      zeroing of heap pages, so it's probably safe to remove the zero
      checking of the heap pages.  It can still be enabled by setting the
      appropriate variables.
      c9a3b19c
  6. 22 Nov, 2013 1 commit
  7. 10 Nov, 2013 1 commit
  8. 02 Jul, 2013 1 commit
  9. 04 May, 2013 1 commit
  10. 03 May, 2013 2 commits
  11. 27 Apr, 2013 1 commit
    • Raymond Toy's avatar
      Clean up madvise implementation · b76e5972
      Raymond Toy authored
       * Remove PAGE_MADVISE_MASK
       * Remove code using PAGE_MADVISE_MASK
       * Move some #defines from gencgc.c to gencgc.h
       * Add new or better comments
      b76e5972
  12. 26 Apr, 2013 1 commit
  13. 24 Apr, 2013 1 commit
  14. 21 Apr, 2013 2 commits
  15. 20 Apr, 2013 2 commits
  16. 01 Sep, 2012 1 commit
    • Raymond Toy's avatar
      Clean up RCS ids · eeab7066
      Raymond Toy authored
       * Get rid of the RCS Header stuff.  They're meaningless in git.
       * Add public domain comment to some of the files if the only comment
         was the RCS header.
      eeab7066
  17. 10 Aug, 2012 1 commit
    • Raymond Toy's avatar
      src/lisp/os.h: · c07cc020
      Raymond Toy authored
       src/lisp/gencgc.c:
       * Move the macros for fpu buffers from gencgc.c to here.
       src/lisp/x86-arch.c:
       * Use the new save_fpu_state instead of fpu_save.  And apply to all
         OSes.
      c07cc020
  18. 18 Jul, 2012 1 commit
    • Raymond Toy's avatar
      Fix ticket:61, using option 2. · 40b532c5
      Raymond Toy authored
      src/lisp/gencgc.c:
      o Save and restore the FPU state in alloc().
      
      src/compiler/x86/alloc.lisp
      src/compiler/x86/array.lisp
      src/compiler/x86/call.lisp
      src/compiler/x86/float-sse2.lisp
      src/compiler/x86/float.lisp
      src/compiler/x86/move.lisp
      src/compiler/x86/sap.lisp:
      o Don't need to use :save-p anymore because the allocation routine
        saves an live registers anyway.  This improves code generation as
        well.
      
      src/general-info/release-20d.txt:
      o Update.
      40b532c5
  19. 05 Jul, 2012 2 commits
  20. 15 Jun, 2012 1 commit
  21. 27 Jan, 2012 2 commits
  22. 04 Nov, 2011 1 commit
  23. 24 Sep, 2011 1 commit
    • Raymond Toy's avatar
      Fix Trac ticket:46. · 44a8f0c7
      Raymond Toy authored
      Make the size of all spaces configurable from the command line.
      
      code/commandline.lisp:
      o Define the switches so lisp doesn't complain.
      
      general-info/lisp.1:
      o Document new switches.
      
      general-info/release-20c.txt:
      o Update
      
      lisp/Darwin-os.c
      lisp/FreeBSD-os.c
      lisp/Linux-os.c
      lisp/NetBSD-os.c
      lisp/backtrace.c
      lisp/cgc.c
      lisp/gencgc.c
      lisp/os-common.c
      lisp/ppc-validate.h
      lisp/purify.c
      lisp/solaris-os.c
      lisp/sparc-arch.c
      lisp/sparc-validate.h
      lisp/x86-validate.h:
      lisp/validate.c
      o Basically rename CONTROL_STACK_SIZE, BINDING_STACK_SIZE,
        READ_ONLY_SPACE_SIZE, and STATIC_SPACE_SIZE to control_stack_size,
        binding_stack_size, read_only_space_size, and static_space_size,
        respectively.
      
      lisp/coreparse.c
      o Check the space size in the core file against the allocated size.
        If the allocated space is too small, print an error message and
        exit.
      
      lisp/globals.c
      o Define new variables for the allocated size of spaces.
      
      lisp/globals.h
      o Declare the new variables for the size of the spaces.
      
      lisp/lisp.c
      o Set the default values of the spaces.
      o Parse the new command-line flags and set the space sizes.
      
      lisp/sunos-os.c:
      o Added os_init0 (that we forgot last time).
      
      lisp/x86-assem.S:
      o Change $CONTROL_STACK_END to GNAME(control_stack_end) to get the
        correct end of the stack.
      44a8f0c7
  24. 09 Jan, 2011 1 commit
    • rtoy's avatar
      Changes to support building on Mac OS X 10.6. When compiled on 10.6, · 0b2b8885
      rtoy authored
      the resulting binary still works on 10.5.
      
      lisp/Config.x86_darwin:
      o Add -m32 flag to build and link a 32-bit binary.
      
      lisp/Darwin-os.h:
      o Include <sys/ucontext.h> instead of <ucontext.h> to get rid of the
        error about deprecated functions in ucontext.h.
      
      lisp/gencgc.h:
      o Mac OS X defines PAGE_SIZE in a header and that conflicts with our
        name.  Rename our PAGE_SIZE to GC_PAGE_SIZE.
      
      lisp/gencgc.c:
      o Rename PAGE_SIZE to GC_PAGE_SIZE.
      0b2b8885
  25. 22 Dec, 2010 1 commit
  26. 26 Jul, 2010 1 commit
  27. 22 Jul, 2010 1 commit
  28. 19 Jul, 2010 1 commit
    • rtoy's avatar
      Merge changes from sparc-tramp-assem-2010-07-19. This moves · 30102669
      rtoy authored
      closure_tramp and undefined_tramp from the C side to the Lisp side via
      Lisp assembly routines.  (Simplifies things quite a bit for sparc.)
      
      Also includes some GC fixes for sparc and ppc to handle moving the pc,
      npc, lr, and ctr registers.  They need to be handled like the lip
      register.
      
      See bootfiles/20a/boot-2010-07-1-cross.lisp for instructions on how to
      bootstrap this change.  A basic cross-compile with a specific cross
      bootstrap file is needed.
      30102669
  29. 01 Apr, 2010 1 commit
    • rtoy's avatar
      Fix SSE2 bug when running · 5efbe364
      rtoy authored
      (defun testfn ()
        (let* ((i-gc-ed-u nil)
               (ext:*gc-notify-before* (lambda (a) (/ a 0.34d0))))
          (dotimes (i 100000)
            (setf i-gc-ed-u nil)
            (let* ((v1 (list (* 1d0 (random 10)) (* 1d0 (random 10))))
                   (v2 (list (* 1d0 (random 10)) (* 1d0 (random 10))))
                   (dot1 (reduce #'+ (mapcar #'* v1 v2)))
                   (dot2 (reduce #'+ (mapcar #'* v1 v2))))
              (when (/= dot1 dot2)
                (print `(gc ,i-gc-ed-u v1 ,v1 v2 ,v2 dot1 ,dot1 dot2 ,dot2)))))))
      
      Running this with sse2 would cuase dot1 and dot2 to sometimes be
      different.  We forgot to save the SSE2 state in call_into_lisp.
      
      (This bug was mentioned on comp.lang.lisp, http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/828371aa4800272c?hl=en#
      
      x86-assem.S:
      o Save and restore SSE2 state when running with SSE2 core.  (This
        might need more tweaking.  Should we use cpuid instead of looking at
        fpu_mode?)
      
      gencgc.c:
      o Save the SSE2 state, along with X87 state for SSE2 cores.
      5efbe364
  30. 21 Dec, 2009 1 commit
  31. 18 Dec, 2009 1 commit
  32. 17 Dec, 2009 2 commits
    • rtoy's avatar
      o Add linux support in other_space_p. · f0626999
      rtoy authored
      o Remove check for object < 0xf0000000 in scavenge.
      f0626999
    • rtoy's avatar
      o Add another function to check for other places that can't be malloc · b7271901
      rtoy authored
        areas.  For sparc, this means anything below the end of the text
        section (to capture undefined_tramp and closure_tramp and some weird
        pointer object in the middle of call_into_c).  For darwin/x86, we
        ignore 0xffffffe9.  Needs to be checked on other OSes and
        architectures.
      o Move the switch statement of allowed static arrays into its own
        function.
      b7271901