diff options
| author | Robert Norton | 2017-01-26 14:13:03 +0000 |
|---|---|---|
| committer | Robert Norton | 2017-01-26 14:13:03 +0000 |
| commit | a8d781f083c6dd8eeea4069b278bb48dd196500b (patch) | |
| tree | ffdd7c8c86abf8d52195c2de11daf608439937a8 | |
| parent | d761de19d1b6194f1f7a86cb4fbf1a549d252a1e (diff) | |
don't forget to use absolute PC as offset in epcc in case where epcc is not representable.
| -rw-r--r-- | cheri/cheri_prelude_common.sail | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/cheri/cheri_prelude_common.sail b/cheri/cheri_prelude_common.sail index 5d88c43a..7d4a7406 100644 --- a/cheri/cheri_prelude_common.sail +++ b/cheri/cheri_prelude_common.sail @@ -177,7 +177,7 @@ function forall Type 'o . 'o SignalException ((Exception) ex) = if (success) then C31 := capStructToCapReg(epcc) else - C31 := capStructToCapReg(int_to_cap(pc)); + C31 := capStructToCapReg(int_to_cap(getCapBase(pcc) + pc)); (* XXX what if not success? *) nextPCC := C29; (* KCC *) delayedPCC := C29; (* always write delayedPCC together whether PCC so |
