Browse Source
Convert ssamoswap load traps to store traps
The difference can manifest when checking triggers.
pull/2266/head
Andrew Waterman
1 month ago
Failed to extract signature
1 changed files with
2 additions and
0 deletions
-
riscv/mmu.h
|
|
|
@ -196,10 +196,12 @@ public: |
|
|
|
// for shadow stack amoswap
|
|
|
|
template<typename T> |
|
|
|
T ssamoswap(reg_t addr, reg_t value) { |
|
|
|
convert_load_traps_to_store_traps({ |
|
|
|
store_slow_path(addr, sizeof(T), nullptr, {.ss_access=true}, false, true); |
|
|
|
auto data = load<T>(addr, {.ss_access=true}); |
|
|
|
store<T>(addr, value, {.ss_access=true}); |
|
|
|
return data; |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
template<typename T> |
|
|
|
|