Browse Source

Add flh/fsh/fmv_h_x/fmv_x_h instructions to Zvfbfmin/Zvfbfwma extensions

pull/1321/head
Weiwei Li 3 years ago
parent
commit
62478900e5
  1. 2
      riscv/insns/flh.h
  2. 2
      riscv/insns/fmv_h_x.h
  3. 2
      riscv/insns/fmv_x_h.h
  4. 2
      riscv/insns/fsh.h
  5. 4
      riscv/isa_parser.cc
  6. 1
      riscv/isa_parser.h

2
riscv/insns/flh.h

@ -1,3 +1,3 @@
require_extension(EXT_ZFHMIN); require_extension(EXT_INTERNAL_ZFH_MOVE);
require_fp; require_fp;
WRITE_FRD(f16(MMU.load<uint16_t>(RS1 + insn.i_imm()))); WRITE_FRD(f16(MMU.load<uint16_t>(RS1 + insn.i_imm())));

2
riscv/insns/fmv_h_x.h

@ -1,3 +1,3 @@
require_extension(EXT_ZFHMIN); require_extension(EXT_INTERNAL_ZFH_MOVE);
require_fp; require_fp;
WRITE_FRD(f16(RS1)); WRITE_FRD(f16(RS1));

2
riscv/insns/fmv_x_h.h

@ -1,3 +1,3 @@
require_extension(EXT_ZFHMIN); require_extension(EXT_INTERNAL_ZFH_MOVE);
require_fp; require_fp;
WRITE_RD(sext32((int16_t)(FRS1.v[0]))); WRITE_RD(sext32((int16_t)(FRS1.v[0])));

2
riscv/insns/fsh.h

@ -1,3 +1,3 @@
require_extension(EXT_ZFHMIN); require_extension(EXT_INTERNAL_ZFH_MOVE);
require_fp; require_fp;
MMU.store<uint16_t>(RS1 + insn.s_imm(), FRS2.v[0]); MMU.store<uint16_t>(RS1 + insn.s_imm(), FRS2.v[0]);

4
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"); 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']) { if (extension_table['C']) {
extension_table[EXT_ZCA] = true; extension_table[EXT_ZCA] = true;
if (extension_table['F'] && max_xlen == 32) if (extension_table['F'] && max_xlen == 32)

1
riscv/isa_parser.h

@ -69,6 +69,7 @@ typedef enum {
EXT_XZBR, EXT_XZBR,
EXT_XZBT, EXT_XZBT,
EXT_SSTC, EXT_SSTC,
EXT_INTERNAL_ZFH_MOVE,
NUM_ISA_EXTENSIONS NUM_ISA_EXTENSIONS
} isa_extension_t; } isa_extension_t;

Loading…
Cancel
Save