1. 28 Aug, 2020 3 commits
  2. 04 Oct, 2015 1 commit
  3. 16 Apr, 2014 1 commit
  4. 13 Apr, 2014 2 commits
  5. 11 Apr, 2014 1 commit
    • Raymond Toy's avatar
      Simplify call_into_c more, putting more of the functionality into · 260d94f1
      Raymond Toy authored
      call-out.
      
       * lisp/x86-assem.S
         * Rip out all of cruft dealing with float return values and the
           need for maintaining the FPU state.  Just call the foreign
           function and return, letting call-out deal with the result.
       * compiler/x86/sse2-c-call.lisp
         * Handle the different return values depending on whether we
           declared the function to return a float or not.
      260d94f1
  6. 06 Apr, 2014 1 commit
  7. 05 Apr, 2014 1 commit
    • Raymond Toy's avatar
      Simplify call-out for sse2. · 29359293
      Raymond Toy authored
      For sse2, we don't need to do the fldz/fstp dance when doing a
      foreign function call.
      
      A cross-compile is needed!
      
       * src/bootfiles/20e/boot-2014-04-cross-x86.lisp:
         * Cross-compile script to enable these changes.
       * src/compiler/x86/c-call.lisp:
         * Make the float result tn be xmm registers, not x87 fpu registers.
       * src/compiler/x86/sse2-c-call.lisp:
         * Simplify call-out not to use fldz/fstp except for the minimum
           required for the 32-bit ABI.
       * src/lisp/x86-assem.S
         * Comment out the fstp/fldz insts that aren't needed for SSE2.
      29359293
  8. 18 Jul, 2012 2 commits
  9. 17 Jul, 2012 1 commit
    • Raymond Toy's avatar
      Clean up not-inline-allocation. · 99020b36
      Raymond Toy authored
      src/lisp/x86-assem.S:
      o Remove the (now) unused alloc_to_<reg> functions.
      
      src/compiler/x86/macros.lisp:
      o Simplify the not-inline-allocation to use the same routines as
        inline allocation.
      99020b36
  10. 13 Jul, 2012 1 commit
  11. 12 Jul, 2012 1 commit
    • Raymond Toy's avatar
      Clean up alloc overflow routine. Cross-compile needed. · 2e95a0bb
      Raymond Toy authored
      src/bootfiles/20c/boot-2012-07-1-x86-cross.lisp:
      o X86 cross-compile script
      
      src/compiler/x86/macros.lisp:
      o New inline-allocation to call our new overflow routine.
      
      src/lisp/x86-assem.S:
      o New alloc_overflow routine.
      
      src/tools/cross-scripts/cross-x86-x86.lisp:
      o Export all symbols in VM that are external symbols in OLD-VM with
        the corresponding symbol name.
      2e95a0bb
  12. 08 Jan, 2012 1 commit
  13. 06 Jan, 2012 1 commit
  14. 22 Dec, 2011 1 commit
    • Raymond Toy's avatar
      Make stack 16-byte aligned. · 43c8a820
      Raymond Toy authored
      lisp/x86-assem.S:
      o Make sure the stack is 16-byte aligned in the alloc_overflow_foo and
        alloc_to_foo routines.  These eventually call into C code, and the
        stack is required to be 16-byte aligned on Darwin.  We apply this to
        all x86 implementations since it's harmless.
      o Did not update the alloc_8/16_to_foo routines because they are going
        to be deleted.
      
      x86/macros.lisp:
      o Don't call the alloc_8/16_to_foo routines when we're not doing
        inline allocation.  I don't think there's much to be gained with
        these special functions and maintainence is a pain with assembly
        code.
      43c8a820
  15. 04 Nov, 2011 1 commit
  16. 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
  17. 22 Dec, 2010 1 commit
  18. 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
  19. 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
  20. 24 Dec, 2008 1 commit
  21. 17 Dec, 2008 1 commit
  22. 12 Nov, 2008 1 commit
  23. 18 Mar, 2008 1 commit
  24. 06 Jul, 2007 1 commit
  25. 27 Jun, 2007 1 commit
  26. 12 Jun, 2007 1 commit
  27. 06 Feb, 2005 1 commit
  28. 24 Oct, 2003 1 commit
    • toy's avatar
      Add support for x86 heap-overflow checking. · 10d10ac0
      toy authored
      	* x86-assem.S (multiple_value_return): Add new functions to handle
      	heap overflow warnings and errors.
      
      	* x86-arch.c (sigtrap_handler): Add cases for the two new heap
      	overflow traps.
      
      	* interrupt.c (interrupt_handle_space_overflow): Add support for
      	x86.
      
      	* parms.lisp (static-symbols): Add new static symbols for heap
      	overflow checking.  Add new trap types for heap overflow
      	checking.
      10d10ac0
  29. 28 Aug, 2002 1 commit
    • pmai's avatar
      A number of smallish changes to the new linkage-table code: · cf055d22
      pmai authored
      o Conditionalized some code that is only used in linkage-table builds
        on :linkage-table and LINKAGE_TABLE respectively.
      o Modernized undefined_ff_tramp based on recent changes, and renamed
        it to undefined_foreign_symbol_trap, because it really isn't a
        trampoline.
      o Conditionalized a stray puts(...,dlerror()) in Linux-os.c on DEBUG
      o Installed an error reporter for UNDEFINED_FOREIGN_SYMBOL_ERROR,
        which for now signals a simple-program-error.  We might want to
        introduced a new condition UNDEFINED-FOREIGN-SYMBOL or something,
        which could also be used by the old foreign linkage code.
      cf055d22
  30. 27 Aug, 2002 1 commit
    • moore's avatar
      · bf84be07
      moore authored
      On x86 FreeBSD and Linux, change the way foreign symbol addresses are resolved.
      They now go through a table -- effectively a new space in the core file.
      Function references are resolved lazily, data references are resolved on startup
      and when a .so is loaded.  The end result is that cores can be dumped that
      contain references to symbols in shared libraries.  Also, the dependence of the core on addresses in the Lisp runtime is broken.
      
      The linkage table feature is controlled by :linkage-table and LINKAGE_TABLE in C
      runtime.  Several foreign symbols are now Lisp static symbols, so a cross
      compile is required whether or not the new stuff is used.  I've checked in
      boot4-cross-foreign-linkage.lisp that builds the compiler for linkage table; do whatever you usually do for the non-linkage table case:)  Seriously, lets start
      a discussion on standardizing "cross compilation," not to mention the general
      build procedure.
      bf84be07
  31. 23 Aug, 2002 1 commit
    • pmai's avatar
      Added export of internal error code constants to internals.h, so that · bf5bad29
      pmai authored
      platform assembler code can use those, instead of magic numbers and
      bogus conditionalization on type_Long_Float.  Inspired/Stolen from
      SBCL.  Also added some more comments in places, and a generic
      SC_OFFSET macro that matches lisp/debug-info.lisp.
      bf5bad29
  32. 28 Jan, 2002 1 commit
    • pmai's avatar
      Added specialised port to NetBSD (1.5.2) on x86. Since the code-base · 4ea11535
      pmai authored
      was already cleaned up with the OpenBSD port, this doesn't require
      massive changes.
      
      Since current NetBSD is ELF-based by default, we don't make use of the
      ELF feature, or in other words:  The presence of the NetBSD feature
      implies ELF, since there is no support for non-ELF NetBSD.
      4ea11535
  33. 05 Sep, 2000 1 commit
  34. 06 May, 2000 1 commit
  35. 06 Oct, 1999 1 commit
  36. 11 Sep, 1999 1 commit