Module Name: src
Committed By: matt
Date: Wed Apr 8 16:38:42 UTC 2015
Modified Files:
src/sys/arch/arm/include/arm32: frame.h
Log Message:
CI_ASTPENDING is now a bitfield and low bit is for user ASTs.
To generate a diff of this commit:
cvs rdiff -u -r1.39 -r1.40 src/sys/arch/arm/include/arm32/frame.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/include/arm32/frame.h
diff -u src/sys/arch/arm/include/arm32/frame.h:1.39 src/sys/arch/arm/include/arm32/frame.h:1.40
--- src/sys/arch/arm/include/arm32/frame.h:1.39 Wed Feb 26 01:56:51 2014
+++ src/sys/arch/arm/include/arm32/frame.h Wed Apr 8 16:38:42 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: frame.h,v 1.39 2014/02/26 01:56:51 matt Exp $ */
+/* $NetBSD: frame.h,v 1.40 2015/04/08 16:38:42 matt Exp $ */
/*
* Copyright (c) 1994-1997 Mark Brinicombe.
@@ -174,7 +174,7 @@ void validate_trapframe(trapframe_t *, i
*/
#define ENABLE_ALIGNMENT_FAULTS \
and r7, r0, #(PSR_MODE) /* Test for USR32 mode */ ;\
- teq r7, #(PSR_USR32_MODE) ;\
+ cmp r7, #(PSR_USR32_MODE) ;\
GET_CURCPU(r4) /* r4 = cpuinfo */ ;\
bne 1f /* Not USR mode skip AFLT */ ;\
ldr r1, [r4, #CI_CURLWP] /* get curlwp from cpu_info */ ;\
@@ -197,10 +197,10 @@ void validate_trapframe(trapframe_t *, i
DO_PENDING_SOFTINTS ;\
GET_CPSR(r5) /* save CPSR */ ;\
CPSID_I(r1, r5) /* Disable interrupts */ ;\
- teq r7, #(PSR_USR32_MODE) /* Returning to USR mode? */ ;\
+ cmp r7, #(PSR_USR32_MODE) /* Returning to USR mode? */ ;\
bne 3f /* Nope, get out now */ ;\
1: ldr r1, [r4, #CI_ASTPENDING] /* Pending AST? */ ;\
- teq r1, #0x00000000 ;\
+ tst r1, #0x00000001 ;\
bne 2f /* Yup. Go deal with it */ ;\
ldr r1, [r4, #CI_CURLWP] /* get curlwp from cpu_info */ ;\
ldr r0, [r1, #L_MD_FLAGS] /* get md_flags from lwp */ ;\
@@ -213,7 +213,7 @@ void validate_trapframe(trapframe_t *, i
adr lr, 3f ;\
B_CF_CONTROL(r2) /* Set new CTRL reg value */ ;\
/* NOTREACHED */ \
-2: mov r1, #0x00000000 ;\
+2: bic r1, r1, #0x00000001 ;\
str r1, [r4, #CI_ASTPENDING] /* Clear astpending */ ;\
CPSIE_I(r5, r5) /* Restore interrupts */ ;\
mov r0, sp ;\
@@ -235,12 +235,12 @@ void validate_trapframe(trapframe_t *, i
DO_PENDING_SOFTINTS ;\
GET_CPSR(r5) /* save CPSR */ ;\
CPSID_I(r1, r5) /* Disable interrupts */ ;\
- teq r7, #(PSR_USR32_MODE) ;\
+ cmp r7, #(PSR_USR32_MODE) ;\
bne 2f /* Nope, get out now */ ;\
1: ldr r1, [r4, #CI_ASTPENDING] /* Pending AST? */ ;\
- teq r1, #0x00000000 ;\
+ tst r1, #0x00000001 ;\
beq 2f /* Nope. Just bail */ ;\
- mov r1, #0x00000000 ;\
+ bic r1, r1, #0x00000001 ;\
str r1, [r4, #CI_ASTPENDING] /* Clear astpending */ ;\
CPSIE_I(r5, r5) /* Restore interrupts */ ;\
mov r0, sp ;\
@@ -288,7 +288,7 @@ LOCK_CAS_DEBUG_LOCALS
#define LOCK_CAS_CHECK \
ldr r0, [sp] /* get saved PSR */ ;\
and r0, r0, #(PSR_MODE) /* check for SVC32 mode */ ;\
- teq r0, #(PSR_SVC32_MODE) ;\
+ cmp r0, #(PSR_SVC32_MODE) ;\
bne 99f /* nope, get out now */ ;\
ldr r0, [sp, #(TF_PC)] ;\
ldr r1, .L_lock_cas_end ;\