aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--riscv/insns/flh.h2
-rw-r--r--riscv/insns/fmv_h_x.h2
-rw-r--r--riscv/insns/fmv_x_h.h2
-rw-r--r--riscv/insns/fsh.h2
-rw-r--r--riscv/isa_parser.cc4
-rw-r--r--riscv/isa_parser.h1
6 files changed, 9 insertions, 4 deletions
diff --git a/riscv/insns/flh.h b/riscv/insns/flh.h
index befff2c..67b538a 100644
--- a/riscv/insns/flh.h
+++ b/riscv/insns/flh.h
@@ -1,3 +1,3 @@
-require_extension(EXT_ZFHMIN);
+require_extension(EXT_INTERNAL_ZFH_MOVE);
require_fp;
WRITE_FRD(f16(MMU.load<uint16_t>(RS1 + insn.i_imm())));
diff --git a/riscv/insns/fmv_h_x.h b/riscv/insns/fmv_h_x.h
index e55d607..bc2155c 100644
--- a/riscv/insns/fmv_h_x.h
+++ b/riscv/insns/fmv_h_x.h
@@ -1,3 +1,3 @@
-require_extension(EXT_ZFHMIN);
+require_extension(EXT_INTERNAL_ZFH_MOVE);
require_fp;
WRITE_FRD(f16(RS1));
diff --git a/riscv/insns/fmv_x_h.h b/riscv/insns/fmv_x_h.h
index 7a2e5ff..ca823c1 100644
--- a/riscv/insns/fmv_x_h.h
+++ b/riscv/insns/fmv_x_h.h
@@ -1,3 +1,3 @@
-require_extension(EXT_ZFHMIN);
+require_extension(EXT_INTERNAL_ZFH_MOVE);
require_fp;
WRITE_RD(sext32((int16_t)(FRS1.v[0])));
diff --git a/riscv/insns/fsh.h b/riscv/insns/fsh.h
index dfd6bc5..142d4d4 100644
--- a/riscv/insns/fsh.h
+++ b/riscv/insns/fsh.h
@@ -1,3 +1,3 @@
-require_extension(EXT_ZFHMIN);
+require_extension(EXT_INTERNAL_ZFH_MOVE);
require_fp;
MMU.store<uint16_t>(RS1 + insn.s_imm(), FRS2.v[0]);
diff --git a/riscv/isa_parser.cc b/riscv/isa_parser.cc
index be5e51b..bd73b0c 100644
--- a/riscv/isa_parser.cc
+++ b/riscv/isa_parser.cc
@@ -293,6 +293,10 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv)
bad_isa_string(str, "'Zvfbfmin/Zvfbfwma' extension requires 'V' extension");
}
+ if (extension_table[EXT_ZFBFMIN] || extension_table[EXT_ZVFBFMIN] || extension_table[EXT_ZFHMIN]) {
+ extension_table[EXT_INTERNAL_ZFH_MOVE] = true;
+ }
+
if (extension_table['C']) {
extension_table[EXT_ZCA] = true;
if (extension_table['F'] && max_xlen == 32)
diff --git a/riscv/isa_parser.h b/riscv/isa_parser.h
index 04859b6..7558116 100644
--- a/riscv/isa_parser.h
+++ b/riscv/isa_parser.h
@@ -69,6 +69,7 @@ typedef enum {
EXT_XZBR,
EXT_XZBT,
EXT_SSTC,
+ EXT_INTERNAL_ZFH_MOVE,
NUM_ISA_EXTENSIONS
} isa_extension_t;