Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/lib/libkern/arch/powerpc Add the _restgpr* and _savegpr*...



details:   https://anonhg.NetBSD.org/src/rev/6068d3a57652
branches:  trunk
changeset: 766793:6068d3a57652
user:      matt <matt%NetBSD.org@localhost>
date:      Sat Jul 02 03:35:03 2011 +0000

description:
Add the _restgpr* and _savegpr* entries that GCC 4.5 wants.  This file is
designed to support the other GCC 4.5 variants that may be required.

diffstat:

 sys/lib/libkern/arch/powerpc/Makefile.inc |    3 +-
 sys/lib/libkern/arch/powerpc/gprsavrest.S |  127 ++++++++++++++++++++++++++++++
 2 files changed, 129 insertions(+), 1 deletions(-)

diffs (147 lines):

diff -r 2c9179b72d0d -r 6068d3a57652 sys/lib/libkern/arch/powerpc/Makefile.inc
--- a/sys/lib/libkern/arch/powerpc/Makefile.inc Sat Jul 02 02:38:31 2011 +0000
+++ b/sys/lib/libkern/arch/powerpc/Makefile.inc Sat Jul 02 03:35:03 2011 +0000
@@ -1,10 +1,11 @@
-#      $NetBSD: Makefile.inc,v 1.30 2011/01/17 08:23:57 matt Exp $
+#      $NetBSD: Makefile.inc,v 1.31 2011/07/02 03:35:03 matt Exp $
 
 SRCS+= bswap16.c bswap32.c
 SRCS+= htonl.c htons.c ntohl.c ntohs.c
 SRCS+= syncicache.c
 
 SRCS+= ffs.S memset.S strlen.S
+SRCS+= gprsavrest.S
 
 # Disable the asm versions on evbppc because they break the Explora
 .if ${MACHINE} == "evbppc"
diff -r 2c9179b72d0d -r 6068d3a57652 sys/lib/libkern/arch/powerpc/gprsavrest.S
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/lib/libkern/arch/powerpc/gprsavrest.S Sat Jul 02 03:35:03 2011 +0000
@@ -0,0 +1,127 @@
+/*-
+ * Copyright (c) 2011 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 <powerpc/asm.h>
+
+__RCSID("$NetBSD: gprsavrest.S,v 1.1 2011/07/02 03:35:03 matt Exp $")
+
+#ifndef RESTGPR
+#define RESTGPR(n)     RESTOREXGPR(_restgpr_,n,_x)
+#define        RESTGPR_END(n)  RESTOREXGPR_END(_restgpr,n,_x)
+#define SAVEGPR(n)     SAVEXGPR(_savegpr_,n,)
+#define        SAVEGPR_END(n)  SAVEXGPR_END(_savegpr,n,)
+#endif
+
+#define RESTOREXGPR(a,n,b) \
+       .hidden a##n##b; ENTRY_NOPROFILE(a##n##b); lwz  n,(-4*(32-n))(11)
+#define RESTOREXGPR_END(a,n,b) \
+       .size a##n##b,.-a##n##b
+#define SAVEXGPR(a,n,b) \
+       .hidden a##n##b; ENTRY_NOPROFILE(a##n##b); stw  n,(-4*(32-n))(11)
+#define SAVEXGPR_END(a,n,b) \
+       .size a##n##b,.-a##n##b
+
+       RESTGPR(14)
+       RESTGPR(15)
+       RESTGPR(16)
+       RESTGPR(17)
+       RESTGPR(18)
+       RESTGPR(19)
+       RESTGPR(20)
+       RESTGPR(21)
+       RESTGPR(22)
+       RESTGPR(23)
+       RESTGPR(24)
+       RESTGPR(25)
+       RESTGPR(26)
+       RESTGPR(27)
+       RESTGPR(28)
+       RESTGPR(29)
+       RESTGPR(30)
+       lwz     0,4(11)
+       RESTGPR(31)
+       mtlr    0
+       mr      1,11
+       blr
+       RESTGPR_END(14)
+       RESTGPR_END(15)
+       RESTGPR_END(16)
+       RESTGPR_END(17)
+       RESTGPR_END(18)
+       RESTGPR_END(19)
+       RESTGPR_END(20)
+       RESTGPR_END(21)
+       RESTGPR_END(22)
+       RESTGPR_END(23)
+       RESTGPR_END(24)
+       RESTGPR_END(25)
+       RESTGPR_END(26)
+       RESTGPR_END(27)
+       RESTGPR_END(28)
+       RESTGPR_END(29)
+       RESTGPR_END(30)
+       RESTGPR_END(31)
+
+       SAVEGPR(14)
+       SAVEGPR(15)
+       SAVEGPR(16)
+       SAVEGPR(17)
+       SAVEGPR(18)
+       SAVEGPR(19)
+       SAVEGPR(20)
+       SAVEGPR(21)
+       SAVEGPR(22)
+       SAVEGPR(23)
+       SAVEGPR(24)
+       SAVEGPR(25)
+       SAVEGPR(26)
+       SAVEGPR(27)
+       SAVEGPR(28)
+       SAVEGPR(29)
+       SAVEGPR(30)
+       SAVEGPR(31)
+       blr
+       SAVEGPR_END(14)
+       SAVEGPR_END(15)
+       SAVEGPR_END(16)
+       SAVEGPR_END(17)
+       SAVEGPR_END(18)
+       SAVEGPR_END(19)
+       SAVEGPR_END(20)
+       SAVEGPR_END(21)
+       SAVEGPR_END(22)
+       SAVEGPR_END(23)
+       SAVEGPR_END(24)
+       SAVEGPR_END(25)
+       SAVEGPR_END(26)
+       SAVEGPR_END(27)
+       SAVEGPR_END(28)
+       SAVEGPR_END(29)
+       SAVEGPR_END(30)
+       SAVEGPR_END(31)



Home | Main Index | Thread Index | Old Index