diff options
| author | Warner Losh <imp@FreeBSD.org> | 2017-10-12 14:56:28 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2017-10-12 14:56:28 +0000 |
| commit | 4eb1313ff2ab43011d091b7560cd688c7838e142 (patch) | |
| tree | 52c1487244ff26dbe95f6afcaac77b591ff84ae4 /lib/libstand/powerpc | |
| parent | 93f4c41f2807d5cbc4050afa47cd72b5ae282a6a (diff) | |
Notes
Diffstat (limited to 'lib/libstand/powerpc')
| -rw-r--r-- | lib/libstand/powerpc/_setjmp.S | 115 | ||||
| -rw-r--r-- | lib/libstand/powerpc/syncicache.c | 103 |
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"); -} - |
