diff --git a/src/arch/riscv/isa/templates/vector_mem.isa b/src/arch/riscv/isa/templates/vector_mem.isa index 6f72d0a79d..74d84dd69d 100644 --- a/src/arch/riscv/isa/templates/vector_mem.isa +++ b/src/arch/riscv/isa/templates/vector_mem.isa @@ -177,15 +177,14 @@ Fault %(fault_code)s; - const size_t micro_vlmax = vtype_VLMAX(machInst.vtype8, vlen, true); - const size_t micro_elems = vlen / width_EEW(machInst.width); + const size_t micro_vlmax = vlen / width_EEW(machInst.width); if (fault != NoFault) return fault; size_t ei; - for (size_t i = 0; i < micro_elems; i++) { + for (size_t i = 0; i < micro_vlmax; i++) { ei = i + micro_vlmax * microIdx; %(memacc_code)s; } @@ -257,11 +256,10 @@ Fault memcpy(Mem.as(), pkt->getPtr(), pkt->getSize()); } - const size_t micro_vlmax = vtype_VLMAX(machInst.vtype8, vlen, true); - const size_t micro_elems = vlen / width_EEW(machInst.width); + const size_t micro_vlmax = vlen / width_EEW(machInst.width); size_t ei; - for (size_t i = 0; i < micro_elems; i++) { + for (size_t i = 0; i < micro_vlmax; i++) { ei = i + micro_vlmax * microIdx; %(memacc_code)s; } @@ -374,7 +372,7 @@ Fault %(set_vlen)s; %(ea_code)s; - const size_t micro_vlmax = vtype_VLMAX(machInst.vtype8, vlen, true); + const size_t micro_vlmax = vlen / width_EEW(machInst.width); const size_t eewb = width_EEW(machInst.width) / 8; const size_t mem_size = eewb * microVl; std::vector byte_enable(mem_size, false); @@ -425,7 +423,7 @@ Fault %(set_vlen)s; %(ea_code)s; - const size_t micro_vlmax = vtype_VLMAX(machInst.vtype8, vlen, true); + const size_t micro_vlmax = vlen / width_EEW(machInst.width); const size_t eewb = width_EEW(machInst.width) / 8; const size_t mem_size = eewb * microVl; std::vector byte_enable(mem_size, false);