Module Name: src Committed By: matt Date: Fri Jun 21 15:54:08 UTC 2013
Modified Files: src/lib/csu/arch/vax: Makefile.inc crt0.S Added Files: src/lib/csu/arch/vax: crtbegin.S crtend.S Log Message: USE_COMPILERCRTSTUFF=no support for vax. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/lib/csu/arch/vax/Makefile.inc cvs rdiff -u -r1.2 -r1.3 src/lib/csu/arch/vax/crt0.S cvs rdiff -u -r0 -r1.1 src/lib/csu/arch/vax/crtbegin.S \ src/lib/csu/arch/vax/crtend.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/vax/Makefile.inc diff -u src/lib/csu/arch/vax/Makefile.inc:1.1 src/lib/csu/arch/vax/Makefile.inc:1.2 --- src/lib/csu/arch/vax/Makefile.inc:1.1 Sat Aug 7 18:01:34 2010 +++ src/lib/csu/arch/vax/Makefile.inc Fri Jun 21 15:54:08 2013 @@ -1,5 +1,3 @@ -# $NetBSD: Makefile.inc,v 1.1 2010/08/07 18:01:34 joerg Exp $ +# $NetBSD: Makefile.inc,v 1.2 2013/06/21 15:54:08 matt Exp $ CPPFLAGS+= -DELFSIZE=32 - - Index: src/lib/csu/arch/vax/crt0.S diff -u src/lib/csu/arch/vax/crt0.S:1.2 src/lib/csu/arch/vax/crt0.S:1.3 --- src/lib/csu/arch/vax/crt0.S:1.2 Sat Jul 2 20:14:10 2011 +++ src/lib/csu/arch/vax/crt0.S Fri Jun 21 15:54:08 2013 @@ -1,10 +1,12 @@ -/* $NetBSD: crt0.S,v 1.2 2011/07/02 20:14:10 matt Exp $ */ +/* $NetBSD: crt0.S,v 1.3 2013/06/21 15:54:08 matt Exp $ */ -/* - * Copyright (c) 1999 Matt Thomas - * Copyright (c) 1995 Christopher G. Demetriou +/*- + * Copyright (c) 2013 The NetBSD Foundation, Inc. * All rights reserved. - * + * + * This code is derived from software contributed to The NetBSD Foundation + * by Matt Thomas of 3am Software Foundry. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,37 +15,28 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed for the - * NetBSD Project. See http://www.NetBSD.org/ for - * information about NetBSD. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>> + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. */ -#include <machine/asm.h> +#include <vax/asm.h> -RCSID("$NetBSD: crt0.S,v 1.2 2011/07/02 20:14:10 matt Exp $") +RCSID("$NetBSD: crt0.S,v 1.3 2013/06/21 15:54:08 matt Exp $") STRONG_ALIAS(_start,__start) -_ENTRY(__start) - .word 0x0101 - pushl %r9 /* ps_strings */ - pushl %r8 /* obj */ +_ENTRY(__start, 0x0101) + movq %r8,-(%sp) /* ps_strings / obj */ pushl %r7 /* cleanup */ calls $3,___start +END(__start) Added files: Index: src/lib/csu/arch/vax/crtbegin.S diff -u /dev/null src/lib/csu/arch/vax/crtbegin.S:1.1 --- /dev/null Fri Jun 21 15:54:08 2013 +++ src/lib/csu/arch/vax/crtbegin.S Fri Jun 21 15:54:08 2013 @@ -0,0 +1,178 @@ +/* $NetBSD: crtbegin.S,v 1.1 2013/06/21 15:54:08 matt Exp $ */ +/*- + * Copyright (c) 2013 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Matt Thomas of 3am Software Foundry. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <vax/asm.h> + +RCSID("$NetBSD: crtbegin.S,v 1.1 2013/06/21 15:54:08 matt Exp $") + + .section .ctors, "aw", @progbits + .p2align 2 +__CTOR_LIST__: /* symbol is not used */ + .word -1 + + .section .dtors, "aw", @progbits + .p2align 2 +__DTOR_LIST__: + + .section .eh_frame, "a", @progbits + .p2align 2 +__EH_FRAME_LIST__: + + .section .jcr, "aw", @progbits + .p2align 2 +__JCR_LIST__: + + .section .data.rel, "aw", @progbits + .p2align 2 + .type __dso_handle, @object + .size __dso_handle, 4 + .globl __dso_handle + .hidden __dso_handle +__dso_handle: +#ifdef SHARED + .word __dso_handle +#else + .word 0 +#endif + + .local __dwarf_eh_object + .comm __dwarf_eh_object,24 + .local __initialized + .comm __initialized,1 + .local __finished + .comm __finished,1 + + .text +/* + * All variables are local to this DSO so we can skip using GOT references + * and instead use PCREL references to access them. We do this regardless + * of being PIC since it isn't any additional overhead to do so. + * + * We don't setup a TOC since all of ours calls are indirect so it isn't + * needed. + */ + + .type __do_global_dtors_aux, @function +__do_global_dtors_aux: + .word 0x0100 /* save r8 */ + tstb __finished /* done this already? */ + bneq 4f + movb $1, __finished /* mark it as done */ + +#ifdef SHARED + /* + * if (__cxa_finalize) + * __cxa_finalize(&__dso_handle); + */ + movab __cxa_finalize, %r0 + bneq 1f + pushal __dso_handle + calls $0, (%r0) +1: +#endif /* SHARED */ + + /* + * We use load with postincrement to advance the pointer along. + * We know the list ends with 0. If we load one, we must be done. + */ + moval __DTOR_LIST__, %r8 /* skip first entry */ +2: movl (%r8)+, %r0 /* r0 = *r8++; */ + beql 3f + calls $0, (%r0) + brb 2b +3: + +#ifdef SHARED + /* + * if (__deregister_frame_info) + * __deregister_frame_info(&__EH_FRAME_LIST__[0]); + */ + moval __deregister_frame_info, %r0 + bneq 4f + pushal __EH_FRAME_LIST__ + calls $0, (%r0) +#endif /* SHARED */ + +4: ret + + .weak __deregister_frame_info + .weak __cxa_finalize + + .weak __register_frame_info + .weak _Jv_RegisterClasses + + .type __do_global_ctors_aux, @function +__do_global_ctors_aux: + tstb __initialized + bneq 4f + movb $1, __initialized + + /* + * if (__register_frame_info) + * __register_frame_info(&__EH_FRAME_LIST__[0], &__dwarf_eh_object) + */ + movab __register_frame_info, %r0 + beql 1f + + pushal __dwarf_eh_object + pushal __EH_FRAME_LIST__ + calls $0, (%r0) +1: + + /* + * if (_Jv_RegisterClasses && __JCR_LIST__[0]) + * _Jv_RegisterClasses(&__JCR_LIST__[0]); + */ + movab _Jv_RegisterClasses, %r0 + beql 2f + + pushal __JCR_LIST__ + calls $0, (%r0) +2: + + /* + * Get the end of the CTOR list. The first entry is -1 so if we + * load a negative address, we know we are done. + */ + + moval __CTOR_LIST_END__, %r8 /* get end of list */ +3: movl -(%r8), %r0 /* get function pointer with predec */ + blss 4f /* negative? done. */ + calls $0, (%r0) /* call it */ + brb 3b /* get next one */ + +4: ret + + .hidden _C_LABEL(__CTOR_LIST_END__) + + .section .init, "ax", @progbits + calls $0, __do_global_ctors_aux + .section .fini, "ax", @progbits + calls $0, __do_global_dtors_aux Index: src/lib/csu/arch/vax/crtend.S diff -u /dev/null src/lib/csu/arch/vax/crtend.S:1.1 --- /dev/null Fri Jun 21 15:54:08 2013 +++ src/lib/csu/arch/vax/crtend.S Fri Jun 21 15:54:08 2013 @@ -0,0 +1,55 @@ +/* $NetBSD: crtend.S,v 1.1 2013/06/21 15:54:08 matt Exp $ */ +/*- + * Copyright (c) 2012 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Matt Thomas of 3am Software Foundry. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <vax/asm.h> + +RCSID("$NetBSD: crtend.S,v 1.1 2013/06/21 15:54:08 matt Exp $") + + .section .ctors, "aw", @progbits + .p2align 2 + .global __CTOR_LIST_END__ + .hidden __CTOR_LIST_END__ +__CTOR_LIST_END__: + .word 0 + + .section .dtors, "aw", @progbits + .p2align 2 + .global __DTOR_LIST_END__ + .hidden __DTOR_LIST_END__ +__DTOR_LIST_END__: + .word 0 + + .section .eh_frame, "a", @progbits + .p2align 2 + .space 4 + + .section .jcr, "aw", @progbits + .p2align 2 + .space 4