From 04d07c02bb9bfb850062b70200888c66dc5c1067 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Thu, 3 Sep 2015 20:53:51 -0700 Subject: Fix RVC build --- pk/mentry.S | 1 + pk/mtrap.h | 3 +-- 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;" -- cgit v1.1