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}