aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2015-09-03 20:53:51 -0700
committerAndrew Waterman <waterman@cs.berkeley.edu>2015-09-03 20:53:51 -0700
commit04d07c02bb9bfb850062b70200888c66dc5c1067 (patch)
tree42f6951beae710f7595c8ac229a79da5fee825d0
parent25acd5c8fd8167e70b9e272a802df3940435edc6 (diff)
downloadpk-04d07c02bb9bfb850062b70200888c66dc5c1067.zip
pk-04d07c02bb9bfb850062b70200888c66dc5c1067.tar.gz
pk-04d07c02bb9bfb850062b70200888c66dc5c1067.tar.bz2
Fix RVC build
-rw-r--r--pk/mentry.S1
-rw-r--r--pk/mtrap.h3
2 files changed, 2 insertions, 2 deletions
diff --git a/pk/mentry.S b/pk/mentry.S
index 0c1ee6a..560923e 100644
--- a/pk/mentry.S
+++ b/pk/mentry.S
@@ -48,6 +48,7 @@ trap_table:
| (0 << (31- 8)) /* user environment call */ \
| (1 << (31- 9)) /* super environment call */ \
+ .option norvc
.section .text.init,"ax",@progbits
.globl mentry
mentry:
diff --git a/pk/mtrap.h b/pk/mtrap.h
index 19a7fc3..62d0078 100644
--- a/pk/mtrap.h
+++ b/pk/mtrap.h
@@ -175,10 +175,9 @@ static insn_fetch_t __attribute__((always_inline))
insn_fetch_t fetch;
insn_t insn;
-#ifdef __rvc
+#ifdef __riscv_compressed
int rvc_mask = 3, insn_hi;
fetch.error = unpriv_mem_access(mstatus, mepc,
- "mv %[insn], %[rvc_mask];"
"lhu %[insn], 0(%[mepc]);"
"and %[insn_hi], %[insn], %[rvc_mask];"
"bne %[insn_hi], %[rvc_mask], 1f;"