[Cmucl-cvs] [git] CMU Common Lisp branch master updated. snapshot-2014-12-3-g0177772

Raymond Toy rtoy at common-lisp.net
Sat Jan 17 18:16:46 UTC 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".

The branch, master has been updated
       via  01777725ce3f2f0ce2a860659d6acc0a64c20611 (commit)
      from  b038df8de36e85365670a50bc096c8ea45f25db0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 01777725ce3f2f0ce2a860659d6acc0a64c20611
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Jan 17 10:16:39 2015 -0800

    Remove old sunos stuff from sparc-assem.S
    
    We only support Solaris now so remove the old SunOS stuff.  (Besides
    we haven't built for SunOS in decades.)
    
      * globals.h:
        * Solaris uses ELF, so don't prefix names with _.
      * sparc-assem.S:
        * Remove SunOS support.
        * Don't prefix names with _.

diff --git a/src/lisp/globals.h b/src/lisp/globals.h
index c382e48..71a65c3 100644
--- a/src/lisp/globals.h
+++ b/src/lisp/globals.h
@@ -64,7 +64,7 @@ extern void globals_init(void);
 #define EXTERN(name,bytes) .extern name bytes
 #endif
 #ifdef sparc
-#ifdef SVR4
+#if defined(SVR4) || defined(FEATURE_ELF)
 #define EXTERN(name,bytes) .global name
 #else
 #define EXTERN(name,bytes) .global _ ## name
diff --git a/src/lisp/sparc-assem.S b/src/lisp/sparc-assem.S
index 1bb4f91..d4b96cb 100644
--- a/src/lisp/sparc-assem.S
+++ b/src/lisp/sparc-assem.S
@@ -4,43 +4,12 @@
 #include <sys/asm_linkage.h>
 #include <sys/psw.h>
 #include <sys/trap.h>
-#define _current_binding_stack_pointer current_binding_stack_pointer
-#define _current_control_stack_pointer current_control_stack_pointer
-#define _current_dynamic_space_free_pointer current_dynamic_space_free_pointer
-#define _foreign_function_call_active foreign_function_call_active
-#define _current_control_frame_pointer current_control_frame_pointer
-#define _call_into_lisp call_into_lisp
-#define _function_end_breakpoint_end function_end_breakpoint_end
-#define _closure_tramp closure_tramp
-#define _undefined_tramp undefined_tramp
-#define _function_end_breakpoint_trap function_end_breakpoint_trap
-#define _function_end_breakpoint_guts function_end_breakpoint_guts
-#define _call_into_c call_into_c
-#define _flush_icache flush_icache
-#define	_do_pending_interrupt do_pending_interrupt
-#define _do_dynamic_space_overflow_error do_dynamic_space_overflow_error
-#define _do_dynamic_space_overflow_warning do_dynamic_space_overflow_warning
-#ifdef GENCGC
-/*#define _collect_garbage collect_garbage*/
-#define _fpu_save fpu_save
-#define _fpu_restore fpu_restore				
-#endif
-#ifdef LINKAGE_TABLE
-#define _resolve_linkage_tramp resolve_linkage_tramp
-#define	_lazy_resolve_linkage	lazy_resolve_linkage
-#define	_undefined_foreign_symbol_trap	undefined_foreign_symbol_trap
-#endif		
 #ifdef __STDC__
 #define FUNCDEF(x)	.type x, \#function
 #else
 #define FUNCDEF(x)	.type x, #function
 #endif
 #else
-#include <machine/asm_linkage.h>
-#include <machine/psl.h>
-#include <machine/trap.h>
-#define FUNCDEF(x)  /* nothing */
-#define SET_SIZE(x) /* nothing */
 #endif
 
 #define LANGUAGE_ASSEMBLY
@@ -68,9 +37,9 @@
 #define FRAMESIZE (SA(MINFRAME))
 #endif
         .seg    "text"
-        .global _call_into_lisp
-	FUNCDEF(_call_into_lisp)
-_call_into_lisp:
+        .global call_into_lisp
+	FUNCDEF(call_into_lisp)
+call_into_lisp:
         save    %sp, -FRAMESIZE, %sp
 	/* Flush all of C's register windows to the stack. */
 	ta	ST_FLUSH_WINDOWS
@@ -96,15 +65,15 @@ _call_into_lisp:
 	set	pseudo_atomic_Value, reg_ALLOC
 
 	/* Turn off foreign function call. */
-        sethi   %hi(_foreign_function_call_active), reg_NL0
-        st      reg_ZERO, [reg_NL0+%lo(_foreign_function_call_active)]
+        sethi   %hi(foreign_function_call_active), reg_NL0
+        st      reg_ZERO, [reg_NL0+%lo(foreign_function_call_active)]
 
         /* Load the rest of lisp state. */
-        load(_current_dynamic_space_free_pointer, reg_NL0)
+        load(current_dynamic_space_free_pointer, reg_NL0)
 	add	reg_NL0, reg_ALLOC, reg_ALLOC
-        load(_current_binding_stack_pointer, reg_BSP)
-        load(_current_control_stack_pointer, reg_CSP)
-        load(_current_control_frame_pointer, reg_OCFP)
+        load(current_binding_stack_pointer, reg_BSP)
+        load(current_control_stack_pointer, reg_CSP)
+        load(current_control_frame_pointer, reg_OCFP)
 
         /* No longer atomic, and check for interrupt. */
 	andn	reg_ALLOC, pseudo_atomic_Value, reg_ALLOC
@@ -147,13 +116,13 @@ lra:
 
         /* Store LISP state */
 	andn	reg_ALLOC, lowtag_Mask, reg_NL1
-        store(reg_NL1,_current_dynamic_space_free_pointer)
-        store(reg_BSP,_current_binding_stack_pointer)
-        store(reg_CSP,_current_control_stack_pointer)
-        store(reg_CFP,_current_control_frame_pointer)
+        store(reg_NL1,current_dynamic_space_free_pointer)
+        store(reg_BSP,current_binding_stack_pointer)
+        store(reg_CSP,current_control_stack_pointer)
+        store(reg_CFP,current_control_frame_pointer)
 
         /* No longer in Lisp. */
-        store(reg_NL1,_foreign_function_call_active)
+        store(reg_NL1,foreign_function_call_active)
 
         /* Were we interrupted? */
 	andn	reg_ALLOC, pseudo_atomic_Value, reg_ALLOC
@@ -164,13 +133,13 @@ lra:
 	ld	[%sp+FRAMESIZE-4], %i7
         ret
         restore	%sp, FRAMESIZE, %sp
-	SET_SIZE(_call_into_lisp)
+	SET_SIZE(call_into_lisp)
 
 
 
-        .global _call_into_c
-	FUNCDEF(_call_into_c)
-_call_into_c:
+        .global call_into_c
+	FUNCDEF(call_into_c)
+call_into_c:
 #ifdef v8plus
 	stx	%o2, [%fp - 8 - 1*8]
 	stx	%o3, [%fp - 8 - 2*8]
@@ -195,17 +164,17 @@ _call_into_c:
 	st	reg_L0, [reg_CFP+4]
 
         /* Store LISP state */
-        store(reg_BSP,_current_binding_stack_pointer)
-        store(reg_CSP,_current_control_stack_pointer)
-        store(reg_CFP,_current_control_frame_pointer)
+        store(reg_BSP,current_binding_stack_pointer)
+        store(reg_CSP,current_control_stack_pointer)
+        store(reg_CFP,current_control_frame_pointer)
 
 	/* Use reg_CFP as a work register, and restore it */
 	andn	reg_ALLOC, lowtag_Mask, reg_CFP
-        store(reg_CFP,_current_dynamic_space_free_pointer)
-		load(_current_control_frame_pointer, reg_CFP)
+        store(reg_CFP,current_dynamic_space_free_pointer)
+	load(current_control_frame_pointer, reg_CFP)
 
         /* No longer in Lisp. */
-        store(reg_CSP,_foreign_function_call_active)
+        store(reg_CSP,foreign_function_call_active)
 
         /* Were we interrupted? */
 	andn	reg_ALLOC, pseudo_atomic_Value, reg_ALLOC
@@ -229,15 +198,15 @@ _call_into_c:
 	set	pseudo_atomic_Value, reg_ALLOC
 
         /* No longer in foreign function call. */
-        sethi   %hi(_foreign_function_call_active), reg_NL2
-        st      reg_ZERO, [reg_NL2+%lo(_foreign_function_call_active)]
+        sethi   %hi(foreign_function_call_active), reg_NL2
+        st      reg_ZERO, [reg_NL2+%lo(foreign_function_call_active)]
 
         /* Load the rest of lisp state. */
-        load(_current_dynamic_space_free_pointer, reg_NL2)
+        load(current_dynamic_space_free_pointer, reg_NL2)
 	add	reg_NL2, reg_ALLOC, reg_ALLOC
-        load(_current_binding_stack_pointer, reg_BSP)
-        load(_current_control_stack_pointer, reg_CSP)
-        load(_current_control_frame_pointer, reg_CFP)
+        load(current_binding_stack_pointer, reg_BSP)
+        load(current_control_stack_pointer, reg_CSP)
+        load(current_control_frame_pointer, reg_CFP)
 
 	/* Get the return address back. */
 	ld	[reg_CFP+4], reg_LIP
@@ -267,7 +236,7 @@ _call_into_c:
         ret
         nop
 
-	SET_SIZE(_call_into_c)
+	SET_SIZE(call_into_c)
 
 #if 0
 /* undefined_tramp and closure_tramp are now Lisp assembly routines.
@@ -332,8 +301,8 @@ _closure_tramp:
 
 	.text
 	.align	8
-	.global	_function_end_breakpoint_guts
-_function_end_breakpoint_guts:
+	.global	function_end_breakpoint_guts
+function_end_breakpoint_guts:
 	.word	type_ReturnPcHeader
 	b	1f
 	nop
@@ -347,18 +316,18 @@ _function_end_breakpoint_guts:
 	mov	reg_NIL, reg_A5
 1:
 
-	.global	_function_end_breakpoint_trap
-_function_end_breakpoint_trap:
+	.global	function_end_breakpoint_trap
+function_end_breakpoint_trap:
 	unimp	trap_FunctionEndBreakpoint
 	b	1b
 	nop
 
-	.global	_function_end_breakpoint_end
-_function_end_breakpoint_end:
+	.global	function_end_breakpoint_end
+function_end_breakpoint_end:
 
-	.global _flush_icache
-	FUNCDEF(_flush_icache)
-_flush_icache:
+	.global flush_icache
+	FUNCDEF(flush_icache)
+flush_icache:
         add %o0,%o1,%o2
 1:      iflush %o0			! flush instruction cache
         add %o0,8,%o0
@@ -367,34 +336,34 @@ _flush_icache:
         nop
 	retl				! return from leaf routine
         nop
-	SET_SIZE(_flush_icache)
+	SET_SIZE(flush_icache)
 
-        .global _do_pending_interrupt
-	FUNCDEF(_do_pending_interrupt)
-_do_pending_interrupt:
+        .global do_pending_interrupt
+	FUNCDEF(do_pending_interrupt)
+do_pending_interrupt:
 	unimp trap_PendingInterrupt
 	retl
 	nop
-	SET_SIZE(_do_pending_interrupt)
+	SET_SIZE(do_pending_interrupt)
 
 #ifdef trap_DynamicSpaceOverflowError
-	.global _do_dynamic_space_overflow_error
-	FUNCDEF(_do_dynamic_space_overflow_error)
-_do_dynamic_space_overflow_error:	
+	.global do_dynamic_space_overflow_error
+	FUNCDEF(do_dynamic_space_overflow_error)
+do_dynamic_space_overflow_error:	
 	unimp trap_DynamicSpaceOverflowError
 	retl
 	nop
-	SET_SIZE(_do_dynamic_space_overflow_error)		
+	SET_SIZE(do_dynamic_space_overflow_error)		
 #endif				
 
 #ifdef trap_DynamicSpaceOverflowWarning
-	.global _do_dynamic_space_overflow_warning
-	FUNCDEF(_do_dynamic_space_overflow_warning)
-_do_dynamic_space_overflow_warning:	
+	.global do_dynamic_space_overflow_warning
+	FUNCDEF(do_dynamic_space_overflow_warning)
+do_dynamic_space_overflow_warning:	
 	unimp trap_DynamicSpaceOverflowWarning
 	retl
 	nop
-	SET_SIZE(_do_dynamic_space_overflow_warning)		
+	SET_SIZE(do_dynamic_space_overflow_warning)		
 #endif				
 		
 #ifdef LINKAGE_TABLE
@@ -411,10 +380,10 @@ _do_dynamic_space_overflow_warning:
  * registers have been saved, including FP registers.  Hence, no need
  * to save them.
  */
-	.global _lazy_resolve_linkage
-	.global _resolve_linkage_tramp
-	FUNCDEF(_resolve_linkage_tramp)
-_resolve_linkage_tramp:
+	.global lazy_resolve_linkage
+	.global resolve_linkage_tramp
+	FUNCDEF(resolve_linkage_tramp)
+resolve_linkage_tramp:
 	/*
 	 * At this point, all of the global %g registers have been
 	 * saved by call_into_c, so we can use them as temps.  %g2,
@@ -433,7 +402,7 @@ _resolve_linkage_tramp:
 	save	%sp, -FRAMESIZE, %sp
 
 	/* %g2 tells where we came from in the linkage table */
-	call	_lazy_resolve_linkage
+	call	lazy_resolve_linkage
 	mov	reg_NIL, %o0		! in the delay slot
 
 	mov	%o0, reg_NIL
@@ -443,15 +412,15 @@ _resolve_linkage_tramp:
 	jmp	reg_NIL
 	nop
 	
-	SET_SIZE(_resolve_linkage_tramp)						
+	SET_SIZE(resolve_linkage_tramp)						
 		
-	.global _undefined_foreign_symbol_trap
-	FUNCDEF(_undefined_foreign_symbol_trap)
+	.global undefined_foreign_symbol_trap
+	FUNCDEF(undefined_foreign_symbol_trap)
 /*
  * When we get called, %o0 contains the address of the data_vector object 
  * which is a string naming the bad symbol.
  */
-_undefined_foreign_symbol_trap:
+undefined_foreign_symbol_trap:
 	/*
 	   Need to restore all the global registers with the Lisp values that 
 	   were saved away in call_into_c.  (This routine is only called from 
@@ -463,10 +432,10 @@ _undefined_foreign_symbol_trap:
 		
 	*/
 
-	load(_current_dynamic_space_free_pointer, reg_ALLOC)
-        load(_current_binding_stack_pointer, reg_BSP)
-        load(_current_control_stack_pointer, reg_CSP)
-        load(_current_control_frame_pointer, reg_CFP)
+	load(current_dynamic_space_free_pointer, reg_ALLOC)
+        load(current_binding_stack_pointer, reg_BSP)
+        load(current_control_stack_pointer, reg_CSP)
+        load(current_control_frame_pointer, reg_CFP)
 		
 	set	NIL, reg_NIL
 
@@ -493,9 +462,9 @@ _undefined_foreign_symbol_trap:
  * a sparc v9, the Lisp code can actually use all 32 double-float 
  * registers.  For later.
  */
-	.global _fpu_save
-	FUNCDEF(_fpu_save)
-_fpu_save:			
+	.global fpu_save
+	FUNCDEF(fpu_save)
+fpu_save:			
 	std	%f0, [%o0 + 4*0]
 	std	%f2, [%o0 + 4*2]	
 	std	%f4, [%o0 + 4*4]	
@@ -535,11 +504,11 @@ _fpu_save:
 #endif
 	retl
 	nop
-	SET_SIZE(_fpu_save)						
+	SET_SIZE(fpu_save)						
 
-	.global _fpu_restore
-	FUNCDEF(_fpu_restore)
-_fpu_restore:			
+	.global fpu_restore
+	FUNCDEF(fpu_restore)
+fpu_restore:			
 	ldd	[%o0 + 4*0], %f0
 	ldd	[%o0 + 4*2], %f2	
 	ldd	[%o0 + 4*4], %f4	
@@ -579,254 +548,8 @@ _fpu_restore:
 #endif
 	retl
 	nop
-	SET_SIZE(_fpu_restore)						
-
-#ifndef SOLARIS
-
-/****************************************************************\
-* State saving and restoring.
-\****************************************************************/
-
-
-	.global	_call_on_stack
-_call_on_stack:
-	call	%o0
-	sub	%o1, SA(MINFRAME), %sp
-	unimp	0
+	SET_SIZE(fpu_restore)						
 
-	.global	_save_state
-_save_state:
-	save	%sp, -(SA(8*4)+SA(MINFRAME)), %sp
-	ta	ST_FLUSH_WINDOWS
-	st	%i7, [%sp+SA(MINFRAME)]
-	st	%g1, [%sp+SA(MINFRAME)+4]
-	std	%g2, [%sp+SA(MINFRAME)+8]
-	std	%g4, [%sp+SA(MINFRAME)+16]
-	std	%g6, [%sp+SA(MINFRAME)+24]
-	! ### Should also save the FP state.
-	mov	%i1, %o1
-	call	%i0
-	mov	%sp, %o0
-	mov	%o0, %i0
-restore_state:
-	ld	[%sp+SA(MINFRAME)+4], %g1
-	ldd	[%sp+SA(MINFRAME)+8], %g2
-	ldd	[%sp+SA(MINFRAME)+16], %g4
-	ldd	[%sp+SA(MINFRAME)+24], %g6
-	ret
-	restore
-
-	.global	_restore_state
-_restore_state:
-	ta	ST_FLUSH_WINDOWS
-	mov	%o0, %fp
-	mov	%o1, %i0
-	restore
-	ld	[%sp+SA(MINFRAME)], %i7
-	b restore_state
-	mov	%o0, %i0
-
-
-
-/****************************************************************\
-
-We need our own version of sigtramp.
-
-\****************************************************************/
-
-	.global	__sigtramp, __sigfunc
-__sigtramp:
-	!
-	! On entry sp points to:
-	! 	0 - 63: window save area
-	!	64: signal number
-	!	68: signal code
-	!	72: pointer to sigcontext
-	!	76: addr parameter
-	!
-	! A sigcontext looks like:
-#define SC_ONSTACK 0
-#define SC_MASK 4
-#define SC_SP 8
-#define SC_PC 12
-#define SC_NPC 16
-#define SC_PSR 20
-#define SC_G1 24
-#define SC_O0 28
-	!
-	! We change sc_g1 to point to a reg save area:
-#define IREGS_SAVE 0
-#define FPREGS_SAVE (32*4)
-#define Y_SAVE (64*4)
-#define FSR_SAVE (65*4)
-#define REGSAVESIZE (66*4)
-        !
-        ! After we allocate space for the reg save area, the stack looks like:
-        !       < window save area, etc >
-#define REGSAVEOFF SA(MINFRAME)
-#define IREGSOFF REGSAVEOFF+IREGS_SAVE
-#define FPREGSOFF REGSAVEOFF+FPREGS_SAVE
-#define YOFF REGSAVEOFF+Y_SAVE
-#define FSROFF REGSAVEOFF+FSR_SAVE
-#define ORIGSIGNUMOFF REGSAVEOFF+REGSAVESIZE
-#define ORIGCODEOFF ORIGSIGNUMOFF+4
-#define ORIGSCPOFF ORIGSIGNUMOFF+8
-#define ORIGADDROFF ORIGSIGNUMOFF+12
-
-        ! Allocate space for the reg save area.
-        sub     %sp, REGSAVESIZE+SA(MINFRAME)-64, %sp
-
-        ! Save integer registers.
-        ! Note: the globals and outs are good, but the locals and ins have
-        ! been trashed.  But luckly, they have been saved on the stack.
-        ! So we need to extract the saved stack pointer from the sigcontext
-        ! to determine where they are.
-        std     %g0, [%sp+IREGSOFF]
-        std     %g2, [%sp+IREGSOFF+8]
-        std     %g4, [%sp+IREGSOFF+16]
-        std     %g6, [%sp+IREGSOFF+24]
-        std     %o0, [%sp+IREGSOFF+32]
-        std     %o2, [%sp+IREGSOFF+40]
-        ld      [%sp+ORIGSCPOFF], %o2
-	ld	[%o2+SC_SP], %o0
-        std     %o4, [%sp+IREGSOFF+48]
-        st      %o0, [%sp+IREGSOFF+56]
-        st      %o7, [%sp+IREGSOFF+60]
-
-        ldd     [%o0], %l0
-        ldd     [%o0+8], %l2
-        ldd     [%o0+16], %l4
-        ldd     [%o0+24], %l6
-        ldd     [%o0+32], %i0
-        ldd     [%o0+40], %i2
-        ldd     [%o0+48], %i4
-        ldd     [%o0+56], %i6
-        std     %l0, [%sp+IREGSOFF+64]
-        std     %l2, [%sp+IREGSOFF+72]
-        std     %l4, [%sp+IREGSOFF+80]
-        std     %l6, [%sp+IREGSOFF+88]
-        std     %i0, [%sp+IREGSOFF+96]
-        std     %i2, [%sp+IREGSOFF+104]
-        std     %i4, [%sp+IREGSOFF+112]
-        std     %i6, [%sp+IREGSOFF+120]
-
-        ! Check to see if we need to save the fp regs.
-	ld	[%o2+SC_PSR], %l5	! get psr
-	set	PSR_EF, %l0
-	mov	%y, %l2			! save y
-	btst	%l0, %l5		! is FPU enabled?
-	bz	1f			! if not skip FPU save
-	st	%l2, [%sp + YOFF]
-
-	! save all fpu registers.
-	std	%f0, [%sp+FPREGSOFF+(0*4)]
-	std	%f2, [%sp+FPREGSOFF+(2*4)]
-	std	%f4, [%sp+FPREGSOFF+(4*4)]
-	std	%f6, [%sp+FPREGSOFF+(6*4)]
-	std	%f8, [%sp+FPREGSOFF+(8*4)]
-	std	%f10, [%sp+FPREGSOFF+(10*4)]
-	std	%f12, [%sp+FPREGSOFF+(12*4)]
-	std	%f14, [%sp+FPREGSOFF+(14*4)]
-	std	%f16, [%sp+FPREGSOFF+(16*4)]
-	std	%f18, [%sp+FPREGSOFF+(18*4)]
-	std	%f20, [%sp+FPREGSOFF+(20*4)]
-	std	%f22, [%sp+FPREGSOFF+(22*4)]
-	std	%f24, [%sp+FPREGSOFF+(24*4)]
-	std	%f26, [%sp+FPREGSOFF+(26*4)]
-	std	%f28, [%sp+FPREGSOFF+(28*4)]
-	std	%f30, [%sp+FPREGSOFF+(30*4)]
-	st	%fsr, [%sp+FSROFF] ! save old fsr
-1:
-
-	ld	[%sp+ORIGSIGNUMOFF], %o0! get signal number
-	set	__sigfunc, %g1		! get array of function ptrs
-	sll	%o0, 2, %g2		! scale signal number for index
-	ld	[%g1+%g2], %g1		! get func
-	ld	[%sp+ORIGCODEOFF], %o1	! get code
-	! %o2 is already loaded with scp
-	add	%sp, REGSAVEOFF, %o3	! compute pointer to reg save area
-	st	%o3, [%o2 + SC_G1]	! save in sc_g1.
-	call	%g1			! (*_sigfunc[sig])(sig,code,scp,addr)
-	ld	[%sp+ORIGADDROFF], %o3	! get addr
-
-        ! Recompute scp, and drop into _sigreturn
-        ld	[%sp+ORIGSCPOFF], %o0	! get scp
-
-        .global _sigreturn
-_sigreturn:
-	! Load g1 with addr of reg save area (from sc_g1)
-	ld	[%o0+SC_G1], %g1
-
-        ! Move values we cannot restore directory into real sigcontext.
-        ld      [%g1+IREGS_SAVE+(4*1)], %l0	! g1
-        ld      [%g1+IREGS_SAVE+(4*8)], %l1	! o0
-        ld      [%g1+IREGS_SAVE+(4*14)], %l2	! sp
-        st      %l0, [%o0+SC_G1]
-        st      %l1, [%o0+SC_O0]
-        st      %l2, [%o0+SC_SP]
-
-	ld	[%o0+SC_PSR], %l2	! get psr
-	set	PSR_EF, %l0
-	ld	[%g1+Y_SAVE], %l1	! restore y
-	btst	%l0, %l2		! is FPU enabled?
-	bz	2f			! if not skip FPU restore
-	mov	%l1, %y
-
-	ldd	[%g1+FPREGS_SAVE+(0*4)], %f0	! restore all fpu registers.
-	ldd	[%g1+FPREGS_SAVE+(2*4)], %f2
-	ldd	[%g1+FPREGS_SAVE+(4*4)], %f4
-	ldd	[%g1+FPREGS_SAVE+(6*4)], %f6
-	ldd	[%g1+FPREGS_SAVE+(8*4)], %f8
-	ldd	[%g1+FPREGS_SAVE+(10*4)], %f10
-	ldd	[%g1+FPREGS_SAVE+(12*4)], %f12
-	ldd	[%g1+FPREGS_SAVE+(14*4)], %f14
-	ldd	[%g1+FPREGS_SAVE+(16*4)], %f16
-	ldd	[%g1+FPREGS_SAVE+(18*4)], %f18
-	ldd	[%g1+FPREGS_SAVE+(20*4)], %f20
-	ldd	[%g1+FPREGS_SAVE+(22*4)], %f22
-	ldd	[%g1+FPREGS_SAVE+(24*4)], %f24
-	ldd	[%g1+FPREGS_SAVE+(26*4)], %f26
-	ldd	[%g1+FPREGS_SAVE+(28*4)], %f28
-	ldd	[%g1+FPREGS_SAVE+(30*4)], %f30
-	ld	[%g1+FSR_SAVE], %fsr	! restore old fsr
-2:
-
-	! The locals and in are restored from the stack, so we have to put
-	! them there.
-	ld	[%o0+SC_SP], %o1
-        ldd     [%g1+IREGS_SAVE+(16*4)], %l0
-        ldd     [%g1+IREGS_SAVE+(18*4)], %l2
-        ldd     [%g1+IREGS_SAVE+(20*4)], %l4
-        ldd     [%g1+IREGS_SAVE+(22*4)], %l6
-        ldd     [%g1+IREGS_SAVE+(24*4)], %i0
-        ldd     [%g1+IREGS_SAVE+(26*4)], %i2
-        ldd     [%g1+IREGS_SAVE+(28*4)], %i4
-        ldd     [%g1+IREGS_SAVE+(30*4)], %i6
-	std	%l0, [%o1+(0*4)]
-	std	%l2, [%o1+(2*4)]
-	std	%l4, [%o1+(4*4)]
-	std	%l6, [%o1+(6*4)]
-	std	%i0, [%o1+(8*4)]
-	std	%i2, [%o1+(10*4)]
-	std	%i4, [%o1+(12*4)]
-	std	%i6, [%o1+(14*4)]
-
-        ! Restore the globals and outs.  Do not restore %g1, %o0, or %sp
-	! because they get restored from the sigcontext.
-        ldd     [%g1+IREGS_SAVE+(2*4)], %g2
-        ldd     [%g1+IREGS_SAVE+(4*4)], %g4
-        ldd     [%g1+IREGS_SAVE+(6*4)], %g6
-        ld      [%g1+IREGS_SAVE+(9*4)], %o1
-        ldd     [%g1+IREGS_SAVE+(10*4)], %o2
-        ldd     [%g1+IREGS_SAVE+(12*4)], %o4
-        ld      [%g1+IREGS_SAVE+(15*4)], %o7
-
-	set	139, %g1		! sigcleanup system call
-	t	0
-	unimp	0			! just in case it returns
-	/*NOTREACHED*/
-
-#else /* SOLARIS */
 	.global save_context
 	FUNCDEF(save_context)
 save_context:
@@ -834,8 +557,6 @@ save_context:
 	retl				! return from leaf routine
 	nop
 	SET_SIZE(save_context)
-
-#endif
 /*
  * Local variables:
  * tab-width: 8

-----------------------------------------------------------------------

Summary of changes:
 src/lisp/globals.h     |   2 +-
 src/lisp/sparc-assem.S | 427 +++++++++----------------------------------------
 2 files changed, 75 insertions(+), 354 deletions(-)


hooks/post-receive
-- 
CMU Common Lisp




More information about the cmucl-cvs mailing list