aboutsummaryrefslogtreecommitdiff
path: root/pk/pk.S
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@eecs.berkeley.edu>2013-11-25 02:02:42 -0800
committerAndrew Waterman <waterman@eecs.berkeley.edu>2013-11-25 02:03:48 -0800
commitf62e692e72d1626977be0e92f766bdeed305d903 (patch)
tree0823636782afa9a01505cb12a1f1c5c2909fcbf6 /pk/pk.S
parenta8889d65d249a71f009433766a1e9b1405945708 (diff)
downloadpk-f62e692e72d1626977be0e92f766bdeed305d903.zip
pk-f62e692e72d1626977be0e92f766bdeed305d903.tar.gz
pk-f62e692e72d1626977be0e92f766bdeed305d903.tar.bz2
Update to new privileged ISA
Diffstat (limited to 'pk/pk.S')
-rw-r--r--pk/pk.S20
1 files changed, 8 insertions, 12 deletions
diff --git a/pk/pk.S b/pk/pk.S
index 848a142..9d6e93d 100644
--- a/pk/pk.S
+++ b/pk/pk.S
@@ -1,24 +1,20 @@
// See LICENSE for license details.
-#include "pcr.h"
-#include "pk.h"
+#include "encoding.h"
.section .text,"ax",@progbits
.globl _start
_start:
- lui sp, %hi(stack_top)
- add sp, sp, %lo(stack_top)
-
- lui a0, %hi(trap_entry)
- add a0, a0, %lo(trap_entry)
- mtpcr a0, evec
+ la sp, stack_top
+ la a0, trap_entry
+ csrw evec, a0
li a0, SR_S | SR_PS | SR_EI | SR_S64
or a1, a0, SR_EF | SR_EA
- mtpcr a1, status
- mfpcr a1, status
- mtpcr a0, status
+ csrw status, a1
+ csrr a1, status
+ csrw status, a0
and a2, a1, SR_EF
lui a0, %hi(have_fp)
@@ -29,4 +25,4 @@ _start:
sw a2, %lo(have_accelerator)(a0)
lui a0, %hi(boot)
- jalr a0, %lo(boot)
+ jr a0, %lo(boot)