Skip to content

Commit 3fede2a

Browse files
committed
Fix synchronize cycle CSR update
1 parent bd0f10a commit 3fede2a

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/rv32_template.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,6 +1216,7 @@ RVOP(
12161216
RVOP(
12171217
csrrw,
12181218
{
1219+
rv->csr_cycle = cycle;
12191220
uint32_t tmp = csr_csrrw(rv, ir->imm, rv->X[ir->rs1]);
12201221
rv->X[ir->rd] = ir->rd ? tmp : rv->X[ir->rd];
12211222
},
@@ -1235,6 +1236,7 @@ RVOP(
12351236
RVOP(
12361237
csrrs,
12371238
{
1239+
rv->csr_cycle = cycle;
12381240
uint32_t tmp = csr_csrrs(
12391241
rv, ir->imm, (ir->rs1 == rv_reg_zero) ? 0U : rv->X[ir->rs1]);
12401242
rv->X[ir->rd] = ir->rd ? tmp : rv->X[ir->rd];
@@ -1247,6 +1249,7 @@ RVOP(
12471249
RVOP(
12481250
csrrc,
12491251
{
1252+
rv->csr_cycle = cycle;
12501253
uint32_t tmp = csr_csrrc(
12511254
rv, ir->imm, (ir->rs1 == rv_reg_zero) ? 0U : rv->X[ir->rs1]);
12521255
rv->X[ir->rd] = ir->rd ? tmp : rv->X[ir->rd];
@@ -1259,6 +1262,7 @@ RVOP(
12591262
RVOP(
12601263
csrrwi,
12611264
{
1265+
rv->csr_cycle = cycle;
12621266
uint32_t tmp = csr_csrrw(rv, ir->imm, ir->rs1);
12631267
rv->X[ir->rd] = ir->rd ? tmp : rv->X[ir->rd];
12641268
},
@@ -1270,6 +1274,7 @@ RVOP(
12701274
RVOP(
12711275
csrrsi,
12721276
{
1277+
rv->csr_cycle = cycle;
12731278
uint32_t tmp = csr_csrrs(rv, ir->imm, ir->rs1);
12741279
rv->X[ir->rd] = ir->rd ? tmp : rv->X[ir->rd];
12751280
},
@@ -1281,6 +1286,7 @@ RVOP(
12811286
RVOP(
12821287
csrrci,
12831288
{
1289+
rv->csr_cycle = cycle;
12841290
uint32_t tmp = csr_csrrc(rv, ir->imm, ir->rs1);
12851291
rv->X[ir->rd] = ir->rd ? tmp : rv->X[ir->rd];
12861292
},

0 commit comments

Comments
 (0)