diff options
Diffstat (limited to 'riscv/insns/vmvnfr_v.h')
-rw-r--r-- | riscv/insns/vmvnfr_v.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/riscv/insns/vmvnfr_v.h b/riscv/insns/vmvnfr_v.h new file mode 100644 index 0000000..6ae66d5 --- /dev/null +++ b/riscv/insns/vmvnfr_v.h @@ -0,0 +1,12 @@ +// vmv1r.v vd, vs2 +require_vector; +const reg_t baseAddr = RS1; +const reg_t vd = insn.rd(); +const reg_t vs2 = insn.rs2(); +const reg_t len = insn.rs1() + 1; +require((vd & (len - 1)) == 0); +require((vs2 & (len - 1)) == 0); +if (vd != vs2) + memcpy(&P.VU.elt<uint8_t>(vd, 0), + &P.VU.elt<uint8_t>(vs2, 0), P.VU.vlenb * len); +P.VU.vstart = 0; |