Skip to content

Commit 76b1b91

Browse files
committed
cheri_inst: don't pass physaddrs to handle_mem_exception
Another instance of riscv/sail-riscv#54
1 parent bdc4ce9 commit 76b1b91

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/cheri_insts.sail

+8-8
Original file line numberDiff line numberDiff line change
@@ -1187,7 +1187,7 @@ function handle_store_data_via_cap(rs, cs, cap_val, vaddrBits, width) = {
11871187
TR_Address(addr, _) => {
11881188
let eares : MemoryOpResult(unit) = mem_write_ea(addr, size, aq, rl, false);
11891189
match (eares) {
1190-
MemException(e) => { handle_mem_exception(addr, e); RETIRE_FAIL },
1190+
MemException(e) => { handle_mem_exception(vaddrBits, e); RETIRE_FAIL },
11911191
MemValue(_) => {
11921192
let rs_val = X(rs);
11931193
let res : MemoryOpResult(bool) = match (width, sizeof(xlen)) {
@@ -1199,7 +1199,7 @@ function handle_store_data_via_cap(rs, cs, cap_val, vaddrBits, width) = {
11991199
match (res) {
12001200
MemValue(true) => RETIRE_SUCCESS,
12011201
MemValue(false) => internal_error("store got false from mem_write_value"),
1202-
MemException(e) => { handle_mem_exception(addr, e); RETIRE_FAIL }
1202+
MemException(e) => { handle_mem_exception(vaddrBits, e); RETIRE_FAIL }
12031203
}
12041204
}
12051205
}
@@ -1265,13 +1265,13 @@ function handle_store_cap_via_cap(rs, cs, cap_val, vaddrBits) = {
12651265
_ => {
12661266
let eares : MemoryOpResult(unit) = mem_write_ea_cap(addr, aq, rl, false);
12671267
match (eares) {
1268-
MemException(e) => { handle_mem_exception(addr, e); RETIRE_FAIL },
1268+
MemException(e) => { handle_mem_exception(vaddrBits, e); RETIRE_FAIL },
12691269
MemValue(_) => {
12701270
let res : MemoryOpResult(bool) = mem_write_cap(addr, rs_val, aq, rl, false);
12711271
match (res) {
12721272
MemValue(true) => RETIRE_SUCCESS,
12731273
MemValue(false) => internal_error("store got false from mem_write_value"),
1274-
MemException(e) => { handle_mem_exception(addr, e); RETIRE_FAIL }
1274+
MemException(e) => { handle_mem_exception(vaddrBits, e); RETIRE_FAIL }
12751275
}
12761276
}
12771277
}
@@ -1352,7 +1352,7 @@ function handle_store_cond_data_via_cap(rs2, cs, cap_val, vaddrBits, width) = {
13521352
TR_Address(addr, _) => {
13531353
let eares : MemoryOpResult(unit) = mem_write_ea(addr, size, aq, rl, false);
13541354
match (eares) {
1355-
MemException(e) => { handle_mem_exception(addr, e); RETIRE_FAIL },
1355+
MemException(e) => { handle_mem_exception(vaddrBits, e); RETIRE_FAIL },
13561356
MemValue(_) => {
13571357
let rs2_val = X(rs2);
13581358
let res : MemoryOpResult(bool) = match (width, sizeof(xlen)) {
@@ -1364,7 +1364,7 @@ function handle_store_cond_data_via_cap(rs2, cs, cap_val, vaddrBits, width) = {
13641364
match (res) {
13651365
MemValue(true) => { X(rs2) = EXTZ(0b0); cancel_reservation(); RETIRE_SUCCESS },
13661366
MemValue(false) => { X(rs2) = EXTZ(0b1); cancel_reservation(); RETIRE_SUCCESS },
1367-
MemException(e) => { handle_mem_exception(addr, e); RETIRE_FAIL }
1367+
MemException(e) => { handle_mem_exception(vaddrBits, e); RETIRE_FAIL }
13681368
}
13691369
}
13701370
}
@@ -1421,7 +1421,7 @@ function handle_store_cond_cap_via_cap(cs2, cs, cap_val, vaddrBits) = {
14211421
_ => {
14221422
let eares : MemoryOpResult(unit) = mem_write_ea_cap(addr, aq, rl, false);
14231423
match (eares) {
1424-
MemException(e) => { handle_mem_exception(addr, e); RETIRE_FAIL },
1424+
MemException(e) => { handle_mem_exception(vaddrBits, e); RETIRE_FAIL },
14251425
MemValue(_) => {
14261426
let res : MemoryOpResult(bool) = mem_write_cap(addr, cs2_val, aq, rl, false);
14271427
match (res) {
@@ -1436,7 +1436,7 @@ function handle_store_cond_cap_via_cap(cs2, cs, cap_val, vaddrBits) = {
14361436
RETIRE_SUCCESS
14371437
},
14381438
MemException(e) => {
1439-
handle_mem_exception(addr, e);
1439+
handle_mem_exception(vaddrBits, e);
14401440
RETIRE_FAIL
14411441
}
14421442
}

0 commit comments

Comments
 (0)