/[cmucl]/src/lisp/sparc-assem.S
ViewVC logotype

Log of /src/lisp/sparc-assem.S

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1.25 - (view) (annotate) - [select for diffs]
Mon Jul 19 23:08:37 2010 UTC (3 years, 8 months ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, RELEASE_20b, cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, release-20b-pre1, release-20b-pre2, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, snapshot-2011-01, snapshot-2011-02, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09
Branch point for: RELEASE-20B-BRANCH, cross-sol-x86-branch, cross-sparc-branch
Changes since 1.24: +7 -2 lines
Diff to previous 1.24
Merge changes from sparc-tramp-assem-2010-07-19.  This moves
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.

Revision 1.24.46.1 - (view) (annotate) - [select for diffs]
Sat Jul 17 13:43:43 2010 UTC (3 years, 9 months ago) by rtoy
Branch: sparc-tramp-assem-branch
CVS Tags: sparc-tramp-assem-2010-07-19
Changes since 1.24: +7 -2 lines
Diff to previous 1.24 , to next main 1.25
lisp/sparc-assem.S:
o #ifdef out closure_tramp and undefined_tramp; they're Lisp assembly
  functions now.

lisp/gencgc.c:
o Update code for sparc which doesn't have closure_tramp and
  undefined_tramp anymore.

Revision 1.24 - (view) (annotate) - [select for diffs]
Fri Oct 24 02:57:00 2003 UTC (10 years, 5 months ago) by toy
Branch: MAIN
CVS Tags: RELEASE_19f, RELEASE_20a, amd64-dd-start, amd64-merge-start, 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, 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-sse2-packed, merge-with-19f, merged-unicode-utf16-extfmt-2009-06-11, mod-arith-base, portable-clx-base, portable-clx-import-2009-06-16, post-merge-intl-branch, ppc_gencgc_snap_2005-05-14, ppc_gencgc_snap_2005-12-17, ppc_gencgc_snap_2006-01-06, pre-merge-intl-branch, pre-telent-clx, prm-before-macosx-merge-tag, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, release-19b-base, release-19b-pre1, release-19b-pre2, release-19c, release-19c-base, release-19c-pre1, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, release-19f-base, release-19f-pre1, release-20a-base, release-20a-pre1, snapshot-2003-11, snapshot-2003-12, snapshot-2004-04, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07, 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, 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, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11, snapshot-2007-12, 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, snapshot-2008-12, 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, sparc-tramp-assem-base, sse2-base, sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base, unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-string-buffer-base, unicode-string-buffer-impl-base, unicode-utf16-base, unicode-utf16-char-support-2009-03-25, unicode-utf16-char-support-2009-03-26, unicode-utf16-extfmt-2009-03-27, unicode-utf16-extfmt-2009-06-11, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-extfmts-sync-2008-12, unicode-utf16-string-support, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09, unicode-utf16-sync-2008-11, unicode-utf16-sync-2008-12, unicode-utf16-sync-label-2009-03-16
Branch point for: RELEASE-19F-BRANCH, RELEASE-20A-BRANCH, amd64-dd-branch, double-double-array-branch, double-double-branch, double-double-reader-branch, intl-2-branch, intl-branch, mod-arith-branch, portable-clx-branch, ppc_gencgc_branch, release-19a-branch, release-19b-branch, release-19c-branch, release-19d-branch, release-19e-branch, sparc-tramp-assem-branch, sse2-branch, sse2-packed-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch, unicode-utf16-branch, unicode-utf16-extfmt-branch
Changes since 1.23: +22 -0 lines
Diff to previous 1.23
Add support for catching heap overflows, similar to the control stack
overflow checking.  Enable with :heap-overflow-check.  We reserve some
number of pages on the heap.  When the heap reaches the reserved
pages, an overflow warning is signalled.  The reserved pages are set
0.  This allows some additional allocation to happen during debugging,
if necessary.  If another overflow happens, we throw to top-level.

Sparc only right now.

	* lisp/sparc-assem.S (_do_dynamic_space_overflow_error): New
	function to handle a heap overflow error.
	(_do_dynamic_space_overflow_warning): New function to handle heap
	overflow warning.

	* lisp/sparc-arch.c (sigill_handler): Handle the two new traps
	caused by heap overflows.

	* lisp/interrupt.c (interrupt_handle_space_overflow): New function
	to handle interrupt caused by heap space overflows.

	* lisp/gencgc.c (handle_heap_overflow): New function to handle
	heap overflows.
	(gc_alloc_new_region): Use handle_heap_overflow.
	(gc_alloc_large): Use handle_heap_overflow

	* compiler/sparc/parms.lisp (static-symbols): Add new static
	symbols for heap overflow checking:
	dynamic-space-overflow-error-hit and
	dynamic-space-overflow-warning-hit.

	* compiler/generic/new-genesis.lisp (finish-symbols): Initialize
	the new dynamic-space-overflow-error-hit and
	dynamic-space-overflow-warning-hit static symbols.

	* code/lispinit.lisp (:heap-overflow-check): Add
	heap-overflow-check to *runtime-features*, if necessary.
	("reserved_heap_pages"): Access to alien variable for heap
	overflow.
	(*reserved-heap-pages*): Default number of heap pages to reserve
	for heap overflow.
	(%top-level): Set reserved-heap-pages to the default.

	* code/interr.lisp (dynamic-space-overflow-warning-hit): Add
	function to handle heap overflow warnings.
	(dynamic-space-overflow-error-hit): Add function to handle heap
	overflow error.

	* code/error.lisp (heap-overflow): Add new condition type for heap
	overflow

Revision 1.23 - (view) (annotate) - [select for diffs]
Thu Oct 16 16:25:19 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.22: +6 -6 lines
Diff to previous 1.22
The pseudo-atomic flag was set/reset using add/sub.  Replace this with
or/andn, so we don't inadvertently reset pseudo-atomic by adding the
flag, thinking we're setting it.  (Granted, this probably means we
were already doing something wrong, but this will make it a bit more
robust.)

Revision 1.22 - (view) (annotate) - [select for diffs]
Mon Oct 13 21:56:55 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21
It's lowtag_Mask, not lowtagMask.

Revision 1.21 - (view) (annotate) - [select for diffs]
Thu Oct 9 19:04:28 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.20: +14 -15 lines
Diff to previous 1.20
Use the new constants lowtagMask, pseudo_atomic_Value, and
pseudo_atomic_InterruptedValue instead of the bare 7's, 4's, and 3's
and 1's in the code.

Revision 1.19.6.1 - (view) (annotate) - [select for diffs]
Mon Aug 25 17:06:43 2003 UTC (10 years, 7 months ago) by gerd
Branch: dynamic-extent
Changes since 1.19: +113 -1 lines
Diff to previous 1.19 , to next main 1.25
Merge with HEAD.

Revision 1.20 - (view) (annotate) - [select for diffs]
Fri Aug 22 13:20:03 2003 UTC (10 years, 7 months ago) by toy
Branch: MAIN
CVS Tags: lisp-executable-base, snapshot-2003-10, sparc_gencgc_merge
Branch point for: lisp-executable
Changes since 1.19: +113 -1 lines
Diff to previous 1.19
Merge sparc_gencgc_branch that adds support for gencgc for Solaris.

Revision 1.19.8.3 - (view) (annotate) - [select for diffs]
Mon Aug 18 21:13:48 2003 UTC (10 years, 8 months ago) by toy
Branch: sparc_gencgc_branch
Changes since 1.19.8.2: +40 -0 lines
Diff to previous 1.19.8.2 , to branch point 1.19 , to next main 1.25
gencgc.c:
o More code cleanups, getting rid of GC_DEBUG
o Make fpu_state variable large enough to hold all 32 double-float
  regs for Sparc V9.
o Get rid of unneeded debugging printfs
o Rename update_x86_dynamic_space_free_pointer to
  update_dynamic_space_free_pointer since it's not x86 specific
  anymore.
o Get rid of the need_to_pop_stack stuff.  It's not needed.
o Don't compile sniff_code_object and apply_code_fixups for non-x86.

save.c:
o Rename update_x86_dynamic_space_free_pointer to
  update_dynamic_space_free_pointer since it's not x86 specific
  anymore.
o Cleanup calls to gc_alloc_update_page_tables.

sparc-arch.c:
o Get rid of the need_to_pop_stack stuff.  It's not needed.
o Comment out pop_fake_control_stack_frame.

sparc-assem.S
o Save the extra 16 double-float regs, if FEATURE_SPARC_V9.

Revision 1.19.8.2 - (view) (annotate) - [select for diffs]
Sun Aug 17 21:31:06 2003 UTC (10 years, 8 months ago) by toy
Branch: sparc_gencgc_branch
Changes since 1.19.8.1: +62 -13 lines
Diff to previous 1.19.8.1 , to branch point 1.19
o Remove the unused collect_garbage function.
o Add fpu_save and fpu_restore functions.

Revision 1.19.8.1 - (view) (annotate) - [select for diffs]
Fri Aug 15 20:35:17 2003 UTC (10 years, 8 months ago) by toy
Branch: sparc_gencgc_branch
Changes since 1.19: +23 -0 lines
Diff to previous 1.19
Initial port of gencgc to Solaris.

Revision 1.19 - (view) (annotate) - [select for diffs]
Wed Nov 13 17:14:18 2002 UTC (11 years, 5 months ago) by toy
Branch: MAIN
CVS Tags: cold-pcl-base, dynamic-extent-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2, remove_negative_zero_not_zero, sparc_gencgc
Branch point for: cold-pcl, dynamic-extent, release-18e-branch, sparc_gencgc_branch
Changes since 1.18: +9 -12 lines
Diff to previous 1.18
Add some #defines and macros to make it easier to create (and
understand!) SC_OFFSETs in assembly files.

Revision 1.18 - (view) (annotate) - [select for diffs]
Wed Nov 13 13:12:35 2002 UTC (11 years, 5 months ago) by toy
Branch: MAIN
Changes since 1.17: +34 -6 lines
Diff to previous 1.17
Was not properly handling undefined foreign symbols:
o Need to restore all global (%g) Lisp registers because they may have
  been trashed by the C code.
o The unimp trap_Error was wrong.  Get the right number of arg bytes
  and the right SC_OFFSET!

Revision 1.17 - (view) (annotate) - [select for diffs]
Thu Oct 24 20:39:00 2002 UTC (11 years, 5 months ago) by toy
Branch: MAIN
Changes since 1.16: +70 -1 lines
Diff to previous 1.16
o Port over Tim Moore's cool foreign linkage table stuff to sparc.
o Make new-genesis save target-foreign-linkage-table-size to
  internals.h.

Revision 1.16 - (view) (annotate) - [select for diffs]
Wed Sep 4 14:12:10 2002 UTC (11 years, 7 months ago) by toy
Branch: MAIN
CVS Tags: UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.15: +29 -2 lines
Diff to previous 1.15
In the v8plus abi, we need to save the %o registers before calling
into C because the %o registers become %i and a task switch only saves
the 64-bit %o registers.

Revision 1.15 - (view) (annotate) - [select for diffs]
Fri Aug 23 17:01:02 2002 UTC (11 years, 7 months ago) by pmai
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE
Changes since 1.14: +8 -7 lines
Diff to previous 1.14
Added export of internal error code constants to internals.h, so that
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.

Revision 1.8.2.3 - (view) (annotate) - [select for diffs]
Sat Mar 23 18:51:07 2002 UTC (12 years ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18d
Changes since 1.8.2.2: +22 -8 lines
Diff to previous 1.8.2.2 , to branch point 1.8 , to next main 1.25
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation
for release tagging 18d.

Revision 1.14 - (view) (annotate) - [select for diffs]
Wed Oct 3 14:08:18 2001 UTC (12 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.13: +4 -4 lines
Diff to previous 1.13
Use trap_PseudoAtomic instead of the hardwired 16.

Revision 1.13 - (view) (annotate) - [select for diffs]
Tue Jan 23 04:39:20 2001 UTC (13 years, 2 months ago) by dtc
Branch: MAIN
Changes since 1.12: +10 -4 lines
Diff to previous 1.12
From Raymond Toy:
o Add support for 64-bit integer parameters and function results.

Revision 1.12 - (view) (annotate) - [select for diffs]
Tue Dec 5 03:08:23 2000 UTC (13 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.11: +12 -4 lines
Diff to previous 1.11
From Raymond Toy:
o Don't use taddcctv/tsubcctv for the pseudo-atomic stuff.

Revision 1.11 - (view) (annotate) - [select for diffs]
Fri Oct 27 19:42:15 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.10: +11 -4 lines
Diff to previous 1.10
Can't use reg_L1 anymore because it doesn't exist. From Raymond Toy.

Revision 1.8.2.2 - (view) (annotate) - [select for diffs]
Fri Oct 27 19:41:02 2000 UTC (13 years, 5 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18c
Changes since 1.8.2.1: +11 -4 lines
Diff to previous 1.8.2.1 , to branch point 1.8
Can't use reg_L1 anymore because it doesn't exist. From Raymond Toy.

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

Revision 1.9 - (view) (annotate) - [select for diffs]
Tue Mar 10 20:39:48 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.8: +1 -1 lines
Diff to previous 1.8
Calculate the error code for the undefined_tramp using the
sc_DescriptorReg define; the error code had been using a fixed SC
offset which becomes invalid when the SCs are modified, for example
when adding the complex-float SCs.

Revision 1.8 - (view) (annotate) - [select for diffs]
Wed Feb 19 05:35:01 1997 UTC (17 years, 2 months ago) by dtc
Branch: MAIN
CVS Tags: RELEASE_18a
Branch point for: RELENG_18
Changes since 1.7: +7 -2 lines
Diff to previous 1.7
Patch to flush_icache by Casper Dik.

Revision 1.7 - (view) (annotate) - [select for diffs]
Tue Oct 25 00:14:48 1994 UTC (19 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.6: +57 -0 lines
Diff to previous 1.6
Solaris patches.

Revision 1.6.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Mon Oct 24 19:51:13 1994 UTC (19 years, 5 months ago) by ram
Branch: solaris_patch
Changes since 1.6: +57 -0 lines
Diff to previous 1.6 , to next main 1.25
Solaris patches.

Revision 1.6 - (view) (annotate) - [select for diffs]
Sun Jan 10 17:27:09 1993 UTC (21 years, 3 months ago) by wlott
Branch: MAIN
Branch point for: solaris_patch
Changes since 1.5: +3 -3 lines
Diff to previous 1.5
Changed FUNCTION_HEADER_CODE_OFFSET to FUNCTION_CODE_OFFSET.

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri Nov 13 08:17:49 1992 UTC (21 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.4: +4 -3 lines
Diff to previous 1.4
Fixed a bug introduced into __sigtramp where it used some random bit to
decide whether or not to save the fp regs.

Revision 1.4 - (view) (annotate) - [select for diffs]
Mon Sep 28 07:47:57 1992 UTC (21 years, 6 months ago) by wlott
Branch: MAIN
Changes since 1.3: +5 -4 lines
Diff to previous 1.3
Finally got restore_state to actually work.

Revision 1.3 - (view) (annotate) - [select for diffs]
Sat Sep 26 22:29:11 1992 UTC (21 years, 6 months ago) by wlott
Branch: MAIN
Changes since 1.2: +5 -3 lines
Diff to previous 1.2
Need to also save the return address (%i7).

Revision 1.2 - (view) (annotate) - [select for diffs]
Sat Sep 26 21:10:05 1992 UTC (21 years, 6 months ago) by wlott
Branch: MAIN
Changes since 1.1: +1 -0 lines
Diff to previous 1.1
Oops, save_state needs to copy the second argument into the new register
window to pass it on through.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Sep 8 20:27:18 1992 UTC (21 years, 7 months ago) by wlott
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