summaryrefslogtreecommitdiff
path: root/mips/mips_wrappers.sail
blob: 25b8936b4b4084deca528739790ad92ba57b4466 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function unit effect {wmem} MEMw_wrapper(addr, size, data) = MEMw(addr, size, data)
function bool effect {wmem} MEMw_conditional_wrapper(addr, size, data) =
  MEMw_conditional(addr, size, data)

function bit[64] addrWrapper((bit[64]) addr, (MemAccessType) accessType, (WordType) width) =
    addr

function (bit[64]) TranslateAddress ((bit[64]) vAddr, (MemAccessType) accessType) = 
    if (vAddr[1..0] != 0b00) then (* bad PC alignment *)
      exit (SignalExceptionBadAddr(AdEL, vAddr))
    else
      TLBTranslate(vAddr, accessType)

function unit SignalException ((Exception) ex) = SignalExceptionMIPS(ex)

function unit ERETHook() = ()