From 01777725ce3f2f0ce2a860659d6acc0a64c20611 Mon Sep 17 00:00:00 2001
From: Raymond Toy <toy.raymond@gmail.com>
Date: Sat, 17 Jan 2015 10:16:39 -0800
Subject: [PATCH] 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 _.
---
 src/lisp/globals.h     |   2 +-
 src/lisp/sparc-assem.S | 427 +++++++----------------------------------
 2 files changed, 75 insertions(+), 354 deletions(-)

diff --git a/src/lisp/globals.h b/src/lisp/globals.h
index c382e4820..71a65c393 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 1bb4f9115..d4b96cb5e 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
-- 
GitLab