- Apr 05, 2014
-
-
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.
-
- Jul 18, 2012
-
-
Raymond Toy authored
stack space to hold the SSE2 state. (Forgot to add extra bytes for 16-byte alignment!)
-
Raymond Toy authored
-
- Jul 17, 2012
-
-
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.
-
- Jul 13, 2012
-
-
Raymond Toy authored
-
- Jul 12, 2012
-
-
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.
-
- Jan 08, 2012
-
-
Raymond Toy authored
-
- Jan 06, 2012
-
-
Raymond Toy authored
fine with gcc (on darwin and linux).
-
- Dec 22, 2011
-
-
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.
-
- Nov 04, 2011
-
-
Raymond Toy authored
-
- Sep 24, 2011
-
-
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.
-
- Dec 22, 2010
-
-
rtoy authored
Solaris/x86. There should be no functional changes for either other x86 ports or for the sparc port.
-
- Jul 19, 2010
-
-
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.
-
- Apr 01, 2010
-
-
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.
-
- Dec 24, 2008
-
-
rtoy authored
works on Darwin and Linux. No more hard-coded jmp instruction on Darwin!
-
- Dec 17, 2008
-
-
rtoy authored
function_end_breakpoint_guts needs to be two bytes long but the assembler was using a five byte version.
-
- Nov 12, 2008
-
-
rtoy authored
sse2-packed-2008-11-12).
-
- Mar 18, 2008
-
-
cshapiro authored
register as an argument to FNSTSW. Make it so.
-
- Jul 06, 2007
-
-
cshapiro authored
-
- Jun 27, 2007
-
-
cshapiro authored
pre-processor macros. Also, use the more compatible .globl rather than .global and enliminate the unused eight byte alignment macro.
-
- Jun 12, 2007
-
-
cshapiro authored
FreeBSD.
-
- Feb 06, 2005
-
-
cshapiro authored
demonstrably slower than extant compiler intrinsics or C runtime memset() implementations for blocks of memory greater than or equal to an x86 VM page.
-
- Oct 24, 2003
-
-
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.
-
- Aug 28, 2002
-
-
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.
-
- Aug 27, 2002
-
-
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.
-
- Aug 23, 2002
-
-
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.
-
- Jan 28, 2002
-
-
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.
-
- Sep 05, 2000
-
-
dtc authored
-
- May 06, 2000
-
-
dtc authored
bits as used by the long-float build. This corrects the handling of double-float-epsilon for the double-float build, and should also improve performance on some processors such as the AMD Athlon.
-
- Oct 06, 1999
-
-
dtc authored
'jmp *offset(%eax)' rather than 'jmp offset(%eax)'. Peter Van Eynde reports that the older syntax is incorrectly assembled on recent linux systems. The new syntax does work on recent FreeBSD systems.
-
- Sep 11, 1999
-
-
pw authored
(like Linux) rather than bits.
-
- Sep 09, 1999
-
-
pw authored
that this may need to be undone if someone wants to build with the aout compatibility package. From Martin Cracauer.
-
- Jun 19, 1998
-
-
dtc authored
-
- Mar 21, 1998
-
-
dtc authored
-
- Feb 21, 1998
-
-
dtc authored
-
- Feb 19, 1998
-
-
dtc authored
monitor can use the NPX (for printing float objects), and restore the state when returning. This may be unnecessary on Linux?
-
- Jan 19, 1998
-
-
dtc authored
been returning two values.
-
- Nov 29, 1997
-
-
dtc authored
-
- Nov 28, 1997
-
-
dtc authored
since purify was patched some time ago.
-
- Nov 25, 1997
-
-
dtc authored
-