diff --git a/core/inst_handlers/rv64/a/RvaInsts.cpp b/core/inst_handlers/rv64/a/RvaInsts.cpp index 6754c2b..24a59d1 100644 --- a/core/inst_handlers/rv64/a/RvaInsts.cpp +++ b/core/inst_handlers/rv64/a/RvaInsts.cpp @@ -383,7 +383,7 @@ namespace atlas ActionGroup* RvaInsts::sc_d_64_handler(atlas::AtlasState* state) { const AtlasInstPtr & inst = state->getCurrentInst(); - const uint64_t rs2_val = inst->getRs2()->read(); + const uint64_t rs2_val = inst->getRs2()->dmiRead(); const uint64_t paddr = state->getTranslationState()->getTranslationResult().getPaddr(); state->writeMemory(paddr, rs2_val); return nullptr; @@ -397,7 +397,7 @@ namespace atlas ActionGroup* RvaInsts::sc_w_64_handler(atlas::AtlasState* state) { const AtlasInstPtr & inst = state->getCurrentInst(); - const uint64_t rs2_val = inst->getRs2()->read(); + const uint64_t rs2_val = inst->getRs2()->dmiRead(); const uint64_t paddr = state->getTranslationState()->getTranslationResult().getPaddr(); state->writeMemory(paddr, rs2_val); return nullptr; diff --git a/core/inst_handlers/rv64/a/inst_helpers.hpp b/core/inst_handlers/rv64/a/inst_helpers.hpp index 6c5a99a..04d86aa 100644 --- a/core/inst_handlers/rv64/a/inst_helpers.hpp +++ b/core/inst_handlers/rv64/a/inst_helpers.hpp @@ -15,7 +15,7 @@ namespace atlas static_assert(std::is_same::value || std::is_same::value); const AtlasInstPtr & inst = state->getCurrentInst(); - const T rs1_val = inst->getRs1()->read(); + const T rs1_val = inst->getRs1()->dmiRead(); constexpr uint32_t IMM_SIZE = 12; const T imm = inst->hasImmediate() ? inst->getSignExtendedImmediate() : 0; const T vaddr = rs1_val + imm; @@ -48,7 +48,7 @@ namespace atlas rd_val = state->readMemory(paddr); } inst->getRd()->write(rd_val); - const RV rs2_val = inst->getRs2()->read(); + const RV rs2_val = inst->getRs2()->dmiRead(); state->writeMemory(paddr, binary_op(rd_val, rs2_val)); return nullptr; }