diff options
| author | Robert Norton | 2017-10-31 11:01:10 +0000 |
|---|---|---|
| committer | Robert Norton | 2017-10-31 11:03:23 +0000 |
| commit | b41ee79485e155f67099b007650d73f449db1961 (patch) | |
| tree | 72a3286b585cb650b5ca036451d3bb6a23bafd16 /cheri | |
| parent | dc62ae8cf283cdf71c0cd2001d57abc77bc52673 (diff) | |
cheri: ccall selector 1 should have a branch delay slot. TODO we need to throw exception for access to IDC/C26 in branch delay slot.
Diffstat (limited to 'cheri')
| -rw-r--r-- | cheri/cheri_insts.sail | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/cheri/cheri_insts.sail b/cheri/cheri_insts.sail index c27f6dc7..50399785 100644 --- a/cheri/cheri_insts.sail +++ b/cheri/cheri_insts.sail @@ -1057,9 +1057,9 @@ function clause execute (CCall(cs, cb, 0b00000000001)) = (* selector=1 *) sealed=false; otype=0; }) in { - nextPC := (bit[64]) (getCapOffset(cs_val)); - nextPCC := csUnsealed; + delayedPC := (bit[64]) (getCapOffset(cs_val)); delayedPCC := csUnsealed; + branchPending := true; C26 := capStructToCapReg({cb_val with sealed=false; otype=0; |
