Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/aarch64 retire copyinout.S and fusu.S
details: https://anonhg.NetBSD.org/src/rev/f442b86cce7e
branches: trunk
changeset: 355836:f442b86cce7e
user: nisimura <nisimura%NetBSD.org@localhost>
date: Wed Aug 16 22:52:40 2017 +0000
description:
retire copyinout.S and fusu.S
diffstat:
sys/arch/aarch64/aarch64/copyinout.S | 157 -----------------------------------
sys/arch/aarch64/aarch64/fusu.S | 135 ------------------------------
sys/arch/aarch64/conf/files.aarch64 | 6 +-
3 files changed, 3 insertions(+), 295 deletions(-)
diffs (truncated from 322 to 300 lines):
diff -r e593152ba6c6 -r f442b86cce7e sys/arch/aarch64/aarch64/copyinout.S
--- a/sys/arch/aarch64/aarch64/copyinout.S Wed Aug 16 22:49:05 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/* $NetBSD: copyinout.S,v 1.1 2014/08/10 05:47:37 matt Exp $ */
-
-/*-
- * Copyright (c) 2014 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 <aarch64/asm.h>
-#include "assym.h"
-
-RCSID("$NetBSD: copyinout.S,v 1.1 2014/08/10 05:47:37 matt Exp $");
-
-/* LINTSTUB: int copyin(const void *uaddr, void *kaddr, size_t len); */
-
-ENTRY(copyin)
- mrs x3, tpidr_el1
- ldr x3, [x3, #CI_CURLWP]
- adr x4, .Lcopyin_onfault
- str x4, [x3, #L_MD_ONFAULT]
- /*
- * How much to copy? Less than 32 bytes? ...
- */
- lsr x4, x2, #5
- cbz x4, .Lcopyin_last_suboword
-
- /*
- * Subtract the amount of data we copied to get a quadword aligned
- * from the length: length -= 16 - offset -> length += offset - 16;
- */
- and x5, x0, #15
- cbz x5, .Lcopyin_loop
-
- add x2, x2, x5
- sub x2, x2, #16
-
- tbz x0, #0, .Lcopyin_hword_aligned
- ldtrb w5, [x0]
- add x0, x0, #1
- strb w5, [x1], #1
-.Lcopyin_hword_aligned:
- tbz x0, #1, .Lcopyin_word_aligned
- ldtrh w5, [x0]
- add x0, x0, #2
- strh w5, [x1], #2
-.Lcopyin_word_aligned:
- tbz x0, #2, .Lcopyin_dword_aligned
- ldtr w5, [x0]
- add x0, x0, #4
- str w5, [x1], #4
-.Lcopyin_dword_aligned:
- tbz x0, #3, .Lcopyin_dword_aligned
- ldtr x5, [x0]
- add x0, x0, #8
- str x5, [x1], #8
-.Lcopyin_qword_aligned:
- lsr x4, x2, #5
- cbz x4, .Lcopyin_last_suboword
-.Lcopyin_loop:
- ldtr x5, [x0, #0]
- ldtr x6, [x0, #8]
- ldtr x7, [x0, #16]
- ldtr x8, [x0, #24]
- add x0, x0, #32
- stp x5, x6, [x1], #16
- stp x7, x8, [x1], #16
- sub x4, x4, #1
- cbnz x4, .Lcopyin_loop
-.Lcopyin_last_suboword:
- tbz x2, #5, .Lcopyin_last_subqword
- ldtr x5, [x0, #0]
- ldtr x6, [x0, #8]
- add x0, x0, #16
- stp x5, x6, [x1], #16
-.Lcopyin_last_subqword:
- tbz x2, #3, .Lcopyin_last_subdword
- ldtr x5, [x0]
- add x0, x0, #8
- str x5, [x1], #8
-.Lcopyin_last_subdword:
- tbz x2, #2, .Lcopyin_last_subdword
- ldtr w5, [x0]
- add x0, x0, #4
- str w5, [x1], #4
-.Lcopyin_last_subword:
- tbz x2, #1, .Lcopyin_last_subhword
- ldtrh w5, [x0]
- add x0, x0, #2
- strh w5, [x1], #2
-.Lcopyin_last_subhword:
- tbz x2, #0, .Lcopyin_done
- ldtrb w5, [x0]
- strb w5, [x1]
-.Lcopyin_done:
- str xzr, [x3, #L_MD_ONFAULT]
- mov x0, xzr
- ret
-
-.Lcopyin_onfault:
- str xzr, [x3, #L_MD_ONFAULT]
- mov x0, #EFAULT
- ret
-END(copyin)
-
-/* LINTSTUB: int copyout(const void *kaddr, void *uaddr, size_t len); */
-
-ENTRY(copyout)
- ret
-END(copyout)
-
-/* LINTSTUB: int copystr(const void *kfaddr, void *kdaddr, size_t len, size_t *done); */
-
-ENTRY(copystr)
- ret
-END(copystr)
-
-/* LINTSTUB: int copyinstr(const void *uaddr, void *kaddr, size_t len, size_t *done); */
-
-ENTRY(copyinstr)
- ret
-END(copyinstr)
-
-/* LINTSTUB: int copyoutstr(const void *kaddr, void *uaddr, size_t len, size_t *done); */
-
-ENTRY(copyoutstr)
- ret
-END(copyoutstr)
-
-/* LINSTSTUB: int kcopy(const void *src, void *dst, size_t len); */
-
-ENTRY(kcopy)
- ret
-END(kcopy)
-
diff -r e593152ba6c6 -r f442b86cce7e sys/arch/aarch64/aarch64/fusu.S
--- a/sys/arch/aarch64/aarch64/fusu.S Wed Aug 16 22:49:05 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/* $NetBSD: fusu.S,v 1.1 2014/08/10 05:47:37 matt Exp $ */
-
-/*-
- * Copyright (c) 2014 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 <aarch64/asm.h>
-
-#include "assym.h"
-
-RCSID("$NetBSD: fusu.S,v 1.1 2014/08/10 05:47:37 matt Exp $");
-
-/* LINTSTUB: int fubyte(const void *base); */
-
-ENTRY(fubyte)
- mrs x2, tpidr_el1
- ldr x18, [x2, #CI_CURLWP]
- adr x3, .Lfusu_onfault
- str x3, [x18, #L_MD_ONFAULT]
- ldtrb w0, [x0]
- str xzr, [x18, #L_MD_ONFAULT]
- ret
-END(fubyte)
-
-/* LINTSTUB: int fusword(const void *base); */
-
-ENTRY(fusword)
- mrs x2, tpidr_el1
- ldr x18, [x2, #CI_CURLWP]
- adr x3, .Lfusu_onfault
- str x3, [x18, #L_MD_ONFAULT]
- ldtrh w0, [x0]
- str xzr, [x18, #L_MD_ONFAULT]
- ret
-END(fusword)
-
-/* LINTSTUB: int fuswintr(const void *base); */
-
-ENTRY(fuswintr)
- mrs x2, tpidr_el1
- ldr x18, [x2, #CI_CURLWP]
- adr x3, .Lfusu_onfault
- str x3, [x18, #L_MD_ONFAULT]
- ldtrh w0, [x0]
- str xzr, [x18, #L_MD_ONFAULT]
- ret
-END(fuswintr)
-
-/* LINTSTUB: long fuword(const void *base); */
-
-ENTRY(fuword)
- mrs x2, tpidr_el1
- ldr x18, [x2, #CI_CURLWP]
- adr x3, .Lfusu_onfault
- str x3, [x18, #L_MD_ONFAULT]
- ldtr x0, [x0]
- str xzr, [x18, #L_MD_ONFAULT]
- ret
-.Lfusu_onfault:
- mvn x0, xzr
- ret
-END(fuword)
-
-/* LINTSTUB: int subyte(const void *base, int val); */
-
-ENTRY(subyte)
- mrs x2, tpidr_el1
- ldr x18, [x2, #CI_CURLWP]
- adr x3, .Lfusu_onfault
- str x3, [x18, #L_MD_ONFAULT]
- sttrb w1, [x0]
- str xzr, [x18, #L_MD_ONFAULT]
- ret
-END(subyte)
-
-/* LINTSTUB: int susword(const void *base, int val); */
-
-ENTRY(susword)
- mrs x2, tpidr_el1
- ldr x18, [x2, #CI_CURLWP]
- adr x3, .Lfusu_onfault
- str x3, [x18, #L_MD_ONFAULT]
- sttrh w1, [x0]
- str xzr, [x18, #L_MD_ONFAULT]
- ret
-END(susword)
-
-/* LINTSTUB: int suswintr(const void *base, int val); */
-
-ENTRY(suswintr)
- mrs x2, tpidr_el1
- ldr x18, [x2, #CI_CURLWP]
- adr x3, .Lfusu_onfault
- str x3, [x18, #L_MD_ONFAULT]
- sttrh w1, [x0]
- str xzr, [x18, #L_MD_ONFAULT]
- ret
-END(suswintr)
-
-/* LINTSTUB: long suword(const void *base, int val); */
-
-ENTRY(suword)
- mrs x2, tpidr_el1
- ldr x18, [x2, #CI_CURLWP]
- adr x3, .Lfusu_onfault
- str x3, [x18, #L_MD_ONFAULT]
- sttr x1, [x0]
- str xzr, [x18, #L_MD_ONFAULT]
- ret
-END(suword)
Home |
Main Index |
Thread Index |
Old Index