summaryrefslogtreecommitdiff
path: root/cheri
diff options
context:
space:
mode:
authorRobert Norton2017-01-25 17:12:37 +0000
committerRobert Norton2017-01-25 17:12:43 +0000
commit918435c853758f271090b1e0f3089692f98ef45e (patch)
treeaeb60f810fc0071f3d35f832b004d40a1d3d35e2 /cheri
parent950ac43cc496319b263c87fbe47c45d06838c634 (diff)
fix error introduced in revised version of TranslateAddress -- absPC should be relative to base
Diffstat (limited to 'cheri')
-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 1d9c00b4..7530c9cc 100644
--- a/cheri/cheri_prelude_common.sail
+++ b/cheri/cheri_prelude_common.sail
@@ -322,7 +322,7 @@ function (bit[64]) TranslateAddress ((bit[64]) vAddr, (MemAccessType) accessType
let pcc = capRegToCapStruct(PCC) in
let base = unsigned(getCapBase(pcc)) in
let top = unsigned(getCapTop(pcc)) in
- let absPC = (unsigned(vAddr)) in
+ let absPC = base + unsigned(vAddr) in
if ((absPC mod 4) != 0) then (* bad PC alignment *)
(SignalExceptionBadAddr(AdEL, (bit[64]) absPC)) (* XXX absPC may be truncated *)
else if ((absPC + 4) > top) then