File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 9696# `[DpAddrs* Pos*W]` are stronger than `Pos*W` as the former are a read followed by a write to the same location.
9797#-safe [DpAddrs* Pos*W]
9898
99- # let dob = addr; [Exp & M]; lrs ; [Exp & R | Imp & Tag & R]
100- # let lrs = [W]; ((po & same-loc) & ~(intervening(W,(po & same-loc)))); [R]
101- -safe [DpAddr*W PosWR ]
99+ # let dob = addr; [Exp & M]; lmrs ; [Exp & R | Imp & Tag & R]
100+ # let lmrs = [W]; ((po & same-loc) & ~(intervening(W,(po & same-loc)))); [R]
101+ -safe [DpAddr*W Rfi ]
102102
103- # let dob = data; [Exp & M]; lrs ; [Exp & R | Imp & Tag & R]
104- # let lrs = [W]; ((po & same-loc) & ~(intervening(W,(po & same-loc)))); [R]
105- -safe [DpData*W PosWR ]
103+ # let dob = data; [Exp & M]; lmrs ; [Exp & R | Imp & Tag & R]
104+ # let lmrs = [W]; ((po & same-loc) & ~(intervening(W,(po & same-loc)))); [R]
105+ -safe [DpData*W Rfi ]
106106
107107# let ctrl = [Exp & R]; basic-dep; [BCC]; po
108108# let IFB-ob = [Exp & R]; ctrl; [IFB]; po
238238-safe LxSx Amo.Swp Amo.Cas
239239
240240# TODO
241- # le aob = [Exp & M]; rmw; lrs ; [A | Q]
242- # let lrs = [W]; ((po & same-loc) & ~(intervening(W,(po & same-loc)))); [R]
243- -safe [LxSx PosWR A] [Amo.Swp PosWR A] [Amo.Cas PosWR A]
244- -safe [LxSx PosWR Q] [Amo.Swp PosWR Q] [Amo.Cas PosWR Q]
241+ # le aob = [Exp & M]; rmw; lmrs ; [A | Q]
242+ # let lmrs = [W]; ((po & same-loc) & ~(intervening(W,(po & same-loc)))); [R]
243+ -safe [LxSx Rfi A] [Amo.Swp Rfi A] [Amo.Cas Rfi A]
244+ -safe [LxSx Rfi Q] [Amo.Swp Rfi Q] [Amo.Cas Rfi Q]
245245
246246# TODO
247247#let bob = [range([A];amo;[L])]; po; [Exp & M | Imp & Tag & R | MMU & FAULT]
You can’t perform that action at this time.
0 commit comments