eeric/rv_core/instruction/executor/v/vlm.rs
1use crate::rv_core::instruction::executor::prelude::*;
2
3pub fn v(Vl { vd, rs1, vm: _ }: Vl, v: &mut VectorContext<'_>, x: &IntegerRegisters, mem: &Memory) {
4 let addr = x[rs1] as usize;
5 let element_amount = v.vec_engine.vlen.byte_length();
6
7 let vreg = (0..element_amount)
8 .map(|offset| addr.wrapping_add(offset))
9 .map(|address| mem.get(address))
10 .map(u8::from_le_bytes)
11 .collect();
12
13 v.apply(vd, vreg);
14}