Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/lib/csu/arch/vax USE_COMPILERCRTSTUFF=no support for vax.
details: https://anonhg.NetBSD.org/src/rev/df3b5d879fab
branches: trunk
changeset: 787511:df3b5d879fab
user: matt <matt%NetBSD.org@localhost>
date: Fri Jun 21 15:54:08 2013 +0000
description:
USE_COMPILERCRTSTUFF=no support for vax.
diffstat:
lib/csu/arch/vax/Makefile.inc | 4 +-
lib/csu/arch/vax/crt0.S | 55 +++++-------
lib/csu/arch/vax/crtbegin.S | 178 ++++++++++++++++++++++++++++++++++++++++++
lib/csu/arch/vax/crtend.S | 55 ++++++++++++
4 files changed, 258 insertions(+), 34 deletions(-)
diffs (truncated from 327 to 300 lines):
diff -r 2f7e5865c910 -r df3b5d879fab lib/csu/arch/vax/Makefile.inc
--- a/lib/csu/arch/vax/Makefile.inc Fri Jun 21 12:50:50 2013 +0000
+++ b/lib/csu/arch/vax/Makefile.inc Fri Jun 21 15:54:08 2013 +0000
@@ -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
-
-
diff -r 2f7e5865c910 -r df3b5d879fab lib/csu/arch/vax/crt0.S
--- a/lib/csu/arch/vax/crt0.S Fri Jun 21 12:50:50 2013 +0000
+++ b/lib/csu/arch/vax/crt0.S Fri Jun 21 15:54:08 2013 +0000
@@ -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)
diff -r 2f7e5865c910 -r df3b5d879fab lib/csu/arch/vax/crtbegin.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/csu/arch/vax/crtbegin.S Fri Jun 21 15:54:08 2013 +0000
@@ -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
diff -r 2f7e5865c910 -r df3b5d879fab lib/csu/arch/vax/crtend.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/csu/arch/vax/crtend.S Fri Jun 21 15:54:08 2013 +0000
@@ -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.
Home |
Main Index |
Thread Index |
Old Index