svn commit: r204674 - head/lib/csu/mips

Warner Losh imp at FreeBSD.org
Wed Mar 3 21:59:24 UTC 2010


Author: imp
Date: Wed Mar  3 21:59:23 2010
New Revision: 204674
URL: http://svn.freebsd.org/changeset/base/204674

Log:
  Use ABI neutral macrosa
  
  Submitted by:	jmallet

Modified:
  head/lib/csu/mips/crti.S
  head/lib/csu/mips/crtn.S

Modified: head/lib/csu/mips/crti.S
==============================================================================
--- head/lib/csu/mips/crti.S	Wed Mar  3 21:54:49 2010	(r204673)
+++ head/lib/csu/mips/crti.S	Wed Mar  3 21:59:23 2010	(r204674)
@@ -6,32 +6,45 @@ __FBSDID("$FreeBSD$");
 	.globl	_init
 	.type	_init,%function
 _init:
-#ifdef __ABICALLS__
-	.set   noreorder
-	.cpload $25
-	.set   reorder
-	subu	sp, sp, 32
-	.cprestore 16
-	sw	ra, 28(sp)
-
+	.set nreoorder
+#if defined(__ABICALLS__) && (defined(__mips_o32) || defined(__mips_o64))
+	SETUP_GP
+#endif
+	PTR_ADDU sp, sp, -CALLFRAME_SIZ
+	REG_S	ra, CALLFRAME_RA(sp)
+#if defined(__ABICALLS__)
+#if defined(__mips_o32) || defined(__mips_o64)
+	SAVE_GP(CALLFRAME_GP)
 #else
-	subu	sp, sp, 32
-	sw	ra, 28(sp)
+	SETUP_GP64(CALLFRAME_GP, _init)
+#endif
+#else /* __ABICALLS__ */
+#if defined(__mips_n32) || defined(__mips_n64)
+	REG_S	gp, CALLFRAME_GP(sp)
+#endif
 #endif
+	.set reorder
 
 	.section .fini,"ax",%progbits
 	.align 4
 	.globl	_fini
 	.type	_fini,%function
 _fini:
-#ifdef __ABICALLS__
-	.set   noreorder
-	.cpload $25
-	.set   reorder
-	subu	sp, sp, 32
-	.cprestore 16
-	sw	ra, 28(sp)
+	.set noreorder
+#if defined(__ABICALLS__) && (defined(__mips_o32) || defined(__mips_o64))
+	SETUP_GP
+#endif
+	PTR_ADDU sp, sp, -CALLFRAME_SIZ
+	REG_S	ra, CALLFRAME_RA(sp)
+#if defined(__ABICALLS__)
+#if defined(__mips_o32) || defined(__mips_o64)
+	SAVE_GP(CALLFRAME_GP)
 #else
-	subu    sp, sp, 32
-	sw	ra, 28(sp)
+	SETUP_GP64(CALLFRAME_GP, _fini)
+#endif
+#else /* __ABICALLS__ */
+#if defined(__mips_n32) || defined(__mips_n64)
+	REG_S	gp, CALLFRAME_GP(sp)
+#endif
 #endif
+	.set reorder

Modified: head/lib/csu/mips/crtn.S
==============================================================================
--- head/lib/csu/mips/crtn.S	Wed Mar  3 21:54:49 2010	(r204673)
+++ head/lib/csu/mips/crtn.S	Wed Mar  3 21:59:23 2010	(r204674)
@@ -1,15 +1,24 @@
 #include <machine/asm.h>
 __FBSDID("$FreeBSD$");
+
 	.section .init,"ax",%progbits
-	lw	ra, 28(sp)
-	.set	noreorder
-	j	ra
-	addu	sp, sp, 32
-	.set	reorder
+	.align 4
+	.set noreorder
+#if defined(__ABICALLS__) && (defined(__mips_n32) || defined(__mips_n64))
+	REG_L	gp, CALLFRAME_GP(sp)
+#endif
+	REG_L	ra, CALLFRAME_RA(sp)
+	jr	ra
+	PTR_ADDU sp, sp, CALLFRAME_SIZ
+	.set reorder
 
 	.section .fini,"ax",%progbits
-	lw	ra, 28(sp)
-	.set	noreorder
-	j	ra
-	addu	sp, sp, 32
-	.set	reorder
+	.align 4
+	.set noreorder
+#if defined(__ABICALLS__) && (defined(__mips_n32) || defined(__mips_n64))
+	REG_L	gp, CALLFRAME_GP(sp)
+#endif
+	REG_L	ra, CALLFRAME_RA(sp)
+	jr	ra
+	PTR_ADDU sp, sp, CALLFRAME_SIZ
+	.set reorder


More information about the svn-src-head mailing list