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