"Experimental model, with atomics and ARM ppo"
include "cos.cat"
acyclic po-loc | rf | fr | co
empty rmw & (fre;coe)
as atomic
let dd = addr | data
let rdw = po-loc & (fre;rfe)
let detour = po-loc & (coe ; rfe)
let addrpo = addr;po
let aa = po & (A * A)
include "armfences.cat"
show isb,ctrlisb
let WW = W * W
let RM = R * M
let RR = R * R
let WR = W * R
let ci0 = ctrlisb | detour | aa & RR | aa & WR
let ii0 = dd | rfi | rdw
let cc0 = dd |ctrl | addrpo | aa
let ic0 =
0
include "ppo.cat"
let dmb.st=dmb.st & WW
let dsb.st=dsb.st & WW
let strong = dmb|dsb|dmb.st|dsb.st
let light =
0
include "ppc-checks.cat"