Module Name:    src
Committed By:   matt
Date:           Thu Feb 27 16:47:48 UTC 2014

Modified Files:
        src/lib/csu/arch/powerpc: crt0.S crtend.S crti.S crtn.S

Log Message:
Add powerpc64 support


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/csu/arch/powerpc/crt0.S
cvs rdiff -u -r1.2 -r1.3 src/lib/csu/arch/powerpc/crtend.S
cvs rdiff -u -r1.1 -r1.2 src/lib/csu/arch/powerpc/crti.S \
    src/lib/csu/arch/powerpc/crtn.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/csu/arch/powerpc/crt0.S
diff -u src/lib/csu/arch/powerpc/crt0.S:1.4 src/lib/csu/arch/powerpc/crt0.S:1.5
--- src/lib/csu/arch/powerpc/crt0.S:1.4	Sat Jul  2 20:16:09 2011
+++ src/lib/csu/arch/powerpc/crt0.S	Thu Feb 27 16:47:48 2014
@@ -29,25 +29,34 @@
 
 #include <powerpc/asm.h>
 
-RCSID("$NetBSD: crt0.S,v 1.4 2011/07/02 20:16:09 matt Exp $")
+RCSID("$NetBSD: crt0.S,v 1.5 2014/02/27 16:47:48 matt Exp $")
 
 STRONG_ALIAS(_start,__start)
 
 	.hidden ___start
 
+#ifndef _LP64
 	.weak	_SDA_BASE_
+#endif
 
 ENTRY_NOPROFILE(__start)
+#ifndef _LP64
 	bcl	20,31,1f
 1:
 	mflr	%r11
 	/* SVR4 ABI says small data is in r13 */
 	addis	%r13,%r11,_SDA_BASE_-1b@ha
 	addi	%r13,%r13,_SDA_BASE_-1b@l
+#endif
 
 	mr	%r3,%r7		/* cleanup */
 	mr	%r4,%r6		/* obj */
 	mr	%r5,%r8		/* ps_strings */
 
+#ifdef _LP64
+	b	.___start
+	nop
+#else
 	b	___start
+#endif
 END(__start)

Index: src/lib/csu/arch/powerpc/crtend.S
diff -u src/lib/csu/arch/powerpc/crtend.S:1.2 src/lib/csu/arch/powerpc/crtend.S:1.3
--- src/lib/csu/arch/powerpc/crtend.S:1.2	Thu Jun 27 21:24:39 2013
+++ src/lib/csu/arch/powerpc/crtend.S	Thu Feb 27 16:47:48 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: crtend.S,v 1.2 2013/06/27 21:24:39 matt Exp $	*/
+/*	$NetBSD: crtend.S,v 1.3 2014/02/27 16:47:48 matt Exp $	*/
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -30,26 +30,42 @@
 
 #include <powerpc/asm.h>
 
-RCSID("$NetBSD: crtend.S,v 1.2 2013/06/27 21:24:39 matt Exp $")
+RCSID("$NetBSD: crtend.S,v 1.3 2014/02/27 16:47:48 matt Exp $")
 
 	.section	.ctors, "aw", @progbits
-	.p2align 2
+	.p2align P2SZREG
 	.global		__CTOR_LIST_END__
 	.hidden 	__CTOR_LIST_END__
 __CTOR_LIST_END__:
+#ifdef _LP64
+	.quad 0
+#else
 	.long 0
+#endif
 
 	.section	.dtors, "aw", @progbits
-	.p2align 2
+	.p2align P2SZREG
 	.global		__DTOR_LIST_END__
 	.hidden 	__DTOR_LIST_END__
 __DTOR_LIST_END__:
+#ifdef _LP64
+	.quad 0
+#else
 	.long 0
+#endif
 
 	.section	.eh_frame, "a", @progbits
-	.p2align 2
+	.p2align P2SZREG
+#ifdef _LP64
+	.quad 0
+#else
 	.long 0
+#endif
 
 	.section	.jcr, "aw", @progbits
-	.p2align 2
+	.p2align P2SZREG
+#ifdef _LP64
+	.quad 0
+#else
 	.long 0
+#endif

Index: src/lib/csu/arch/powerpc/crti.S
diff -u src/lib/csu/arch/powerpc/crti.S:1.1 src/lib/csu/arch/powerpc/crti.S:1.2
--- src/lib/csu/arch/powerpc/crti.S:1.1	Tue Feb  8 02:02:25 2011
+++ src/lib/csu/arch/powerpc/crti.S	Thu Feb 27 16:47:48 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: crti.S,v 1.1 2011/02/08 02:02:25 matt Exp $ */
+/* $NetBSD: crti.S,v 1.2 2014/02/27 16:47:48 matt Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -31,20 +31,54 @@
 
 #include <powerpc/asm.h>
 
-RCSID("$NetBSD: crti.S,v 1.1 2011/02/08 02:02:25 matt Exp $")
+RCSID("$NetBSD: crti.S,v 1.2 2014/02/27 16:47:48 matt Exp $")
 
 #include "sysident.S"
 
+	.globl	_init
+	.type	_init,@function
 	.section ".init", "ax", @progbits
-	.align 2; .globl _init; .type _init,@function
+	.align	P2SZREG
+#ifdef _LP64
+	.globl	._init
+	.pushsection ".opd", "aw"
+	.align	3
+_init:	.quad	._init,.TOC.@tocbase,0
+	.size	_init, (3*SZREG)
+	.popsection
+._init:
+#else
 _init:
+#endif
 	mflr	%r0
+#ifdef _LP64
+	stlongu	%r1, -(6*SZREG)(%r1)
+	stlong	%r0, (2*SZREG)(%r1)
+#else
 	stw	%r0, (1*SZREG)(%r1)
 	stwu	%r1, -(4*SZREG)(%r1)
+#endif
 
+	.globl _fini
+	.type	_fini,@function
 	.section ".fini", "ax", @progbits
-	.align 2; .globl _fini; .type _fini,@function
+	.align	P2SZREG
+#ifdef _LP64
+	.globl	._fini
+	.pushsection ".opd", "aw"
+	.align	3
+_fini:	.quad	._fini,.TOC.@tocbase,0
+	.size	_fini, (3*SZREG)
+	.popsection
+._fini:
+#else
 _fini:
+#endif
 	mflr	%r0
+#ifdef _LP64
+	stlongu	%r1, -(6*SZREG)(%r1)
+	stlong	%r0, (2*SZREG)(%r1)
+#else
 	stw	%r0, (1*SZREG)(%r1)
 	stwu	%r1, -(4*SZREG)(%r1)
+#endif
Index: src/lib/csu/arch/powerpc/crtn.S
diff -u src/lib/csu/arch/powerpc/crtn.S:1.1 src/lib/csu/arch/powerpc/crtn.S:1.2
--- src/lib/csu/arch/powerpc/crtn.S:1.1	Tue Feb  8 02:02:25 2011
+++ src/lib/csu/arch/powerpc/crtn.S	Thu Feb 27 16:47:48 2014
@@ -29,16 +29,26 @@
 
 #include <powerpc/asm.h>
 
-RCSID("$NetBSD: crtn.S,v 1.1 2011/02/08 02:02:25 matt Exp $")
+RCSID("$NetBSD: crtn.S,v 1.2 2014/02/27 16:47:48 matt Exp $")
 
 	.section ".init", "ax", @progbits
+#ifdef _LP64
+	ldreg	%r0, (2*SZREG)(%r1)
+	addi	%r1, %r1, (6*SZREG)
+#else
 	addi	%r1, %r1, (4*SZREG)
 	lwz	%r0, (1*SZREG)(%r1)
+#endif
 	mtlr	%r0
 	blr
 
 	.section ".fini", "ax", @progbits
+#ifdef _LP64
+	ldreg	%r0, (2*SZREG)(%r1)
+	addi	%r1, %r1, (6*SZREG)
+#else
 	addi	%r1, %r1, (4*SZREG)
 	lwz	%r0, (1*SZREG)(%r1)
+#endif
 	mtlr	%r0
 	blr

Reply via email to