/[cmucl]/src/lisp/x86-arch.c
ViewVC logotype

Log of /src/lisp/x86-arch.c

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.43 - (view) (annotate) - [select for diffs]
Sun Dec 26 16:04:43 2010 UTC (3 years, 3 months ago) by rswindells
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, snapshot-2011-01, snapshot-2011-02, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09
Changes since 1.42: +2 -2 lines
Diff to previous 1.42
Add a test for whether the operating system supports use of the SSE2
registers. The test is a stub on everything except NetBSD for now.

Revision 1.42 - (view) (annotate) - [select for diffs]
Thu Dec 23 22:55:31 2010 UTC (3 years, 3 months ago) by rtoy
Branch: MAIN
Changes since 1.41: +4 -4 lines
Diff to previous 1.41
Fix typo.

Revision 1.41 - (view) (annotate) - [select for diffs]
Thu Dec 23 22:23:48 2010 UTC (3 years, 3 months ago) by rtoy
Branch: MAIN
Changes since 1.40: +8 -4 lines
Diff to previous 1.40
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.

Revision 1.40 - (view) (annotate) - [select for diffs]
Wed Dec 22 02:12:52 2010 UTC (3 years, 3 months ago) by rtoy
Branch: MAIN
CVS Tags: cross-sol-x86-merged
Changes since 1.39: +46 -1 lines
Diff to previous 1.39
Merge changes from cross-sol-x86-2010-12-20 which adds support for
Solaris/x86.  There should be no functional changes for either other
x86 ports or for the sparc port.

Revision 1.39.24.1 - (view) (annotate) - [select for diffs]
Tue Dec 14 21:27:13 2010 UTC (3 years, 4 months ago) by rtoy
Branch: cross-sol-x86-branch
CVS Tags: cross-sol-x86-2010-12-20
Changes since 1.39: +46 -1 lines
Diff to previous 1.39 , to next main 1.43
Sun C miscompiles the inline assembly for the cpuid instruction, so on
Solaris, use the /dev/cpu/self/cpuid device to get the cpuid data that
we need.

Revision 1.36.4.2 - (view) (annotate) - [select for diffs]
Wed Mar 18 15:37:29 2009 UTC (5 years ago) by rtoy
Branch: unicode-utf16-extfmt-branch
CVS Tags: unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-utf16-extfmt-2009-03-27, unicode-utf16-extfmt-2009-06-11
Changes since 1.36.4.1: +14 -1 lines
Diff to previous 1.36.4.1 , to branch point 1.36 , to next main 1.43
Sync to utf16 branch, tag unicode-utf16-sync-label-2009-03-16.

Revision 1.36.2.2 - (view) (annotate) - [select for diffs]
Mon Mar 16 21:10:56 2009 UTC (5 years, 1 month ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-utf16-char-support-2009-03-25, unicode-utf16-char-support-2009-03-26, unicode-utf16-sync-label-2009-03-16
Changes since 1.36.2.1: +14 -1 lines
Diff to previous 1.36.2.1 , to branch point 1.36 , to next main 1.43
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.

Revision 1.39 - (view) (annotate) - [select for diffs]
Tue Jan 6 18:18:43 2009 UTC (5 years, 3 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_19f, RELEASE_20a, RELEASE_20b, amd64-dd-start, cross-sol-x86-base, cross-sparc-branch-base, intl-2-branch-base, intl-branch-2010-03-18-1300, intl-branch-base, intl-branch-working-2010-02-11-1000, intl-branch-working-2010-02-19-1000, label-2009-03-16, label-2009-03-25, merge-with-19f, merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16, post-merge-intl-branch, pre-merge-intl-branch, release-19f-base, release-19f-pre1, release-20a-base, release-20a-pre1, release-20b-pre1, release-20b-pre2, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03, snapshot-2010-04, snapshot-2010-05, snapshot-2010-06, snapshot-2010-07, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base, unicode-string-buffer-base, unicode-string-buffer-impl-base
Branch point for: RELEASE-19F-BRANCH, RELEASE-20A-BRANCH, RELEASE-20B-BRANCH, amd64-dd-branch, cross-sol-x86-branch, cross-sparc-branch, intl-2-branch, intl-branch, portable-clx-branch, sparc-tramp-assem-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch
Changes since 1.38: +15 -2 lines
Diff to previous 1.38
Add cpuid function.

Revision 1.36.4.1 - (view) (annotate) - [select for diffs]
Fri Dec 19 01:31:34 2008 UTC (5 years, 3 months ago) by rtoy
Branch: unicode-utf16-extfmt-branch
CVS Tags: unicode-utf16-extfmts-sync-2008-12
Changes since 1.36: +42 -5 lines
Diff to previous 1.36
Merge changes from utf16 branch to update to snapshot 2008-12.

Revision 1.36.2.1 - (view) (annotate) - [select for diffs]
Thu Dec 18 21:50:19 2008 UTC (5 years, 3 months ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-utf16-sync-2008-12
Changes since 1.36: +42 -5 lines
Diff to previous 1.36
Merge Snapshot 2008-12 to this branch.  Some tweaks needed in
boot-2008-05-cross-unicode-x86.lisp and the Config files.  FreeBSD and
Darwin/x86 untested, but Linux and Solaris build ok.

Revision 1.38 - (view) (annotate) - [select for diffs]
Sun Dec 7 02:33:55 2008 UTC (5 years, 4 months ago) by agoncharov
Branch: MAIN
CVS Tags: snapshot-2008-12
Changes since 1.37: +1 -3 lines
Diff to previous 1.37
Instead of defining DPRINTF in every X-os.c file, do it once, in os.h

Revision 1.37 - (view) (annotate) - [select for diffs]
Wed Nov 12 15:04:25 2008 UTC (5 years, 5 months ago) by rtoy
Branch: MAIN
CVS Tags: merge-sse2-packed
Changes since 1.36: +42 -3 lines
Diff to previous 1.36
Merge in SSE2 changes from sse2-packed-branch (tag
sse2-packed-2008-11-12).

Revision 1.36.6.3 - (view) (annotate) - [select for diffs]
Sun Sep 28 12:44:22 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
CVS Tags: sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base
Branch point for: sse2-packed-branch
Changes since 1.36.6.2: +2 -4 lines
Diff to previous 1.36.6.2 , to branch point 1.36 , to next main 1.43
Use Carl's idea of doing the SSE2 stuff in c-call instead of in
call_into_c.  This makes x86-assem.S not depend on sse2 in any way.

compiler/x86/sse2-c-call.lisp:
o When calling call_into_c directly, move the float result to xmm0.
o Remove sse2 conditionalization since this file is for sse2

lisp/x86-arch.c:
o have_sse2 has been removed

lisp/x86-assem.S:
o Remove have_sse2
o Don't move float result into xmm0.  Let the lisp code deal with it.

Revision 1.36.6.2 - (view) (annotate) - [select for diffs]
Sat Sep 27 13:25:39 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
Changes since 1.36.6.1: +20 -3 lines
Diff to previous 1.36.6.1 , to branch point 1.36
Some clean up of code, and porting to Darwin/x86.

lisp/Linux-os.c:
o Comment out the include of asm/sigcontext.h.  This causes multiple
  definitions on a Suse 10.3 machine.
o Move the os_support_sse2 stuff to x86-arch.c.

lisp/x86-arch.c:
o Add inline assembly for the cpuid instruction, so we don't have to
  depend on the OS to define it in some random include file.
o Add arch_support_sse2 to tell us if the machine has sse2 support.

lisp/x86-assem.S:
o Clean up definition of have_sse2 to work on both Linux and Darwin.
o Fix typo where we were skipping over fldz's in call_into_lisp.  We
  still need that for now.

Revision 1.36.6.1 - (view) (annotate) - [select for diffs]
Fri Sep 26 21:47:09 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
Changes since 1.36: +27 -3 lines
Diff to previous 1.36
Initial support for x87 and sse2 cores with one binary.  More support
still needed, though.

lisp/Linux-os.c:
o Add os_support_sse2 function to tell if the chip supports SSE2 or
  not.

lisp/arch.h:
o Change declaration for arch_init to match Linux implementation.
  (Eventually, we'll get rid of this.)

lisp/lisp.c:
o Add fpu_mode variable
o Recognize -fpu switch to allow the user to select the desired FPU
  mode.
o Call arch_init with the fpu mode.

lisp/x86-arch.c:
o Use the fpu mode to select the name of the core file.

lisp/x86-assem.S:
o Add have_sse2 global variable.
o If have_sse2 is set, we copy the float result in ST(0) to XMM0.

Revision 1.36 - (view) (annotate) - [select for diffs]
Wed Mar 19 09:17:13 2008 UTC (6 years ago) by cshapiro
Branch: MAIN
CVS Tags: snapshot-2008-04, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, snapshot-2008-10, snapshot-2008-11, sse2-base, unicode-utf16-base, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-string-support, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09, unicode-utf16-sync-2008-11
Branch point for: sse2-branch, unicode-utf16-branch, unicode-utf16-extfmt-branch
Changes since 1.35: +2 -2 lines
Diff to previous 1.35
Always use prototype style function definitions.  Consistently use the
void keyword to specify empty parameter lists.

Revision 1.35 - (view) (annotate) - [select for diffs]
Mon Jan 28 18:21:04 2008 UTC (6 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, snapshot-2008-02, snapshot-2008-03
Branch point for: release-19e-branch
Changes since 1.34: +17 -1 lines
Diff to previous 1.34
Add new interface to ieee754_rem_pio2.  No longer need to pass in an
array. The new function returns 2 new output values.

code/irrat.lisp:
o Rename the original %ieee754-rem-pi/2 to %%ieee754-rem-pi-2.
o Define the new %ieee754-rem-pi/2 function.  This returns the output
  as two output values instead of an array.
o Use the new function.  We should have wrapped the original with
  without-gcing, but we don't have to anymore.

lisp/ppc-arch.c:
lisp/x86-arch.c:
o Implement the new C interface to __ieee754_rem_pio2

lisp/Config.linux_gencgc:
o Use -ffloat-store when compiling e_rem_pio2.c and k_rem_pio2.c, just
  to be sure.

Revision 1.34 - (view) (annotate) - [select for diffs]
Sat Dec 15 15:26:29 2007 UTC (6 years, 4 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2008-01
Changes since 1.33: +5 -11 lines
Diff to previous 1.33
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.

Revision 1.33 - (view) (annotate) - [select for diffs]
Sat Dec 15 14:47:28 2007 UTC (6 years, 4 months ago) by rtoy
Branch: MAIN
Changes since 1.32: +24 -7 lines
Diff to previous 1.32
Tracing with :encapsulate NIL works on Darwin now.  There are some
issues like why the mcontext slot is 0 in the sigcontext from a
function end breakpoint.  This works around that problem for now.

lisp/x86-arch.c:
o Add documentation on how arch_do_displaced_inst works.
o Darwin has the eflags register in the sigcontext so use that to
  enable and disable single-stepping using the eflags slot.  This is
  how Linux works too.  This change makes function start breakpoints
  work.

code/debug-int.lisp:
o In FIND-ESCAPED-FRAME, make sure the mcontext slot is not null (0)
  before we try to grab the cfp slot from it.  This works around an
  issue where the mcontext slot is 0 on Darwin.

code/ntrace.lisp:
o Make *TRACE-ENCAPSULATE-DEFAULT* be :default again.

Revision 1.32 - (view) (annotate) - [select for diffs]
Fri Dec 14 12:19:59 2007 UTC (6 years, 4 months ago) by cshapiro
Branch: MAIN
Changes since 1.31: +3 -1 lines
Diff to previous 1.31
Reintroduce code to restore the x87 control word state from the
sigcontext before calling back into Lisp.  The rounding mode is always
set correctly when we reenter Lisp through call_into_lisp.  We now
ensure that the trap bits enabled by the user are also preserved.

Revision 1.31 - (view) (annotate) - [select for diffs]
Mon Dec 3 18:02:45 2007 UTC (6 years, 4 months ago) by pwerkowski
Branch: MAIN
CVS Tags: snapshot-2007-12
Changes since 1.30: +2 -2 lines
Diff to previous 1.30
Fix bogus cast noticed by FreeBSD 7 GCC compiler

Revision 1.30 - (view) (annotate) - [select for diffs]
Fri Nov 16 06:52:25 2007 UTC (6 years, 5 months ago) by cshapiro
Branch: MAIN
Changes since 1.29: +1 -3 lines
Diff to previous 1.29
Remove unused FIXNUM_VALUE definitions.  Replace actual uses of
this macro in with fixnum_value which is defined in lisp.h.

Revision 1.29 - (view) (annotate) - [select for diffs]
Fri Nov 16 05:04:09 2007 UTC (6 years, 5 months ago) by cshapiro
Branch: MAIN
Changes since 1.28: +1 -3 lines
Diff to previous 1.28
The SAVE_CONTEXT macro expands to meaningful code on the SPARC and is
a no-op on all other architectures.  Remove SAVE_CONTEXT references in
places that are not touched by a SPARC target.

Revision 1.28 - (view) (annotate) - [select for diffs]
Wed Jul 25 10:23:54 2007 UTC (6 years, 8 months ago) by cshapiro
Branch: MAIN
CVS Tags: pre-telent-clx, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11
Changes since 1.27: +7 -27 lines
Diff to previous 1.27
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.

Revision 1.27 - (view) (annotate) - [select for diffs]
Sun Jul 15 09:24:57 2007 UTC (6 years, 9 months ago) by cshapiro
Branch: MAIN
Changes since 1.26: +3 -3 lines
Diff to previous 1.26
Use POSIX signals on FreeBSD.

Revision 1.26 - (view) (annotate) - [select for diffs]
Fri Jul 6 08:04:39 2007 UTC (6 years, 9 months ago) by cshapiro
Branch: MAIN
Changes since 1.25: +4 -4 lines
Diff to previous 1.25
Import x86 Darwin port.

Revision 1.23.2.1 - (view) (annotate) - [select for diffs]
Mon Dec 19 01:10:16 2005 UTC (8 years, 3 months ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2005-12-17, ppc_gencgc_snap_2006-01-06
Changes since 1.23: +224 -200 lines
Diff to previous 1.23 , to next main 1.43
Merge code from main branch of 2005-12-17 to ppc gencgc branch.  Still
doesn't work of course.

Revision 1.25 - (view) (annotate) - [select for diffs]
Thu Oct 6 21:52:53 2005 UTC (8 years, 6 months ago) by rtoy
Branch: MAIN
CVS Tags: double-double-array-base, double-double-array-checkpoint, double-double-base, double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-irrat-end, double-double-irrat-start, double-double-reader-base, double-double-reader-checkpoint-1, double-double-sparc-checkpoint-1, release-19c, release-19c-base, release-19c-pre1, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12, snapshot-2006-01, snapshot-2006-02, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06, snapshot-2006-07, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12, snapshot-2007-01, snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05, snapshot-2007-06, snapshot-2007-07
Branch point for: double-double-array-branch, double-double-branch, double-double-reader-branch, release-19c-branch, release-19d-branch
Changes since 1.24: +4 -4 lines
Diff to previous 1.24
Remove some (char *) casts because gcc 4.0.1 gives an error about
"invalid lvalue".  From Rex Dieter, cmucl-imp, 2005/10/06.

Revision 1.24 - (view) (annotate) - [select for diffs]
Thu Sep 15 18:26:53 2005 UTC (8 years, 7 months ago) by rtoy
Branch: MAIN
Changes since 1.23: +224 -200 lines
Diff to previous 1.23
Indent all source files using GNU indent using the config in
.indent.pro.

Revision 1.23 - (view) (annotate) - [select for diffs]
Thu Jul 8 03:31:15 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: ppc_gencgc_snap_2005-05-14, prm-before-macosx-merge-tag, release-19b-base, release-19b-pre1, release-19b-pre2, snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02, snapshot-2005-03, snapshot-2005-04, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09
Branch point for: ppc_gencgc_branch, release-19b-branch
Changes since 1.22: +3 -3 lines
Diff to previous 1.22
More compiler warning fixes:

* gencgc.c:
  o fixup up fprintf warnings
  o generation_bytes_allocated() defined only when GC_ASSERTIONS is
    #defined.
* x86-arch.c: fixup printf warnings.

Revision 1.22 - (view) (annotate) - [select for diffs]
Wed Jul 7 15:03:12 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.21: +23 -23 lines
Diff to previous 1.21
Changes from Robert Swindells to support NetBSD.

Revision 1.21 - (view) (annotate) - [select for diffs]
Tue May 18 21:45:30 2004 UTC (9 years, 10 months ago) by cwang
Branch: MAIN
CVS Tags: snapshot-2004-06, snapshot-2004-07
Changes since 1.20: +2 -2 lines
Diff to previous 1.20
typo

Revision 1.20 - (view) (annotate) - [select for diffs]
Fri Oct 24 04:29:14 2003 UTC (10 years, 5 months ago) by toy
Branch: MAIN
CVS Tags: amd64-merge-start, mod-arith-base, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, snapshot-2003-11, snapshot-2003-12, snapshot-2004-04, snapshot-2004-05
Branch point for: mod-arith-branch, release-19a-branch
Changes since 1.19: +13 -1 lines
Diff to previous 1.19
Add support for x86 heap-overflow checking.

	* 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.

Revision 1.19.10.1 - (view) (annotate) - [select for diffs]
Wed Sep 3 11:32:05 2003 UTC (10 years, 7 months ago) by gerd
Branch: lisp-executable
Changes since 1.19: +4 -4 lines
Diff to previous 1.19 , to next main 1.43
Fred Gilham's Lisp executable support for CMUCL.

Revision 1.19 - (view) (annotate) - [select for diffs]
Sat Nov 2 23:47:28 2002 UTC (11 years, 5 months ago) by toy
Branch: MAIN
CVS Tags: cold-pcl-base, dynamic-extent-base, lisp-executable-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2, remove_negative_zero_not_zero, snapshot-2003-10, sparc_gencgc, sparc_gencgc_merge
Branch point for: cold-pcl, dynamic-extent, lisp-executable, release-18e-branch, sparc_gencgc_branch
Changes since 1.18: +7 -6 lines
Diff to previous 1.18
Use LinkageEntrySize from internals.h instead of LINKAGE_ENTRY_SIZE.

Revision 1.18 - (view) (annotate) - [select for diffs]
Wed Aug 28 13:29:25 2002 UTC (11 years, 7 months ago) by pmai
Branch: MAIN
CVS Tags: UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.17: +3 -2 lines
Diff to previous 1.17
A number of smallish changes to the new linkage-table code:
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.

Revision 1.17 - (view) (annotate) - [select for diffs]
Tue Aug 27 22:18:33 2002 UTC (11 years, 7 months ago) by moore
Branch: MAIN
CVS Tags: LINKAGE_TABLE
Changes since 1.16: +56 -1 lines
Diff to previous 1.16
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.

Revision 1.2.2.4 - (view) (annotate) - [select for diffs]
Sat Mar 23 18:51:10 2002 UTC (12 years ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18d
Changes since 1.2.2.3: +114 -103 lines
Diff to previous 1.2.2.3 , to branch point 1.2 , to next main 1.43
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation
for release tagging 18d.

Revision 1.16 - (view) (annotate) - [select for diffs]
Mon Jan 28 20:17:12 2002 UTC (12 years, 2 months ago) by pmai
Branch: MAIN
CVS Tags: PRE_LINKAGE_TABLE
Changes since 1.15: +3 -3 lines
Diff to previous 1.15
Added specialised port to NetBSD (1.5.2) on x86.  Since the code-base
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.

Revision 1.15 - (view) (annotate) - [select for diffs]
Thu Dec 6 19:15:46 2001 UTC (12 years, 4 months ago) by pmai
Branch: MAIN
Changes since 1.14: +3 -3 lines
Diff to previous 1.14
Added specialised port to OpenBSD (2.9).  Many parts of the original
code which were previously conditionalized on :FreeBSD, are now
conditionalized on :BSD instead, with the :BSD feature now implying a
4.4BSD(lite2) derived OS.  This should make future BSD-ports easier.
FreeBSD and OpenBSD are differentiated by having either :FreeBSD or
:OpenBSD on the features list.

Currently the OpenBSD port does not have working ELF support, because
OpenBSD 2.9 is still non-ELF by default.  So don't put ELF on the
features list when building for OpenBSD, or fix the code to work
correctly in this case instead.

Revision 1.14 - (view) (annotate) - [select for diffs]
Fri Oct 27 19:25:56 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.13: +2 -4 lines
Diff to previous 1.13
Cleanup compiler warnings.

Revision 1.13 - (view) (annotate) - [select for diffs]
Sat Oct 21 12:42:46 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.12: +3 -2 lines
Diff to previous 1.12
Take more care when restoring the FPU control word for linux, as there
may not be a fpstate in some rare cases.

Revision 1.2.2.3 - (view) (annotate) - [select for diffs]
Sat Oct 21 12:42:34 2000 UTC (13 years, 5 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18c
Changes since 1.2.2.2: +3 -2 lines
Diff to previous 1.2.2.2 , to branch point 1.2
Take more care when restoring the FPU control word for linux, as there
may not be a fpstate in some rare cases.

Revision 1.12 - (view) (annotate) - [select for diffs]
Tue Sep 5 08:51:52 2000 UTC (13 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.11: +113 -100 lines
Diff to previous 1.11
Minor source cleanups.

Revision 1.2.2.2 - (view) (annotate) - [select for diffs]
Tue May 23 16:38:32 2000 UTC (13 years, 10 months ago) by pw
Branch: RELENG_18
Changes since 1.2.2.1: +9 -1 lines
Diff to previous 1.2.2.1 , to branch point 1.2
This set of revisions brings the RELENG_18 branch up to HEAD in preparation
for an 18c release.

Revision 1.11 - (view) (annotate) - [select for diffs]
Thu Nov 11 16:14:16 1999 UTC (14 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.10: +9 -1 lines
Diff to previous 1.10
For Linux i386, restore the FPU control word in the SIGTRAP handler,
otherwise the set of masked exceptions may be lost. Further, when
restoring the FPU control word restore the rounding mode to its
required default of round-to-nearest.

Revision 1.2.2.1 - (view) (annotate) - [select for diffs]
Tue Jun 23 11:25:09 1998 UTC (15 years, 9 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18b
Changes since 1.2: +100 -109 lines
Diff to previous 1.2
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.

Revision 1.10 - (view) (annotate) - [select for diffs]
Thu Feb 19 18:58:20 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.9: +5 -1 lines
Diff to previous 1.9
The FPU state save around the primitive halt signal handler has been
confirmed unnecessary on Linux and is now only used on FreeBSD.

Revision 1.9 - (view) (annotate) - [select for diffs]
Thu Feb 19 15:19:11 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.8: +11 -6 lines
Diff to previous 1.8
Save and reset the NPX state when a primitive halt is signalled so the
monitor can use the NPX (for printing float objects), and restore the
state when returning. This may be unnecessary on Linux?

Revision 1.8 - (view) (annotate) - [select for diffs]
Sun Nov 30 12:04:37 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.7: +1 -26 lines
Diff to previous 1.7
Remove the unused arch_get_bad_addr function.

Revision 1.7 - (view) (annotate) - [select for diffs]
Tue Nov 25 16:30:47 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.6: +1 -1 lines
Diff to previous 1.6
Fix the header.

Revision 1.6 - (view) (annotate) - [select for diffs]
Tue Nov 25 15:53:31 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.5: +79 -64 lines
Diff to previous 1.5
Breakpoint and single stepping support for the x86 port. This has been
tested in the experimental code and works on both FreeBSD and Linux.
Plus a few improvements to the interrupt safety for the x86 port.

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri Nov 21 12:19:21 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.4: +0 -3 lines
Diff to previous 1.4
Don't re-enable interrupts in the sigtrap handler, but delay it until
the breakpoint functions have allocated the context SAP object so this
allocation is performed without interrupt.

Revision 1.4 - (view) (annotate) - [select for diffs]
Tue Nov 18 16:56:02 1997 UTC (16 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.3: +3 -10 lines
Diff to previous 1.3
Implement a pseudo-atomic macro for the x86 backend.

Revision 1.3 - (view) (annotate) - [select for diffs]
Tue Nov 4 09:11:22 1997 UTC (16 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.2: +2 -0 lines
Diff to previous 1.2
Merge in changes to the x86 backend from the gencgc branch, allowing
common binaries to be run on both:

* The immediate-stack storage class has been removed, this is
unnecessary as the descriptor-stack SC can be used. It may have once
been part of some GC stragety to reduce the number of stack slots that
needed to be noted for a GC.

* The object allocation has been abstracted and cleaned up. This
should produce slightly faster smaller code with CGC, and can be
compiled to support inline allocation with GENCGC.  CGC compiled code
will run under GENCGC, and GENCGC binaries that don't use inline
allocation will run under CGC.

* A random hash is now placed in the unused symbol object slot (the
symbol-hash slot). This saves flushing the info cache at each GC, and
may have other uses for symbol based hash tables. Should help MP
safety.

* Common set of static symbols used by both CGC and GENCGC.

* Corrections to the stack-ref VOP; now returns lisp objects not
unsigned numbers. Required some patches to debug-int.

* Inline unsigned/signed byte 32 to bignum allocation enabled.

* Support for the x86 xadd instruction applied to instance slot and
symbol values - may be handy for some MP code.

* Bump up the FASL file version from 1 to 2.

Revision 1.2 - (view) (annotate) - [select for diffs]
Mon Mar 10 11:30:12 1997 UTC (17 years, 1 month ago) by pw
Branch: MAIN
CVS Tags: RELEASE_18a
Branch point for: RELENG_18
Changes since 1.1: +4 -0 lines
Diff to previous 1.1
Peter's fix for FP control word.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Jan 21 00:28:13 1997 UTC (17 years, 2 months ago) by ram
Branch: MAIN
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.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5