- Oct 15, 2009
-
-
rtoy authored
use arch_support_sse2 here in case we're running an x87 core on a chip with SSE2 support.
-
- Jun 11, 2009
-
-
rtoy authored
unicode-utf16-extfmt-2009-06-11.
-
- Jan 20, 2009
-
-
agoncharov authored
-
- Jan 06, 2009
-
-
agoncharov authored
* code/exports.lisp -- Added a missing quote characher. * lisp/FreeBSD-os.c -- Fixed the switch to the SSE2 mode, in line with other OSes. * lisp/Linux-os.c -- Fixed a comment (sse != sse2)
-
- Dec 10, 2008
-
-
rtoy authored
x86-vm.lisp declares os_sigcontext_fpu_modes to return a 32-bit int.
-
- Dec 07, 2008
-
-
agoncharov authored
Added SSE2 support to `os_sigcontext_fpu_modes' and `restore_fpu' -- essentially fixing the trap handling. This includes changing the way FP state control and status words are combined in the returned value -- this is now in line with the way this return value is built on Linux and Darwin. Config.FreeBSD_gencgc: Added SSE2 support and did general maintenance/reorganization while I was there.
-
agoncharov authored
pointer will break strict-aliasing rules".
-
- Sep 16, 2008
-
-
cshapiro authored
-
- Mar 18, 2008
-
-
cshapiro authored
make direct use of. Remove the includes of these headers and fix-up several files that indirectly depended on them. * FreeBSD-os.c - add stdio.h and unistd.h includes that were implicitly depended on. Remove unused or commented system includes. * FreeBSD-os.h - remove unused includes. Include signal.h to directly provide the SIGBUS, SIGSEGV, and sub-code definitions. Redefine os_vm_address_t and os_vm_size_t in terms of standard types. Now that the sys/param.h include is gone we no longer need to undefine PAGE_SIZE. * elf.c - add includes that were implicitly depended on. * lisp.c - remove unused system includes including sys/param.h which redefines PAGE_SIZE.
-
- Jan 03, 2008
-
-
cshapiro authored
code. Rather than introduce a new FreeBSD case to the x86 sigcontext member accessor routines, collapse all of the system specific routines down to a common set of routines. * code/debug-int.lisp - Disable some Darwin-specific code to debug NULL mcontext pointers. * code/float-trap.lisp - Remove ancient FreeBSD-specific code for handling floating point signals. * code/macros.lisp, code/sap.lisp, compiler/saptran.lisp - Include the SAP-REF-LONG setter by default on the x86. * code/x86-vm.lisp - Remove operating system specific sigcontext definitions and sigcontext accessors. Define the alien sigcontext as a system area pointer. Replace the sigcontext accessors with foreign function calls that mask the complexity of the underlying sigcontext member access. * compiler/x86/float.lisp - Unconditionally define STORE-LONG-FLOAT. This function is used by the %SET-SAP-REF-LONG VOP that underlies the SAP-REF-LONG setter. * compiler/x86/sap.lisp - Unconditionally define %SET-SAP-REF-LONG. In the case where there is not a distinct LONG-FLOAT type, admit DOUBLE-FLOAT values instead. The x87 automatically widens values pushed onto stack. This mirrors the behavior of the SAP-REF-LONG VOP. * lisp/Darwin-os.c, lisp/Linux-os.c - Define functions to access sigcontext members of interest to Lisp. Delete the sc_reg function and replace its uses with os_sigcontext_reg which is more suitably typed. * lisp/FreeBSD-os.c - Define functions to access sigcontext members of interest to Lisp. We need to be careful about the SSE and non-SSE cases for retrieving x87 registers from the saved machine state. Define a low-level SIGFPE handler to intercept floating point traps and restore the cleared status word bits based on the signal code. Get rid of sc_reg for the reasons noted above. * lisp/Darwin-os.h, lisp/FreeBSD-os.h - Declare the restore_fpu function and define a specialized RESTORE_FPU macro. Remove the sc_reg prototype. * lisp/Linux-os.h - Remove the sc_reg prototype. * lisp/os.h - Add prototypes for the new os_sigcontext functions. * lisp/x86-lispregs.h - Redefine SC_REG and SC_PC to expand out to the new os_sigcontext functions. Redfine SC_SP to expand out to SC_REG. Eliminate all platform-specific defintions of SC_PC and SC_SP.
-
- Dec 06, 2007
-
-
cshapiro authored
* Update the Config file to detect the GCC version at build time and use -iquote instead of -I- if we are not using GCC 2 or 3. This silences the unsilenceable deprecation message emitted by GCC 4. * Check the FreeBSD version at compile time and switch the protection violation signal to SIGSEGV if we are on a version of FreeBSD 7 that will deliver a SIGSEGV instead of a SIGBUS for access errors. * Install sigbus_handler to handle whatever UNIX signal the macro PROTECTION_VIOLATION_SIGNAL expands to. Get rid of the useless sigsegv_handler. Add the PROTECTION_VIOLATION_CODE macro so we do not have to conditionalize the check that guards the write barrier code.
-
- Jul 31, 2007
-
-
cshapiro authored
errno accessors shared by all ports. Change the definition of UNIX:UNIX-ERRNO so that it always calls down to an accessor function.
-
- Jul 30, 2007
- Jul 15, 2007
- Jun 12, 2007
-
-
cshapiro authored
-
- Jun 10, 2007
-
-
cshapiro authored
-
- Nov 07, 2006
-
-
cshapiro authored
reg_NARGS macro on these targets and use SC_REG to replace open-coded assignments to platform specific sigcontext members in interrupt.c and os-common.c. This code could be simplified further by merging the x86 and AMD64 cases into the general case.
-
- May 30, 2006
-
-
fgilham authored
executable.
-
- Sep 15, 2005
-
-
rtoy authored
.indent.pro.
-
- Mar 23, 2003
-
-
gerd authored
feature :stack-checking because it's not implemented for other systems/architectures yet. It is currently known to work on FreeBSD 4.8-RC/x86 and Debian 2.2.20/x86. * bootfiles/18e/boot3.lisp: New boot file, well, only a description of the boot procedure since no boot file is needed. * lisp/x86-validate.h (SIGNAL_STACK_START, SIGNAL_STACK_SIZE) [__FreeBSD__, __linux__]: New defines. (CONTROL_STACK_SIZE) {__FreeBSD__, __linux__]: Adjust for signal stack. * lisp/validate.c (validate) [RED_ZONE_HIT]: Call os_guard_control_stack. Some cleanup. * lisp/os.h (BOTH_ZONES, YELLOW_ZONE, RED_ZONE): New enums. Add function prototypes. * lisp/interrupt.c (interrupt_install_low_level_handler) [RED_ZONE_HIT]: Deliver protection violations on a dedicated signal stack. * lisp/os-common.c (os_stack_grows_down_1, os_stack_grows_down): New functions. (guard_zones, control_stack_zone, os_guard_control_stack) (os_control_stack_overflow) [RED_ZONE_HIT]: New functions. (os_control_stack_overflow) [!RED_ZONE_HIT]: Dummy function. * lisp/Linux-os.c (sigsegv_handler) [RED_ZONE_HIT]: Handle control stack overflows. * lisp/FreeBSD-os.c: General cleansing. (sigbus_handler) [RED_ZONE_HIT]: Handle control stack overflows. * lisp/FreeBSD-os.h (PROTECTION_VIOLATION_SIGNAL): New define. * lisp/Linux-os.h (PROTECTION_VIOLATION_SIGNAL): New define. * compiler/x86/system.lisp (lisp::%scrub-control-stack): Change defknown from sys:scrub-control-stack. (%scrub-control-stack): Rename VOP. * code/lispinit.lisp (os-guard-control-stack) [#+stack-checking]: Define alien os_guard_control_stack. (%scrub-control-stack) [#+x86]: New function. (scrub-control-stack) [#+x86]: Call %scrub-control-stack, call os-guard-control-stack if #+stack-checking. * code/interr.lisp (yellow-zone-hit, red-zone-hit) [#+stack-checking]: New functions. * code/error.lisp (stack-overflow) [#+stack-checking]: New condition. * compiler/generic/new-genesis.lisp (finish-symbols) [#+stack-checking]: Add symbols for control stack checking. * compiler/x86/parms.lisp (static-symbols): Likewise.
-
- Aug 28, 2002
-
-
moore authored
Fix foregin object braindamage noted by Pierre Mai.
-
- 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.
-
- Mar 13, 2002
-
-
moore authored
Support for dynamic loading in FreeBSD 4.0 and later. This involves moving the static space up, so a cross-compile is required to bootstrap these changes.
-
- Oct 24, 2000
-
-
dtc authored
of the dynamic space. DYNAMIC_SPACE_SIZE now defines the maximum size, and when defined DEFAULT_DYNAMIC_SPACE_SIZE gives the default. o Increase the maximum dynamic space size for Linux x86 to 1.625GB, with the default remaining at 512MB. o Define the default dynamic space size for FreeBSD x86 to also be 512MB, with a maximum of 2GB.
-
- Nov 29, 1999
-
-
dtc authored
-
- Aug 25, 1999
-
-
dtc authored
table size by 25%, and move to a fixed layout of the page flags to better support future atomic operations for threaded code.
-
- Feb 25, 1999
-
-
pw authored
-
- Nov 25, 1997
-
-
dtc authored
-
- Jan 21, 1997
-
-
ram authored
-