diff options
author | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-04-09 17:50:12 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-04-09 17:50:12 -0700 |
commit | 53eb346e31582ce814f61f5e8b2c3087aa8c33f2 (patch) | |
tree | bbe82680c77aac681562a3e85ed063f6d471f788 | |
parent | 6e7fe98ea95c6da8c573fdc032b5269f08bbacc1 (diff) | |
download | pk-53eb346e31582ce814f61f5e8b2c3087aa8c33f2.zip pk-53eb346e31582ce814f61f5e8b2c3087aa8c33f2.tar.gz pk-53eb346e31582ce814f61f5e8b2c3087aa8c33f2.tar.bz2 |
[sim,pk] reorganized status register
-rw-r--r-- | pk/entry.S | 1 | ||||
-rw-r--r-- | pk/pcr.h | 12 | ||||
-rw-r--r-- | pk/pk.c | 2 | ||||
-rw-r--r-- | pk/riscv-pk.c | 2 |
4 files changed, 8 insertions, 9 deletions
@@ -131,7 +131,6 @@ trap_entry: move $a0,$x2 ei jal handle_trap - unimp .end trap_entry .bss @@ -5,12 +5,12 @@ #define SR_ET 0x0000000000000001 #define SR_EF 0x0000000000000002 -#define SR_PS 0x0000000000000004 -#define SR_S 0x0000000000000008 -#define SR_UX 0x0000000000000010 -#define SR_SX 0x0000000000000020 -#define SR_UC 0x0000000000000040 -#define SR_SC 0x0000000000000080 +#define SR_EV 0x0000000000000004 +#define SR_EC 0x0000000000000008 +#define SR_PS 0x0000000000000010 +#define SR_S 0x0000000000000020 +#define SR_UX 0x0000000000000040 +#define SR_SX 0x0000000000000080 #define SR_IM 0x000000000000FF00 #define PCR_SR 0 @@ -127,7 +127,7 @@ void init_tf(trapframe_t* tf, long pc, long sp, int user64) memset(tf,0,sizeof(*tf)); if(sizeof(void*) != 8) kassert(!user64); - tf->sr = (mfpcr(PCR_SR) & (SR_IM | SR_SX)) | SR_S | SR_UC | SR_UC; + tf->sr = (mfpcr(PCR_SR) & (SR_IM | SR_SX)) | SR_S | SR_EC; if(user64) tf->sr |= SR_UX; tf->gpr[30] = sp; diff --git a/pk/riscv-pk.c b/pk/riscv-pk.c index 5392100..490a271 100644 --- a/pk/riscv-pk.c +++ b/pk/riscv-pk.c @@ -13,7 +13,7 @@ void __attribute__((section(".boottext"))) __start() mtpcr(0,PCR_COUNT); mtpcr(0,PCR_COMPARE); - register long sr0 = SR_S | SR_PS | SR_ET | SR_IM | SR_SC; + register long sr0 = SR_S | SR_PS | SR_ET | SR_IM | SR_EC; if(sizeof(void*) == 8) sr0 |= SR_SX; |