aboutsummaryrefslogtreecommitdiff
path: root/lib/libstand/powerpc
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2017-10-12 14:56:28 +0000
committerWarner Losh <imp@FreeBSD.org>2017-10-12 14:56:28 +0000
commit4eb1313ff2ab43011d091b7560cd688c7838e142 (patch)
tree52c1487244ff26dbe95f6afcaac77b591ff84ae4 /lib/libstand/powerpc
parent93f4c41f2807d5cbc4050afa47cd72b5ae282a6a (diff)
Notes
Diffstat (limited to 'lib/libstand/powerpc')
-rw-r--r--lib/libstand/powerpc/_setjmp.S115
-rw-r--r--lib/libstand/powerpc/syncicache.c103
2 files changed, 0 insertions, 218 deletions
diff --git a/lib/libstand/powerpc/_setjmp.S b/lib/libstand/powerpc/_setjmp.S
deleted file mode 100644
index 7c7c24b1237c..000000000000
--- a/lib/libstand/powerpc/_setjmp.S
+++ /dev/null
@@ -1,115 +0,0 @@
-/* $FreeBSD$ */
-/* from: NetBSD: setjmp.S,v 1.1 1998/01/27 15:13:12 sakamoto Exp $ */
-/* from: OpenBSD: setjmp.S,v 1.2 1996/12/28 06:22:18 rahnds Exp */
-/* kernel version of this file, does not have signal goop */
-/* int setjmp(jmp_buf env) */
-
-#include <machine/asm.h>
-
-#ifdef __powerpc64__
-#define LD_REG ld
-#define ST_REG std
-#define REGWIDTH 8
-#else
-#define LD_REG lwz
-#define ST_REG stw
-#define REGWIDTH 4
-#endif
-
-#define JMP_r1 1*REGWIDTH
-#define JMP_r2 2*REGWIDTH
-#define JMP_r14 3*REGWIDTH
-#define JMP_r15 4*REGWIDTH
-#define JMP_r16 5*REGWIDTH
-#define JMP_r17 6*REGWIDTH
-#define JMP_r18 7*REGWIDTH
-#define JMP_r19 8*REGWIDTH
-#define JMP_r20 9*REGWIDTH
-#define JMP_r21 10*REGWIDTH
-#define JMP_r22 11*REGWIDTH
-#define JMP_r23 12*REGWIDTH
-#define JMP_r24 13*REGWIDTH
-#define JMP_r25 14*REGWIDTH
-#define JMP_r26 15*REGWIDTH
-#define JMP_r27 16*REGWIDTH
-#define JMP_r28 17*REGWIDTH
-#define JMP_r29 18*REGWIDTH
-#define JMP_r30 19*REGWIDTH
-#define JMP_r31 20*REGWIDTH
-#define JMP_lr 21*REGWIDTH
-#define JMP_cr 22*REGWIDTH
-#define JMP_ctr 23*REGWIDTH
-#define JMP_xer 24*REGWIDTH
-#define JMP_sig 25*REGWIDTH
-
-ASENTRY_NOPROF(_setjmp)
- ST_REG 31, JMP_r31(3)
- /* r1, r2, r14-r30 */
- ST_REG 1, JMP_r1 (3)
- ST_REG 2, JMP_r2 (3)
- ST_REG 14, JMP_r14(3)
- ST_REG 15, JMP_r15(3)
- ST_REG 16, JMP_r16(3)
- ST_REG 17, JMP_r17(3)
- ST_REG 18, JMP_r18(3)
- ST_REG 19, JMP_r19(3)
- ST_REG 20, JMP_r20(3)
- ST_REG 21, JMP_r21(3)
- ST_REG 22, JMP_r22(3)
- ST_REG 23, JMP_r23(3)
- ST_REG 24, JMP_r24(3)
- ST_REG 25, JMP_r25(3)
- ST_REG 26, JMP_r26(3)
- ST_REG 27, JMP_r27(3)
- ST_REG 28, JMP_r28(3)
- ST_REG 29, JMP_r29(3)
- ST_REG 30, JMP_r30(3)
- /* cr, lr, ctr, xer */
- mfcr 0
- ST_REG 0, JMP_cr(3)
- mflr 0
- ST_REG 0, JMP_lr(3)
- mfctr 0
- ST_REG 0, JMP_ctr(3)
- mfxer 0
- ST_REG 0, JMP_xer(3)
- /* f14-f31, fpscr */
- li 3, 0
- blr
-
-
-.extern sigsetmask
-ASENTRY_NOPROF(_longjmp)
- LD_REG 31, JMP_r31(3)
- /* r1, r2, r14-r30 */
- LD_REG 1, JMP_r1 (3)
- LD_REG 2, JMP_r2 (3)
- LD_REG 14, JMP_r14(3)
- LD_REG 15, JMP_r15(3)
- LD_REG 16, JMP_r16(3)
- LD_REG 17, JMP_r17(3)
- LD_REG 18, JMP_r18(3)
- LD_REG 19, JMP_r19(3)
- LD_REG 20, JMP_r20(3)
- LD_REG 21, JMP_r21(3)
- LD_REG 22, JMP_r22(3)
- LD_REG 23, JMP_r23(3)
- LD_REG 24, JMP_r24(3)
- LD_REG 25, JMP_r25(3)
- LD_REG 26, JMP_r26(3)
- LD_REG 27, JMP_r27(3)
- LD_REG 28, JMP_r28(3)
- LD_REG 29, JMP_r29(3)
- LD_REG 30, JMP_r30(3)
- /* cr, lr, ctr, xer */
- LD_REG 0, JMP_cr(3)
- mtcr 0
- LD_REG 0, JMP_lr(3)
- mtlr 0
- LD_REG 0, JMP_ctr(3)
- mtctr 0
- LD_REG 0, JMP_xer(3)
- mtxer 0
- /* f14-f31, fpscr */
- mr 3, 4
- blr
diff --git a/lib/libstand/powerpc/syncicache.c b/lib/libstand/powerpc/syncicache.c
deleted file mode 100644
index 434dcec63416..000000000000
--- a/lib/libstand/powerpc/syncicache.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*-
- * Copyright (C) 1995-1997, 1999 Wolfgang Solfrank.
- * Copyright (C) 1995-1997, 1999 TooLs GmbH.
- * All rights reserved.
- *
- * 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by TooLs GmbH.
- * 4. The name of TooLs GmbH may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``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 TOOLS GMBH 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.
- *
- * $NetBSD: syncicache.c,v 1.2 1999/05/05 12:36:40 tsubai Exp $
- */
-
-#ifndef lint
-static const char rcsid[] =
- "$FreeBSD$";
-#endif /* not lint */
-
-#include <sys/param.h>
-#if defined(_KERNEL) || defined(_STANDALONE)
-#include <sys/time.h>
-#include <sys/proc.h>
-#include <vm/vm.h>
-#endif
-#include <sys/sysctl.h>
-
-#include <machine/cpu.h>
-#include <machine/md_var.h>
-
-#ifdef _STANDALONE
-int cacheline_size = 32;
-#endif
-
-#if !defined(_KERNEL) && !defined(_STANDALONE)
-#include <stdlib.h>
-
-int cacheline_size = 0;
-
-static void getcachelinesize(void);
-
-static void
-getcachelinesize()
-{
- static int cachemib[] = { CTL_MACHDEP, CPU_CACHELINE };
- int clen;
-
- clen = sizeof(cacheline_size);
-
- if (sysctl(cachemib, sizeof(cachemib) / sizeof(cachemib[0]),
- &cacheline_size, &clen, NULL, 0) < 0 || !cacheline_size) {
- abort();
- }
-}
-#endif
-
-void
-__syncicache(void *from, int len)
-{
- int l, off;
- char *p;
-
-#if !defined(_KERNEL) && !defined(_STANDALONE)
- if (!cacheline_size)
- getcachelinesize();
-#endif
-
- off = (u_int)from & (cacheline_size - 1);
- l = len += off;
- p = (char *)from - off;
-
- do {
- __asm __volatile ("dcbst 0,%0" :: "r"(p));
- p += cacheline_size;
- } while ((l -= cacheline_size) > 0);
- __asm __volatile ("sync");
- p = (char *)from - off;
- do {
- __asm __volatile ("icbi 0,%0" :: "r"(p));
- p += cacheline_size;
- } while ((len -= cacheline_size) > 0);
- __asm __volatile ("sync; isync");
-}
-