No public description
PiperOrigin-RevId: 559878410
diff --git a/sim/kelvin_memory.isa b/sim/kelvin_memory.isa
index bc83d3e..7c0c9c7 100644
--- a/sim/kelvin_memory.isa
+++ b/sim/kelvin_memory.isa
@@ -503,7 +503,7 @@
// vcget
vcget{: : vd},
disasm: "vcget", "%vd",
- semfunc: "absl::bind_front(&KelvinVcGet)";
+ semfunc: "&KelvinVcGet";
// acset/actr/adwinit
acset{: vs1 : vd},
diff --git a/sim/kelvin_state.cc b/sim/kelvin_state.cc
index c1d4c8b..7e800cc 100644
--- a/sim/kelvin_state.cc
+++ b/sim/kelvin_state.cc
@@ -21,7 +21,7 @@
: mpact::sim::riscv::RiscVState(id, xlen, memory, atomic_memory) {
set_vector_register_width(kVectorRegisterWidth);
for (int i = 0; i < acc_register_.size(); ++i) {
- acc_register_.at(i).fill(0);
+ acc_register_[i].fill(0);
}
}
diff --git a/sim/kelvin_state.h b/sim/kelvin_state.h
index b323b01..f7571dd 100644
--- a/sim/kelvin_state.h
+++ b/sim/kelvin_state.h
@@ -47,7 +47,7 @@
void set_vector_length(uint32_t length) { vector_length_ = length; }
uint32_t vector_length() const { return vector_length_; }
- AccArrayType *acc_vec(int index) { return &(acc_register_.at(index)); }
+ AccArrayType *acc_vec(int index) { return &(acc_register_[index]); }
AccArrayTemplate<AccArrayType> acc_register() const { return acc_register_; }
void SetLogArgs(std::any data) { log_args_.emplace_back(std::move(data)); }
diff --git a/sim/kelvin_vector_memory_instructions.cc b/sim/kelvin_vector_memory_instructions.cc
index 67c0966..fd1f099 100644
--- a/sim/kelvin_vector_memory_instructions.cc
+++ b/sim/kelvin_vector_memory_instructions.cc
@@ -336,7 +336,7 @@
absl::Span<uint32_t> dest_span = dest_db->Get<uint32_t>();
auto *acc_vec = state->acc_vec(op_index);
for (int i = 0; i < dest_span.size(); ++i) {
- dest_span[i] = acc_vec->data()[i];
+ dest_span[i] = (*acc_vec)[i];
}
acc_vec->fill(0);
dest_db->Submit();
@@ -357,10 +357,10 @@
for (int i = 0; i < source_span.size(); ++i) {
if (is_transpose) {
auto *acc_vec = state->acc_vec(i);
- acc_vec->at(op_index) = source_span[i];
+ (*acc_vec)[op_index] = source_span[i];
} else {
auto *acc_vec = state->acc_vec(op_index);
- acc_vec->at(i) = source_span[i];
+ (*acc_vec)[i] = source_span[i];
}
}
}
diff --git a/sim/test/kelvin_vector_memory_instructions_test.cc b/sim/test/kelvin_vector_memory_instructions_test.cc
index 82d986c..e11fe0e 100644
--- a/sim/test/kelvin_vector_memory_instructions_test.cc
+++ b/sim/test/kelvin_vector_memory_instructions_test.cc
@@ -540,9 +540,8 @@
auto vd_name = absl::StrCat("v", kVd + i);
auto vs_name = absl::StrCat("v", kVs + i);
SetVectorRegisterValues<uint32_t>(
- {{vd_name, vd_span.subspan(kVLenInWord * i, kVLenInWord)}});
- SetVectorRegisterValues<uint32_t>(
- {{vs_name, vd_span.subspan(kVLenInWord * i, kVLenInWord)}});
+ {{vd_name, vd_span.subspan(kVLenInWord * i, kVLenInWord)},
+ {vs_name, vd_span.subspan(kVLenInWord * i, kVLenInWord)}});
}
auto instruction = CreateInstruction();
AppendVectorRegisterOperands(instruction.get(), kVLenInWord,
@@ -560,12 +559,12 @@
element_index++) {
if (is_transpose) {
auto *acc_vec = state_->acc_vec(element_index);
- EXPECT_EQ(vreg_span[element_index], acc_vec->at(i))
+ EXPECT_EQ(vreg_span[element_index], (*acc_vec)[i])
<< absl::StrCat("vreg[", vreg_num, "][", element_index,
"] != acc[", element_index, "][", i, "]");
} else {
auto *acc_vec = state_->acc_vec(i);
- EXPECT_EQ(vreg_span[element_index], acc_vec->at(element_index))
+ EXPECT_EQ(vreg_span[element_index], (*acc_vec)[element_index])
<< absl::StrCat("vreg[", vreg_num, "][", element_index,
"] != acc[", i, "][", element_index, "]");
}