diff options
Diffstat (limited to 'cheri')
| -rw-r--r-- | cheri/cheri_prelude.sail | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/cheri/cheri_prelude.sail b/cheri/cheri_prelude.sail index eee1ac65..ec0ba6e8 100644 --- a/cheri/cheri_prelude.sail +++ b/cheri/cheri_prelude.sail @@ -447,10 +447,8 @@ function bit[64] addrWrapper((bit[64]) addr, (MemAccessType) accessType, (WordTy function (bit[64]) TranslateAddress ((bit[64]) vAddr, (MemAccessType) accessType) = { incrementCP0Count(); - (* XXX Sail does not allow reading fields here :-( *) - let (bit[257]) x = PCC in - let (bit[64]) base = x[127..64] in - let (bit[64]) length = x[63..0] in + let (bit[64]) base = PCC.base in + let (bit[64]) length = PCC.length in let (bit[64]) absPC = (base + vAddr) in if (absPC[1..0] != 0b00) then (* bad PC alignment *) exit (SignalExceptionBadAddr(AdEL, absPC)) |
