@@ -1350,8 +1350,8 @@ RVOP(
1350
1350
amoswapw ,
1351
1351
{
1352
1352
if (ir -> rd )
1353
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1354
- rv -> io .mem_write_s (ir -> rs1 , rv -> X [ir -> rs2 ]);
1353
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1354
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , rv -> X [ir -> rs2 ]);
1355
1355
},
1356
1356
GEN ({
1357
1357
assert ; /* FIXME: Implement */
@@ -1362,9 +1362,9 @@ RVOP(
1362
1362
amoaddw ,
1363
1363
{
1364
1364
if (ir -> rd )
1365
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1365
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1366
1366
const int32_t res = (int32_t ) rv -> X [ir -> rd ] + (int32_t ) rv -> X [ir -> rs2 ];
1367
- rv -> io .mem_write_s (ir -> rs1 , res );
1367
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , res );
1368
1368
},
1369
1369
GEN ({
1370
1370
assert ; /* FIXME: Implement */
@@ -1375,9 +1375,9 @@ RVOP(
1375
1375
amoxorw ,
1376
1376
{
1377
1377
if (ir -> rd )
1378
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1378
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1379
1379
const int32_t res = rv -> X [ir -> rd ] ^ rv -> X [ir -> rs2 ];
1380
- rv -> io .mem_write_s (ir -> rs1 , res );
1380
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , res );
1381
1381
},
1382
1382
GEN ({
1383
1383
assert ; /* FIXME: Implement */
@@ -1388,9 +1388,9 @@ RVOP(
1388
1388
amoandw ,
1389
1389
{
1390
1390
if (ir -> rd )
1391
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1391
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1392
1392
const int32_t res = rv -> X [ir -> rd ] & rv -> X [ir -> rs2 ];
1393
- rv -> io .mem_write_s (ir -> rs1 , res );
1393
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , res );
1394
1394
},
1395
1395
GEN ({
1396
1396
assert ; /* FIXME: Implement */
@@ -1401,9 +1401,9 @@ RVOP(
1401
1401
amoorw ,
1402
1402
{
1403
1403
if (ir -> rd )
1404
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1404
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1405
1405
const int32_t res = rv -> X [ir -> rd ] | rv -> X [ir -> rs2 ];
1406
- rv -> io .mem_write_s (ir -> rs1 , res );
1406
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , res );
1407
1407
},
1408
1408
GEN ({
1409
1409
assert ; /* FIXME: Implement */
@@ -1414,11 +1414,11 @@ RVOP(
1414
1414
amominw ,
1415
1415
{
1416
1416
if (ir -> rd )
1417
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1417
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1418
1418
const int32_t a = rv -> X [ir -> rd ];
1419
1419
const int32_t b = rv -> X [ir -> rs2 ];
1420
1420
const uint32_t res = a < b ? rv -> X [ir -> rd ] : rv -> X [ir -> rs2 ];
1421
- rv -> io .mem_write_s (ir -> rs1 , res );
1421
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , res );
1422
1422
},
1423
1423
GEN ({
1424
1424
assert ; /* FIXME: Implement */
@@ -1429,11 +1429,11 @@ RVOP(
1429
1429
amomaxw ,
1430
1430
{
1431
1431
if (ir -> rd )
1432
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1432
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1433
1433
const int32_t a = rv -> X [ir -> rd ];
1434
1434
const int32_t b = rv -> X [ir -> rs2 ];
1435
1435
const uint32_t res = a > b ? rv -> X [ir -> rd ] : rv -> X [ir -> rs2 ];
1436
- rv -> io .mem_write_s (ir -> rs1 , res );
1436
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , res );
1437
1437
},
1438
1438
GEN ({
1439
1439
assert ; /* FIXME: Implement */
@@ -1444,10 +1444,10 @@ RVOP(
1444
1444
amominuw ,
1445
1445
{
1446
1446
if (ir -> rd )
1447
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1447
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1448
1448
const uint32_t ures =
1449
1449
rv -> X [ir -> rd ] < rv -> X [ir -> rs2 ] ? rv -> X [ir -> rd ] : rv -> X [ir -> rs2 ];
1450
- rv -> io .mem_write_s (ir -> rs1 , ures );
1450
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , ures );
1451
1451
},
1452
1452
GEN ({
1453
1453
assert ; /* FIXME: Implement */
@@ -1458,10 +1458,10 @@ RVOP(
1458
1458
amomaxuw ,
1459
1459
{
1460
1460
if (ir -> rd )
1461
- rv -> X [ir -> rd ] = rv -> io .mem_read_w (ir -> rs1 );
1461
+ rv -> X [ir -> rd ] = rv -> io .mem_read_w (rv -> X [ ir -> rs1 ] );
1462
1462
const uint32_t ures =
1463
1463
rv -> X [ir -> rd ] > rv -> X [ir -> rs2 ] ? rv -> X [ir -> rd ] : rv -> X [ir -> rs2 ];
1464
- rv -> io .mem_write_s (ir -> rs1 , ures );
1464
+ rv -> io .mem_write_s (rv -> X [ ir -> rs1 ] , ures );
1465
1465
},
1466
1466
GEN ({
1467
1467
assert ; /* FIXME: Implement */
0 commit comments