diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-12-02 19:48:29 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-12-02 19:48:29 +0000 |
commit | 29d8227e6d16aa2e8c116b3835ef5c33495741c5 (patch) | |
tree | 0af3df93d81525ca551a5ab4f75aa6b84ca5658b /c/src/exec/score/cpu/a29k/cpu_asm.s | |
parent | Update from Chris Johns <cjohns@awa.com.au> to add better support for (diff) | |
download | rtems-29d8227e6d16aa2e8c116b3835ef5c33495741c5.tar.bz2 |
Updates from Derrick Ostertag <ostertag@transition.com> to fix bug in
interrupt handling.
Diffstat (limited to 'c/src/exec/score/cpu/a29k/cpu_asm.s')
-rw-r--r-- | c/src/exec/score/cpu/a29k/cpu_asm.s | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/c/src/exec/score/cpu/a29k/cpu_asm.s b/c/src/exec/score/cpu/a29k/cpu_asm.s index e915dd2ecf..78a3300627 100644 --- a/c/src/exec/score/cpu/a29k/cpu_asm.s +++ b/c/src/exec/score/cpu/a29k/cpu_asm.s @@ -391,6 +391,18 @@ __CPU_Context_save: ; jmpi lr0 ; nop + .global _a29k_getops +_a29k_getops: + asneq 113, gr96, gr96 + jmpi lr0 + nop + + .global _a29k_getops_sup +_a29k_getops_sup: + mfsr gr96, ops ; caller wants ops + iret + nop + .global _a29k_disable _a29k_disable: asneq 110, gr96, gr96 @@ -400,6 +412,7 @@ _a29k_disable: .global _a29k_disable_sup _a29k_disable_sup: mfsr kt0, ops + add gr96, kt0, 0 ; return ops to caller const kt1, (DI | TD) consth kt1, (DI | TD) or kt1, kt0, kt1 @@ -416,8 +429,8 @@ _a29k_disable_all: .global _a29k_disable_all_sup _a29k_disable_all_sup: mfsr kt0, ops - const kt1, DA - consth kt1, DA + const kt1, (DI | TD) + consth kt1, (DI | TD) or kt1, kt0, kt1 mtsr ops, kt1 iret @@ -432,8 +445,8 @@ _a29k_enable_all: .global _a29k_enable_all_sup _a29k_enable_all_sup: mfsr kt0, ops - const kt1, DA - consth kt1, DA + const kt1, (DI | TD) + consth kt1, (DI | TD) andn kt1, kt0, kt1 mtsr ops, kt1 iret @@ -450,7 +463,9 @@ _a29k_enable_sup: mfsr kt0, ops const kt1, (DI | TD) consth kt1, (DI | TD) - andn kt1, kt0, kt1 + and kt3, lr2, kt1 + andn kt0, kt0, kt1 + or kt1, kt0, kt3 mtsr ops, kt1 iret nop |