Skip to content

Commit c4c2926

Browse files
authored
Merge pull request #352 from visitorckw/fix-AMOMIN.W-AMOMAX.W
Fix signed integer comparison in AMOMIN.W and AMOMAX.W
2 parents 2fd87db + f15e4c4 commit c4c2926

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/rv32_template.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1376,8 +1376,9 @@ RVOP(
13761376
amominw,
13771377
{
13781378
rv->X[ir->rd] = rv->io.mem_read_w(ir->rs1);
1379-
const int32_t res =
1380-
rv->X[ir->rd] < rv->X[ir->rs2] ? rv->X[ir->rd] : rv->X[ir->rs2];
1379+
const int32_t a = rv->X[ir->rd];
1380+
const int32_t b = rv->X[ir->rs2];
1381+
const uint32_t res = a < b ? rv->X[ir->rd] : rv->X[ir->rs2];
13811382
rv->io.mem_write_s(ir->rs1, res);
13821383
},
13831384
GEN({
@@ -1389,8 +1390,9 @@ RVOP(
13891390
amomaxw,
13901391
{
13911392
rv->X[ir->rd] = rv->io.mem_read_w(ir->rs1);
1392-
const int32_t res =
1393-
rv->X[ir->rd] > rv->X[ir->rs2] ? rv->X[ir->rd] : rv->X[ir->rs2];
1393+
const int32_t a = rv->X[ir->rd];
1394+
const int32_t b = rv->X[ir->rs2];
1395+
const uint32_t res = a > b ? rv->X[ir->rd] : rv->X[ir->rs2];
13941396
rv->io.mem_write_s(ir->rs1, res);
13951397
},
13961398
GEN({

0 commit comments

Comments
 (0)