/[cmucl]/src/code/float-trap.lisp
ViewVC logotype

Log of /src/code/float-trap.lisp

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1.39 - (view) (annotate) - [select for diffs]
Wed Dec 22 02:12:51 2010 UTC (3 years, 3 months ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, cross-sol-x86-merged, snapshot-2011-01, snapshot-2011-02, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09
Changes since 1.38: +8 -1 lines
Diff to previous 1.38
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.38.8.1 - (view) (annotate) - [select for diffs]
Mon Dec 20 22:08:45 2010 UTC (3 years, 3 months ago) by rtoy
Branch: cross-sol-x86-branch
CVS Tags: cross-sol-x86-2010-12-20
Changes since 1.38: +8 -1 lines
Diff to previous 1.38 , to next main 1.39
It looks like the sigcontext on solaris/x86 doesn't store the entire
x87 state, so just signal a general arithemtic error instead of an
error about a SIGFPE but no exceptions.

Revision 1.38 - (view) (annotate) - [select for diffs]
Tue Apr 20 17:57:44 2010 UTC (3 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_20b, cross-sol-x86-base, cross-sparc-branch-base, release-20b-pre1, release-20b-pre2, 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
Branch point for: RELEASE-20B-BRANCH, cross-sol-x86-branch, cross-sparc-branch, sparc-tramp-assem-branch
Changes since 1.37: +4 -4 lines
Diff to previous 1.37
Change uses of _"foo" to (intl:gettext "foo").  This is because slime
may get confused with source locations if the reader macros are
installed.

Revision 1.37 - (view) (annotate) - [select for diffs]
Mon Apr 19 02:18:03 2010 UTC (4 years ago) by rtoy
Branch: MAIN
Changes since 1.36: +5 -5 lines
Diff to previous 1.36
Remove _N"" reader macro from docstrings when possible.

Revision 1.36 - (view) (annotate) - [select for diffs]
Fri Mar 19 15:18:59 2010 UTC (4 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: post-merge-intl-branch, snapshot-2010-04
Changes since 1.35: +10 -8 lines
Diff to previous 1.35
Merge intl-branch 2010-03-18 to HEAD.  To build, you need to use
boot-2010-02-1 as the bootstrap file.  You should probably also use
the new -P option for build.sh to generate and update the po files
while building.

Revision 1.35.12.1 - (view) (annotate) - [select for diffs]
Thu Feb 25 20:34:49 2010 UTC (4 years, 1 month ago) by rtoy
Branch: intl-2-branch
Changes since 1.35: +10 -8 lines
Diff to previous 1.35 , to next main 1.39
Restart internalization work.  This new branch starts with code from
the intl-branch on date 2010-02-12 18:00:00+0500.  This version works
and

LANG=en@piglatin bin/lisp

works (once the piglatin translation is added).

Revision 1.35.10.2 - (view) (annotate) - [select for diffs]
Tue Feb 9 18:41:59 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-2010-03-18-1300, intl-branch-working-2010-02-11-1000, intl-branch-working-2010-02-19-1000
Changes since 1.35.10.1: +8 -8 lines
Diff to previous 1.35.10.1 , to branch point 1.35 , to next main 1.39
Mark translatable strings; update cmucl.pot and ko/cmucl.po
accordingly.

Revision 1.35.10.1 - (view) (annotate) - [select for diffs]
Mon Feb 8 17:15:47 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
Changes since 1.35: +3 -1 lines
Diff to previous 1.35
Add (intl:textdomain "cmucl") to the files to set the textdomain.

Revision 1.35.8.1 - (view) (annotate) - [select for diffs]
Wed Nov 4 03:45:23 2009 UTC (4 years, 5 months ago) by rtoy
Branch: amd64-dd-branch
Changes since 1.35: +3 -3 lines
Diff to previous 1.35 , to next main 1.39
Make amd64 look more like current x86.

code/amd64-vm.lisp:
o Remove all of the sigcontext structure definitions and make it be
  just an sap.
o Instead of direct access to sigcontext structures, call out to C, as
  is done on x86.

code/float-trap.lisp:
o Update floating-point-modes stuff to work for x86 and amd64.

lisp/Linux-os.c:
o Add missing os_sigcontext_fpu_reg and os_sigcontext_fpu_modes for
  amd64, just like on x86.

Revision 1.35 - (view) (annotate) - [select for diffs]
Mon Jul 6 13:29:57 2009 UTC (4 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_20a, amd64-dd-start, intl-2-branch-base, intl-branch-base, pre-merge-intl-branch, release-20a-base, release-20a-pre1, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03, unicode-string-buffer-base, unicode-string-buffer-impl-base
Branch point for: RELEASE-20A-BRANCH, amd64-dd-branch, intl-2-branch, intl-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch
Changes since 1.34: +10 -4 lines
Diff to previous 1.34
Fix precision bug.  On x87 builds, the precision was set to 64 bits
instead of 53 bits.  This causes the incorrect result (found by Paul):

(ffloor 1.1605184953130993d26 12622780800d0) ->

9.193841782573768d15
-8.05306368d8

The correct result should have a remainder of zero.

Force the precision to be 53 bits (double-float).

Revision 1.32.6.2 - (view) (annotate) - [select for diffs]
Wed Mar 18 15:37:28 2009 UTC (5 years, 1 month 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.32.6.1: +22 -1 lines
Diff to previous 1.32.6.1 , to branch point 1.32 , to next main 1.39
Sync to utf16 branch, tag unicode-utf16-sync-label-2009-03-16.

Revision 1.32.4.2 - (view) (annotate) - [select for diffs]
Mon Mar 16 21:10:55 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.32.4.1: +22 -1 lines
Diff to previous 1.32.4.1 , to branch point 1.32 , to next main 1.39
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.34 - (view) (annotate) - [select for diffs]
Mon Jan 5 22:26:26 2009 UTC (5 years, 3 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_19f, 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, release-19f-base, release-19f-pre1, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, snapshot-2009-07
Branch point for: RELEASE-19F-BRANCH, portable-clx-branch
Changes since 1.33: +23 -2 lines
Diff to previous 1.33
Fix for handling arithmetic errors with x87.

Use bootstrap-2009-01-1.lisp to bootstrap this change.

code/float-trap.lisp:
o FLOATING-POINT-MODES for :X87 needs to massage the results into the
  expected format (SSE2 MXCSR order).
o Update for changed VOP names too.

compiler/x86/float.lisp:
o Rename the floating-point-modes and set-floating-point-modes VOPS to
  x87-floating-point-modes and set-x87-floating-point-modes.  Change
  the translations accordingly too.

compiler/x86/parms.lisp:
o The float property bytes have been updated to match the SSE2 MXCSR
  register for both SSE2 and X87 builds because the code assumes SSE2
  format.

lisp/Linux-os.c:
o Don't OR in the SSE2 modes if we're not running an SSE2 build.
  Doing this can erroneously mask out exceptions because the Lisp code
  didn't set up the sse2 modes.  (This happens if you select the x87
  core on a chip that supports sse2.)

lisp/globals.h:
o Declare fpu_mode.

lisp/lisp.c:
o Set fpu_mode to be the mode determined from the core file.  Needed
  in Linux-os.c to process the SSE2 modes correctly with an x87 core
  on a sse2-capable chip.

Revision 1.32.6.1 - (view) (annotate) - [select for diffs]
Fri Dec 19 01:31:32 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.32: +48 -2 lines
Diff to previous 1.32
Merge changes from utf16 branch to update to snapshot 2008-12.

Revision 1.32.4.1 - (view) (annotate) - [select for diffs]
Thu Dec 18 21:50:18 2008 UTC (5 years, 4 months ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-utf16-sync-2008-12
Changes since 1.32: +48 -2 lines
Diff to previous 1.32
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.33 - (view) (annotate) - [select for diffs]
Wed Nov 12 15:04:23 2008 UTC (5 years, 5 months ago) by rtoy
Branch: MAIN
CVS Tags: merge-sse2-packed, snapshot-2008-12
Changes since 1.32: +48 -2 lines
Diff to previous 1.32
Merge in SSE2 changes from sse2-packed-branch (tag
sse2-packed-2008-11-12).

Revision 1.32.8.7 - (view) (annotate) - [select for diffs]
Thu Oct 2 16:11:53 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
CVS Tags: 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.32.8.6: +7 -4 lines
Diff to previous 1.32.8.6 , to branch point 1.32 , to next main 1.39
code/float-trap.lisp:
o Oops.  Was setting the wrong bits in the x87 modes for rounding
  control.
o Also always set precision to 64-bits.  (Not sure if we should do
  this.  And something else is setting the mode back to 53-bits
  anyway.)

compiler/x86/float-sse2.lisp:
o Document the format of the mxcsr register and the x87 status and
  control words, just so we don't have to go look up the Intel docs
  all the time.

Revision 1.32.8.6 - (view) (annotate) - [select for diffs]
Thu Oct 2 13:41:26 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
Changes since 1.32.8.5: +2 -1 lines
Diff to previous 1.32.8.5 , to branch point 1.32
Declare arg type for (setf floating-point-modes) so the code can run
without consing.

Revision 1.32.8.5 - (view) (annotate) - [select for diffs]
Wed Oct 1 16:27:05 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
CVS Tags: sse2-checkpoint-2008-10-01
Changes since 1.32.8.4: +7 -44 lines
Diff to previous 1.32.8.4 , to branch point 1.32
Some random cleanups of the code.

code/float-trap.lisp:
o Merge the SSE2 version into the original version.  There's only a
  small difference.

compiler/x86/float-sse2.lisp:
o Remove the vops floating-point-modes and set-floating-point-modes
  that are no longer used.

compiler/x86/insts.lisp:
o Remove the sse2 conditionalizations for the sse2 instructions.  They
  aren't really necessary.

lisp/Linux-os.c:
o Remove unused os_set_sigcontext_fpu_modes.

Revision 1.32.8.4 - (view) (annotate) - [select for diffs]
Wed Oct 1 13:49:05 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
Changes since 1.32.8.3: +8 -16 lines
Diff to previous 1.32.8.3 , to branch point 1.32
Remove debugging prints.

Revision 1.32.8.3 - (view) (annotate) - [select for diffs]
Wed Oct 1 03:47:35 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
Changes since 1.32.8.2: +38 -1 lines
Diff to previous 1.32.8.2 , to branch point 1.32
Combine x87 and sse2 modes in a compatible format.  Partially work.
More work needed.

code/float-trap.lisp:
o Implement new FLOATING-POINT-MODES function to merge x87 and sse2
  modes into one compatible word.  Add corresponding setter.

compiler/x86/float-sse2.lisp:
o Turn off the translation for original floating-point-modes vops.

compiler/x86/parms.lisp:
o Update float bytes to match the MXCSR definitions that we are now
  using for the result of floating-point-modes.

lisp/Darwin-os.c:
o Update os_sigcontext_fpu_modes to use the same MXCSR format for the
  modes.

Revision 1.32.8.2 - (view) (annotate) - [select for diffs]
Tue Sep 30 15:00:29 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
Changes since 1.32.8.1: +11 -14 lines
Diff to previous 1.32.8.1 , to branch point 1.32
It appears we don't need to set the sigcontext.  Just set the
floating-point modes.  FP traps appear to be working now.

For now, leave the sse2 version of sigfpe-handler for now.  Leave the
sigcontext setter around too.

lisp/Linux-os.c:
o Turn off debugging prints.

code/float-trap.lisp:
o Remove debugging prints
o Set the FP modes directly instead of setting the modes in the
  sigcontext.

Revision 1.32.8.1 - (view) (annotate) - [select for diffs]
Tue Sep 30 14:40:08 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
Changes since 1.32: +54 -1 lines
Diff to previous 1.32
First cut at getting sigfpe working with sse2.  Previously, the
enabled traps were cleared, but now they retain their original
values.  However, after handling the sigfpe, the current-exceptions
includes the just handled exception.  This causes the exception to be
thrown again at the next FP instruction.

More work needed.

lisp/Linux-os.c:
o Add os_set_sigcontext_fpu_modes function to set the FPU modes in the
  sigcontext.
o Update restore_fpu to restore the SSE2 status like we already do for
  the FPU status.

code/x86-vm.lisp:
o Add interfact to os_set_sigcontext_fpu_modes.

code/float-trap.lisp:
o For now, add special version of SIGFPE-HANDLER for SSE2.  We attempt
  to clear the signaled exception from the modes and set the
  sigcontext with the new modes.  (The sigcontext appears to be set,
  but the curent-exceptions doesn't appear to be correctly cleared.)

Revision 1.32 - (view) (annotate) - [select for diffs]
Thu Jan 3 11:41:51 2008 UTC (6 years, 3 months ago) by cshapiro
Branch: MAIN
CVS Tags: release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, 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: release-19e-branch, sse2-branch, unicode-utf16-branch, unicode-utf16-extfmt-branch
Changes since 1.31: +1 -53 lines
Diff to previous 1.31
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.

Revision 1.31 - (view) (annotate) - [select for diffs]
Wed Nov 14 10:04:33 2007 UTC (6 years, 5 months ago) by cshapiro
Branch: MAIN
CVS Tags: snapshot-2007-12
Changes since 1.30: +3 -32 lines
Diff to previous 1.30
* Change the way the x87 precision control is managed.  While in Lisp,
  the precision control will always be set to double precision.  For
  the duration of calls into C, the precision control will be set to
  the ABI default.  On Linux and Darwin this is double extended
  precision.  On all other platforms the precision control is left as
  double precision.  The specious FLOAT-ACCURACY declaration has been
  eliminated.

* Shorten the precision control field to 24-bits by disposing of the
  unexamined high order eight bits of the status word.  This compacts
  the code generated around floating point mode changes and reduces
  consing.

* Eliminate unnecessary uses of FLDENV and FSTENV.  We can substitute a
  use of FSTENV with FSTSW in FLOATING-POINT-MODES.  This reduces the
  number of cycles to access the relevant mode bits by a factor of
  thirty.  We cannot eliminate FLDENV in SET-FLOATING-POINT-MODES, but
  the common case does not require an update to the status word.  A
  fast path has been added to the VOP that improves the execution time
  by at least a factor of fifteen.

* Remove the precision control option to SET-FLOATING-POINT-MODES.  It
  is the responsibility of the compiler to generating code that yields
  correctly rounded results in double and single precision.

Revision 1.30 - (view) (annotate) - [select for diffs]
Fri Jul 6 08:04:39 2007 UTC (6 years, 9 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.29: +4 -4 lines
Diff to previous 1.29
Import x86 Darwin port.

Revision 1.29 - (view) (annotate) - [select for diffs]
Sat Dec 2 15:22:36 2006 UTC (7 years, 4 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2007-01, snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05, snapshot-2007-06, snapshot-2007-07
Changes since 1.28: +23 -3 lines
Diff to previous 1.28
code/float-trap.lisp:
o Need to clear out the individual invalid operation bits when
  clearing the invalid exception bit.

code/exports.lisp:
compiler/ppc/parms.lisp:
o Export FLOAT-INVALID-OP-1-BYTE.  (Needs a better name.)

Revision 1.28 - (view) (annotate) - [select for diffs]
Thu Nov 16 04:34:55 2006 UTC (7 years, 5 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2006-12
Changes since 1.27: +2 -2 lines
Diff to previous 1.27
code/float-trap.lisp:
o Pass the modes to GET-FP-OPERANDS

compiler/ppc/float.lisp:
o If the destination register is the same as one of the source
  registers, an overflow or underflow exception will have replaced the
  source register with the result.  In that case, replace the source
  value with NIL to indicate we don't know.  (We could recompute the
  source from the result, but there would be a round-off error.)

Revision 1.27 - (view) (annotate) - [select for diffs]
Tue Nov 14 02:41:25 2006 UTC (7 years, 5 months ago) by rtoy
Branch: MAIN
Changes since 1.26: +18 -3 lines
Diff to previous 1.26
Floating-point fixes for ppc.

code/float-trap.lisp:
o Set FP modes now.
o Clear out sticky bits in SIGFPE handler

code/ppc-vm.lisp:
o Add (setf sigcontext-floating-point-modes) to set the FP mode.

compiler/ppc/parms.lisp:
o Add fields for various invalid operations bits.
o Fix float-fast-bit

Revision 1.25.2.1 - (view) (annotate) - [select for diffs]
Mon Dec 19 01:09:50 2005 UTC (8 years, 4 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.25: +3 -1 lines
Diff to previous 1.25 , to next main 1.39
Merge code from main branch of 2005-12-17 to ppc gencgc branch.  Still
doesn't work of course.

Revision 1.26 - (view) (annotate) - [select for diffs]
Wed Nov 9 18:26:25 2005 UTC (8 years, 5 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-19d, release-19d-base, release-19d-pre1, release-19d-pre2, 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
Branch point for: double-double-array-branch, double-double-branch, double-double-reader-branch, release-19d-branch
Changes since 1.25: +3 -1 lines
Diff to previous 1.25
Fix warning:  :precision-control isn't used, except on x86.

Revision 1.25 - (view) (annotate) - [select for diffs]
Sun Jul 25 19:32:37 2004 UTC (9 years, 8 months ago) by pmai
Branch: MAIN
CVS Tags: ppc_gencgc_snap_2005-05-14, release-19b-base, release-19b-pre1, release-19b-pre2, release-19c, release-19c-base, release-19c-pre1, 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, snapshot-2005-10, snapshot-2005-11
Branch point for: ppc_gencgc_branch, release-19b-branch, release-19c-branch
Changes since 1.24: +3 -1 lines
Diff to previous 1.24
This commit adds the remainder of the outstanding PPC/Darwin port merge.

Besides support for Darwin foreign loading, and updates to the ppc-vm
and bsd-os files, this commit removes unix:unix-errno as a foreign variable
and replaces it with a function named unix-errno, and a (setf unix-errno).
This makes both glibc support cleaner, and enables ports like PPC/Darwin
(and the upcoming win32 port) which have no easy way of accessing errno as
a foreign variable able to support this functionality at all.

The current implementation of this is rather make-shift, it would likely
be much cleaner to go the SBCL way and mediate all access to errno via
defined functions in the C runtime.

As an interim feature, the frobbing of the float-trap-modes is currently
commented out for Darwin because of ongoing breakage.

Revision 1.24 - (view) (annotate) - [select for diffs]
Wed Mar 24 13:26:18 2004 UTC (10 years ago) by emarsden
Branch: MAIN
CVS Tags: amd64-merge-start, mod-arith-base, prm-before-macosx-merge-tag, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, snapshot-2004-04, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07
Branch point for: mod-arith-branch, release-19a-branch
Changes since 1.23: +2 -2 lines
Diff to previous 1.23
 - add ignore declaration
 - fix endpwent alien routine for Solaris

Revision 1.23 - (view) (annotate) - [select for diffs]
Tue Sep 2 13:51:46 2003 UTC (10 years, 7 months ago) by gerd
Branch: MAIN
CVS Tags: snapshot-2003-10, snapshot-2003-11, snapshot-2003-12
Changes since 1.22: +33 -3 lines
Diff to previous 1.22
	(/ 1 0.0) not signaling a divide-by-zero on FreeBSD.

	* src/code/float-trap.lisp (FPE_*) [freebsd4]: Define constants
	from machine/trap.h.
	(sigfpe-handler) [freebsd4]: Use the code parameter to determine
	the reason for the signal.

Revision 1.22 - (view) (annotate) - [select for diffs]
Wed Jun 18 09:23:11 2003 UTC (10 years, 10 months ago) by gerd
Branch: MAIN
CVS Tags: dynamic-extent-base, lisp-executable-base, sparc_gencgc, sparc_gencgc_merge
Branch point for: dynamic-extent, lisp-executable, sparc_gencgc_branch
Changes since 1.21: +2 -2 lines
Diff to previous 1.21
	Remove package nicknames USER from COMMON-LISP-USER.  Add a new
	package COMMON-LISP which LISP uses, so that COMMON-LISP no longer
	has the non-ANSI nickname LISP.

	To bootstrap, use boot13.lisp as target:bootstrap.lisp with pmai's
	build scripts, and do a full compile.

	* src/bootfiles/18e/boot13.lisp: Change for all the package
	changes.

	* src/code/exports.lisp: New package common-lisp,
	which lisp uses.

	* src/tools/worldload.lisp:
	* src/tools/setup.lisp: Use cl-user instead of user.
	Use lisp:: instead of cl::.

	* src/tools/worldcom.lisp:
	* src/tools/snapshot-update.lisp:
	* src/tools/pclcom.lisp:
	* src/tools/mk-lisp:
	* src/tools/hemcom.lisp:
	* src/tools/config.lisp:
	* src/tools/comcom.lisp:
	* src/tools/clxcom.lisp:
	* src/tools/clmcom.lisp:
	* src/pcl/defsys.lisp:
	* src/motif/lisp/initial.lisp:
	* src/interface/initial.lisp:
	* src/hemlock/lispmode.lisp (setup-lisp-mode):
	Use cl-user instead of user.

	* src/code/save.lisp (assert-user-package):
	* src/code/print.lisp (%with-standard-io-syntax): Find
	cl-user package instead of user.

	* src/code/package.lisp (package-locks-init): Add lisp.
	(package-init): Don't add user nickname to cl-user.

	* src/code/ntrace.lisp (*trace-encapsulate-package-names*):
	Add common-lisp.

	* src/code/hash.lisp (toplevel):
	* src/code/hash-new.lisp (toplevel): Use in-package :lisp
	instead of :common-lisp.

	* src/code/float-trap.lisp (sigfpe-handler): Don't
	qualify floating-point-inexact with ext:.

	* src/pcl/simple-streams/strategy.lisp (sc):
	* src/pcl/simple-streams/null.lisp (null-read-char):
	* src/pcl/simple-streams/internal.lisp (allocate-buffer)
	(free-buffer):
	* src/pcl/simple-streams/impl.lisp (%check, %read-line)
	(%peek-char, %read-byte):
	* src/pcl/simple-streams/file.lisp (open-file-stream)
	(device-close):
	* src/pcl/simple-streams/classes.lisp (simple-stream)
	(device-close):
	* src/pcl/macros.lisp (toplevel):
	* src/pcl/braid.lisp (lisp::sxhash-instance):
	* src/pcl/env.lisp (toplevel):
	* src/compiler/generic/objdef.lisp (symbol-hash):
	* src/code/stream.lisp (read-sequence, write-sequence):
	* src/code/macros.lisp (defmacro, deftype):
	* src/code/eval.lisp (interpreted-function):
	* src/code/defstruct.lisp (defstruct):
	* src/code/debug.lisp (debug-eval-print): Use lisp:: instead
	of cl::.

Revision 1.21 - (view) (annotate) - [select for diffs]
Mon Apr 14 21:03:25 2003 UTC (11 years ago) by toy
Branch: MAIN
CVS Tags: remove_negative_zero_not_zero
Changes since 1.20: +34 -18 lines
Diff to previous 1.20
If the function VM::GET-FP-OPERANDS exists, use that to get the
operation and operands that signalled the floating-point exception so
we can report it.

Revision 1.20 - (view) (annotate) - [select for diffs]
Sun Mar 2 18:55:55 2003 UTC (11 years, 1 month ago) by toy
Branch: MAIN
CVS Tags: cold-pcl-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2
Branch point for: cold-pcl, release-18e-branch
Changes since 1.19: +3 -2 lines
Diff to previous 1.19
Revived SGI MIPS port, from Mike McDonald.

Revision 1.9.2.7 - (view) (annotate) - [select for diffs]
Sat Mar 23 18:50:00 2002 UTC (12 years ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18d
Changes since 1.9.2.6: +37 -9 lines
Diff to previous 1.9.2.6 , to branch point 1.9 , to next main 1.39
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation
for release tagging 18d.

Revision 1.19 - (view) (annotate) - [select for diffs]
Mon Jan 14 21:25:52 2002 UTC (12 years, 3 months ago) by toy
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE, UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.18: +2 -1 lines
Diff to previous 1.18
Oops. precision-control-alist should only be defined for x86.

Revision 1.18 - (view) (annotate) - [select for diffs]
Sun Jan 13 18:25:59 2002 UTC (12 years, 3 months ago) by toy
Branch: MAIN
Changes since 1.17: +29 -3 lines
Diff to previous 1.17
Add constants and code to allow the user to select the rounding
precision for x86 floating-point operations.

Revision 1.17 - (view) (annotate) - [select for diffs]
Thu Dec 6 19:15:40 2001 UTC (12 years, 4 months ago) by pmai
Branch: MAIN
Changes since 1.16: +3 -3 lines
Diff to previous 1.16
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.16 - (view) (annotate) - [select for diffs]
Thu Apr 12 19:42:36 2001 UTC (13 years ago) by pw
Branch: MAIN
Changes since 1.15: +6 -5 lines
Diff to previous 1.15
From Ray Toy:

Make orig-modes a gensym in with-float-traps-masked.

Revision 1.9.2.6 - (view) (annotate) - [select for diffs]
Tue May 23 16:36:28 2000 UTC (13 years, 10 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18c
Changes since 1.9.2.5: +2 -2 lines
Diff to previous 1.9.2.5 , to branch point 1.9
This set of revisions brings the RELENG_18 branch up to HEAD in preparation
for an 18c release.

Revision 1.15 - (view) (annotate) - [select for diffs]
Sun Dec 5 16:22:17 1999 UTC (14 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14
Quieten a warning: do not declare the scp argument to sigfpe-handler
as ignored on FreeBSD.

Revision 1.9.2.5 - (view) (annotate) - [select for diffs]
Tue Jun 23 11:21:55 1998 UTC (15 years, 9 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18b
Changes since 1.9.2.4: +2 -2 lines
Diff to previous 1.9.2.4 , to branch point 1.9
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.14 - (view) (annotate) - [select for diffs]
Sat Mar 21 08:11:56 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13
Long-float support.

Revision 1.9.2.4 - (view) (annotate) - [select for diffs]
Sun Sep 7 23:53:39 1997 UTC (16 years, 7 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18a
Changes since 1.9.2.3: +14 -8 lines
Diff to previous 1.9.2.3 , to branch point 1.9
Have with-float-traps-masked clear the given accrued exceptions at the
start of the body to support their checking in the body, and restore
these exceptions on exit to allow nesting.

Revision 1.13 - (view) (annotate) - [select for diffs]
Sun Sep 7 23:40:00 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.12: +14 -8 lines
Diff to previous 1.12
Have with-float-traps-masked clear the given accrued exceptions at the
start of the body to support their checking within the body, and
restore these exceptions on exit to allow nesting.

Revision 1.9.2.3 - (view) (annotate) - [select for diffs]
Sun Sep 7 23:35:29 1997 UTC (16 years, 7 months ago) by dtc
Branch: RELENG_18
Changes since 1.9.2.2: +6 -4 lines
Diff to previous 1.9.2.2 , to branch point 1.9
Add the denormal exception for the x86.

Revision 1.12 - (view) (annotate) - [select for diffs]
Sun Sep 7 23:34:00 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.11: +6 -4 lines
Diff to previous 1.11
Add the denormal exception for the x86.

Revision 1.9.2.2 - (view) (annotate) - [select for diffs]
Tue Sep 2 04:30:45 1997 UTC (16 years, 7 months ago) by dtc
Branch: RELENG_18
Changes since 1.9.2.1: +5 -1 lines
Diff to previous 1.9.2.1 , to branch point 1.9
Add a documentation string for the new with-float-traps-masked macro;
from Raymond Toy.

Revision 1.11 - (view) (annotate) - [select for diffs]
Tue Sep 2 04:26:59 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.10: +5 -1 lines
Diff to previous 1.10
Add a documentation string for the new with-float-traps-masked macro;
from Raymond Toy.

Revision 1.9.2.1 - (view) (annotate) - [select for diffs]
Sat Aug 30 18:24:47 1997 UTC (16 years, 7 months ago) by dtc
Branch: RELENG_18
Changes since 1.9: +19 -3 lines
Diff to previous 1.9
New macro WITH-FLOAT-TRAPS-MASKED to execute a body of code with some
floating point exceptions disabled. It avoids the overhead of
{set,get}-floating-point-modes, saving some consing and generally
giving smaller code. Exploit this new macro where
{set,get}-floating-point-modes has been used.

Revision 1.10 - (view) (annotate) - [select for diffs]
Sat Aug 30 18:21:32 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.9: +19 -3 lines
Diff to previous 1.9
New macro WITH-FLOAT-TRAPS-MASKED to execute a body of code with some
floating point exceptions disabled. It avoids the overhead of
{set,get}-floating-point-modes, saving some consing and generally
giving smaller code. Exploit this new macro where
{set,get}-floating-point-modes has been used.

Revision 1.9 - (view) (annotate) - [select for diffs]
Sat Jan 18 14:30:52 1997 UTC (17 years, 3 months ago) by ram
Branch: MAIN
Branch point for: RELENG_18
Changes since 1.8: +26 -2 lines
Diff to previous 1.8
Werkowskis source kit 1.03.7

Revision 1.8 - (view) (annotate) - [select for diffs]
Mon Oct 31 04:11:27 1994 UTC (19 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.7: +1 -3 lines
Diff to previous 1.7
Fix headed boilerplate.

Revision 1.7.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Wed Oct 19 23:20:31 1994 UTC (19 years, 6 months ago) by ram
Branch: solaris_patch
Changes since 1.7: +5 -3 lines
Diff to previous 1.7 , to next main 1.39
Solaris patches.

Revision 1.7 - (view) (annotate) - [select for diffs]
Thu Dec 10 01:26:41 1992 UTC (21 years, 4 months ago) by ram
Branch: MAIN
Branch point for: solaris_patch
Changes since 1.6: +2 -2 lines
Diff to previous 1.6
ext:floating-point-invalid => cl:floating-point-invalid-operation

Revision 1.6 - (view) (annotate) - [select for diffs]
Fri Feb 14 23:46:17 1992 UTC (22 years, 2 months ago) by wlott
Branch: MAIN
Changes since 1.5: +5 -5 lines
Diff to previous 1.5
Merged new-alien changes onto trunk.

Revision 1.5.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Fri Jan 24 04:36:50 1992 UTC (22 years, 2 months ago) by wlott
Changes since 1.5: +5 -5 lines
Diff to previous 1.5 , to next main 1.39
Mods for new aliens.

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri Feb 8 13:32:45 1991 UTC (23 years, 2 months ago) by ram
Branch: MAIN
Changes since 1.4: +9 -5 lines
Diff to previous 1.4
New file header with RCS header FILE-COMMENT.

Revision 1.4 - (view) (annotate) - [select for diffs]
Fri Dec 7 18:00:37 1990 UTC (23 years, 4 months ago) by ram
Branch: MAIN
Changes since 1.3: +88 -13 lines
Diff to previous 1.3
Added GET-FLOATING-POINT-MODES to read the floating point modes.
Added support in SET-FLOATING-POINT-MODES to set all the interesting
state.
Fixed SIGFPE handler to not signal conditions for exceptions that are
not currently trapped (in case the operation had multiple exceptions), some of 
which were not trapped.

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Dec 6 17:38:10 1990 UTC (23 years, 4 months ago) by ram
Branch: MAIN
Changes since 1.2: +18 -41 lines
Diff to previous 1.2
Generalized enough to support the SPARC as well as the PMAX.

Revision 1.2 - (view) (annotate) - [select for diffs]
Sun Oct 14 19:06:38 1990 UTC (23 years, 6 months ago) by ram
Branch: MAIN
Changes since 1.1: +32 -2 lines
Diff to previous 1.1
Added SIGFPE-HANDLER.

Revision 1.1 - (view) (annotate) - [select for diffs]
Mon Oct 1 17:00:59 1990 UTC (23 years, 6 months ago) by ram
Branch: MAIN
Initial revision

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