Skip to content

Commit a9d9de6

Browse files
committed
csr bug fix
1 parent 82e1c2a commit a9d9de6

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

sim/simx/execute.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,7 +1276,7 @@ instr_trace_t* Emulator::execute(const Instr &instr, uint32_t wid) {
12761276
continue;
12771277
Word csr_value = this->get_csr(csr_addr, wid, t);
12781278
auto src_data = csrArgs.is_imm ? csrArgs.imm : rs1_data[t].i;
1279-
this->set_csr(csr_addr, src_data, t, wid);
1279+
this->set_csr(csr_addr, src_data, wid, t);
12801280
rd_data[t].i = csr_value;
12811281
}
12821282
} break;
@@ -1287,7 +1287,7 @@ instr_trace_t* Emulator::execute(const Instr &instr, uint32_t wid) {
12871287
Word csr_value = this->get_csr(csr_addr, wid, t);
12881288
auto src_data = csrArgs.is_imm ? csrArgs.imm : rs1_data[t].i;
12891289
if (src_data != 0) {
1290-
this->set_csr(csr_addr, csr_value | src_data, t, wid);
1290+
this->set_csr(csr_addr, csr_value | src_data, wid, t);
12911291
}
12921292
rd_data[t].i = csr_value;
12931293
}
@@ -1299,7 +1299,7 @@ instr_trace_t* Emulator::execute(const Instr &instr, uint32_t wid) {
12991299
Word csr_value = this->get_csr(csr_addr, wid, t);
13001300
auto src_data = csrArgs.is_imm ? csrArgs.imm : rs1_data[t].i;
13011301
if (src_data != 0) {
1302-
this->set_csr(csr_addr, csr_value & ~src_data, t, wid);
1302+
this->set_csr(csr_addr, csr_value & ~src_data, wid, t);
13031303
}
13041304
rd_data[t].i = csr_value;
13051305
}

0 commit comments

Comments
 (0)