summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Norton2017-01-26 14:13:03 +0000
committerRobert Norton2017-01-26 14:13:03 +0000
commita8d781f083c6dd8eeea4069b278bb48dd196500b (patch)
treeffdd7c8c86abf8d52195c2de11daf608439937a8
parentd761de19d1b6194f1f7a86cb4fbf1a549d252a1e (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.sail2
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