Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Document why SC_EFLAGS doesn't seem to work on Solaris/x86.
Add implementation of SC_EFLAGS for Solaris/x86, but disable for now because it makes breakpoints not work for some reason.
Fix tracing for NetBSD. Function end breakpoints didn't seem to be working when tracing, for example (declaim (ftype (function (double-float) double-float) fact)) (defun fact (x) (declare (double-float x)) (if (= x 1) 1d0 (* x (fact (1- x))))) lisp/x86-lispregs.h o NetBSD has access to the eflags register lisp/x86-arch.c: o Add some debugging prints (disabled). o The stuff near line 262 about pc-9 pointing to the pushf instruction should be conditioned on SC_EFLAGS because that's what decides whether we insert the pushf instructions for single stepping.
Sync to utf16 branch, tag unicode-utf16-sync-label-2009-03-16.
Sync to CVS HEAD, tag label-2009-03-16. But don't sync Config.FreeBSD_gencgc, Config.x86_freebsd, FreeBSD-os.c, and FreeBSD-os.h. Let Alex sync those later. The result seems to work as expected on Solaris and x86/linux. Darwin (ppc or x86) untested.
Support building and running on OSX 10.4 (Tiger). lisp/Config.x86_darwin: o Add -mmacosx-version-min=10.4 so the C code can run on Tiger. lisp/Darwin.c: lisp/x86-lispregs.h: o The mcontext slot names have a prefix of "__" on 10.5, but have no prefix on 10.4. Add #define's to make the source code work on either.
Switch the FreeBSD port to use the common floating point trap handling 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.
Abstract out the access to the eflags register in a sigcontext. x86-lispregs.h: o Add SC_EFLAGS macro to access the eflags register (currently only for linux and darwin). x86-arch.c: o Use the SC_EFLAGS macro to enable/disable single-stepping. o If SC_EFLAGS is not defined, use the single-step helper stuff.
Update symbol names so we can compile without undefining __DARWIN_UNIX03.
Use sa_sigaction signal handlers on Linux. The glibc definition of sigset_t is different from the one used in the Linux kernel. This means that we cannot make assignments of sigset_t objects without corrupting memory. To work around this problem we update uc_sigmask differently on Linux than on other systems. Also, remove x87 control word updates since the x87 is setup correctly inside call_into_lisp.
Restore macro definitions needed by Linux.
Use POSIX signals on FreeBSD.
Import x86 Darwin port.
Make SC_REG expand out to an lvalue on the x86 and AMD64. Define a 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.
Add #ifndef _FOO_H_ etc. lines to all .h files. Moved a few lines in lisp.c into the correct <foo>-os.h files.
Changes from Robert Swindells to support NetBSD.
This set of revisions brings the RELENG_18 branch up to HEAD in preparation for an 18c release.
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Update for the linux port from Peter VanEynde, adds preliminary support for glibc2.
source kit 1.03.7
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|