"Risc V total order model"
include "riscv-defs.cat"
let gmo0 =
loc & (W\FW) * FW |
ppo |
rfe
with gmo
from linearisations(M\IW,gmo0)
let gmo = gmo | loc & IW * (M\IW)
let WR = loc & ([W];(gmo|po);[R])
let rfGMO = WR \ (loc&([W];gmo);WR)
empty (rf\rfGMO)|(rfGMO\rf)
as RfCons
let infloc = (gmo & loc)^-1
let inflocext = infloc & ext
let winside = (infloc;rmw;inflocext) & (infloc;rf;rmw;inflocext) & [W]
empty winside
as Atomic