aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/vmvnfr_v.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/insns/vmvnfr_v.h')
-rw-r--r--riscv/insns/vmvnfr_v.h12
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;