Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/arm/arm32 Use ldrt/strt.
details: https://anonhg.NetBSD.org/src/rev/0ef513e8c22a
branches: trunk
changeset: 535049:0ef513e8c22a
user: thorpej <thorpej%NetBSD.org@localhost>
date: Fri Aug 09 04:13:20 2002 +0000
description:
Use ldrt/strt.
diffstat:
sys/arch/arm/arm32/fusu.S | 101 +++++++--------------------------------------
1 files changed, 17 insertions(+), 84 deletions(-)
diffs (247 lines):
diff -r 6491d21a2788 -r 0ef513e8c22a sys/arch/arm/arm32/fusu.S
--- a/sys/arch/arm/arm32/fusu.S Fri Aug 09 02:57:09 2002 +0000
+++ b/sys/arch/arm/arm32/fusu.S Fri Aug 09 04:13:20 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: fusu.S,v 1.3 2002/03/25 16:32:55 thorpej Exp $ */
+/* $NetBSD: fusu.S,v 1.4 2002/08/09 04:13:20 thorpej Exp $ */
/*
* Copyright (c) 1996-1998 Mark Brinicombe.
@@ -38,24 +38,12 @@
Lcurpcb:
.word _C_LABEL(curpcb)
-Lvm_min_address:
- .word VM_MIN_ADDRESS
-Lvm_maxuser_address:
- .word VM_MAXUSER_ADDRESS
-
/*
* fuword(caddr_t uaddr);
* Fetch an int from the user's address space.
*/
ENTRY(fuword)
- ldr r2, Lvm_min_address
- cmp r0, r2
- bcc fusuaddrfault
- ldr r2, Lvm_maxuser_address
- cmp r0, r2
- bcs fusuaddrfault
-
ldr r2, Lcurpcb
ldr r2, [r2]
@@ -67,10 +55,11 @@
add r1, pc, #fusufault - . - 8
str r1, [r2, #PCB_ONFAULT]
- ldr r0, [r0]
+ ldrt r3, [r0]
mov r1, #0x00000000
str r1, [r2, #PCB_ONFAULT]
+ mov r0, r3
mov pc, lr
/*
@@ -79,13 +68,6 @@
*/
ENTRY(fusword)
- ldr r2, Lvm_min_address
- cmp r0, r2
- bcc fusuaddrfault
- ldr r2, Lvm_maxuser_address
- cmp r0, r2
- bcs fusuaddrfault
-
ldr r2, Lcurpcb
ldr r2, [r2]
@@ -97,12 +79,12 @@
add r1, pc, #fusufault - . - 8
str r1, [r2, #PCB_ONFAULT]
- ldr r0, [r0]
- bic r0, r0, #0xff000000
- bic r0, r0, #0x00ff0000
+ ldrt r3, [r0]
mov r1, #0x00000000
str r1, [r2, #PCB_ONFAULT]
+ bic r0, r3, #0xff000000
+ bic r0, r0, #0x00ff0000
mov pc, lr
/*
@@ -118,13 +100,6 @@
mvnne r0, #0x00000000
movne pc, lr
- ldr r2, Lvm_min_address
- cmp r0, r2
- bcc fusuaddrfault
- ldr r2, Lvm_maxuser_address
- cmp r0, r2
- bcs fusuaddrfault
-
ldr r2, Lcurpcb
ldr r2, [r2]
@@ -136,12 +111,12 @@
add r1, pc, #_C_LABEL(fusubailout) - . - 8
str r1, [r2, #PCB_ONFAULT]
- ldr r0, [r0]
- bic r0, r0, #0xff000000
- bic r0, r0, #0x00ff0000
+ ldrt r3, [r0]
mov r1, #0x00000000
str r1, [r2, #PCB_ONFAULT]
+ bic r0, r3, #0xff000000
+ bic r0, r0, #0x00ff0000
mov pc, lr
Lblock_userspace_access:
@@ -160,13 +135,6 @@
*/
ENTRY(fubyte)
- ldr r2, Lvm_min_address
- cmp r0, r2
- bcc fusuaddrfault
- ldr r2, Lvm_maxuser_address
- cmp r0, r2
- bcs fusuaddrfault
-
ldr r2, Lcurpcb
ldr r2, [r2]
@@ -178,10 +146,11 @@
add r1, pc, #fusufault - . - 8
str r1, [r2, #PCB_ONFAULT]
- ldrb r0, [r0]
+ ldrbt r3, [r0]
mov r1, #0x00000000
str r1, [r2, #PCB_ONFAULT]
+ mov r0, r3
mov pc, lr
/*
@@ -208,14 +177,6 @@
mvn r0, #0x00000000
mov pc, lr
-/*
- * Handle earlier faults from [fs]u*(), due to our of range addresses.
- */
-
-fusuaddrfault:
- mvn r0, #0x00000000
- mov pc, lr
-
#ifdef DIAGNOSTIC
/*
* Handle earlier faults from [fs]u*(), due to no pcb
@@ -237,13 +198,6 @@
*/
ENTRY(suword)
- ldr r2, Lvm_min_address
- cmp r0, r2
- bcc fusuaddrfault
- ldr r2, Lvm_maxuser_address
- cmp r0, r2
- bcs fusuaddrfault
-
ldr r2, Lcurpcb
ldr r2, [r2]
@@ -255,7 +209,7 @@
add r3, pc, #fusufault - . - 8
str r3, [r2, #PCB_ONFAULT]
- str r1, [r0]
+ strt r1, [r0]
mov r0, #0x00000000
str r0, [r2, #PCB_ONFAULT]
@@ -274,13 +228,6 @@
mvnne r0, #0x00000000
movne pc, lr
- ldr r2, Lvm_min_address
- cmp r0, r2
- bcc fusuaddrfault
- ldr r2, Lvm_maxuser_address
- cmp r0, r2
- bcs fusuaddrfault
-
ldr r2, Lcurpcb
ldr r2, [r2]
@@ -292,9 +239,9 @@
add r3, pc, #_C_LABEL(fusubailout) - . - 8
str r3, [r2, #PCB_ONFAULT]
- strb r1, [r0, #0x0000]
+ strbt r1, [r0], #1
mov r1, r1, lsr #8
- strb r1, [r0, #0x0001]
+ strbt r1, [r0]
mov r0, #0x00000000
str r0, [r2, #PCB_ONFAULT]
@@ -306,13 +253,6 @@
*/
ENTRY(susword)
- ldr r2, Lvm_min_address
- cmp r0, r2
- bcc fusuaddrfault
- ldr r2, Lvm_maxuser_address
- cmp r0, r2
- bcs fusuaddrfault
-
ldr r2, Lcurpcb
ldr r2, [r2]
@@ -324,9 +264,9 @@
add r3, pc, #fusufault - . - 8
str r3, [r2, #PCB_ONFAULT]
- strb r1, [r0, #0x0000]
+ strbt r1, [r0], #1
mov r1, r1, lsr #8
- strb r1, [r0, #0x0001]
+ strbt r1, [r0]
mov r0, #0x00000000
str r0, [r2, #PCB_ONFAULT]
@@ -338,13 +278,6 @@
*/
ENTRY(subyte)
- ldr r2, Lvm_min_address
- cmp r0, r2
- bcc fusuaddrfault
- ldr r2, Lvm_maxuser_address
- cmp r0, r2
- bcs fusuaddrfault
-
ldr r2, Lcurpcb
ldr r2, [r2]
@@ -357,7 +290,7 @@
add r3, pc, #fusufault - . - 8
str r3, [r2, #PCB_ONFAULT]
- strb r1, [r0]
+ strbt r1, [r0]
mov r0, #0x00000000
str r0, [r2, #PCB_ONFAULT]
Home |
Main Index |
Thread Index |
Old Index