Test DETOUR0391

Executions for behaviour: "0:R2=0 ; 1:R0=0 ; 1:R2=0"

Executions for behaviour: "0:R2=1 ; 1:R0=0 ; 1:R2=0"

Executions for behaviour: "0:R2=2 ; 1:R0=0 ; 1:R2=0"

Executions for behaviour: "0:R2=3 ; 1:R0=0 ; 1:R2=0"

Executions for behaviour: "0:R2=0 ; 1:R0=1 ; 1:R2=0"

Executions for behaviour: "0:R2=2 ; 1:R0=1 ; 1:R2=0"

Executions for behaviour: "0:R2=3 ; 1:R0=1 ; 1:R2=0"

Executions for behaviour: "0:R2=0 ; 1:R0=0 ; 1:R2=1"

Executions for behaviour: "0:R2=2 ; 1:R0=0 ; 1:R2=1"

Executions for behaviour: "0:R2=0 ; 1:R0=1 ; 1:R2=1"

Executions for behaviour: "0:R2=2 ; 1:R0=1 ; 1:R2=1"

Executions for behaviour: "0:R2=0 ; 1:R0=0 ; 1:R2=2"

Executions for behaviour: "0:R2=1 ; 1:R0=0 ; 1:R2=2"

Executions for behaviour: "0:R2=2 ; 1:R0=0 ; 1:R2=2"

Executions for behaviour: "0:R2=0 ; 1:R0=1 ; 1:R2=2"

Executions for behaviour: "0:R2=2 ; 1:R0=1 ; 1:R2=2"

Executions for behaviour: "0:R2=0 ; 1:R0=0 ; 1:R2=3"

Executions for behaviour: "0:R2=1 ; 1:R0=0 ; 1:R2=3"

Executions for behaviour: "0:R2=2 ; 1:R0=0 ; 1:R2=3"

Executions for behaviour: "0:R2=0 ; 1:R0=1 ; 1:R2=3"

Executions for behaviour: "0:R2=2 ; 1:R0=1 ; 1:R2=3"

ARM DETOUR0391
"PosWW Rfi DpAddrdW Rfe DpDatadW Wse"
Cycle=Rfi DpAddrdW Rfe DpDatadW Wse PosWW
Prefetch=0:x=F,0:y=W,1:y=F,1:x=W
Com=Rf Ws
Orig=PosWW Rfi DpAddrdW Rfe DpDatadW Wse
{
%x0=x; %y0=y;
%y1=y; %x1=x;
}
 P0              | P1           ;
 MOV R0,#2       | LDR R0,[%y1] ;
 STR R0,[%x0]    | EOR R1,R0,R0 ;
 MOV R1,#3       | ADD R1,R1,#1 ;
 STR R1,[%x0]    | STR R1,[%x1] ;
 LDR R2,[%x0]    | DMB          ;
 EOR R3,R2,R2    | LDR R2,[%x1] ;
 MOV R4,#1       |              ;
 STR R4,[R3,%y0] |              ;
exists 1:R0=0 /\ (0:R2=0 /\ (1:R2=0 \/ 1:R2=1 \/ 1:R2=2 \/ 1:R2=3) \/ 0:R2=2 /\ (1:R2=3 \/ 1:R2=2 \/ 1:R2=1 \/ 1:R2=0) \/ 0:R2=1 /\ (1:R2=0 \/ 1:R2=2 \/ 1:R2=3) \/ 0:R2=3 /\ 1:R2=0) \/ 1:R0=1 /\ (0:R2=0 /\ (1:R2=3 \/ 1:R2=2 \/ 1:R2=1 \/ 1:R2=0) \/ 0:R2=2 /\ (1:R2=0 \/ 1:R2=1 \/ 1:R2=2 \/ 1:R2=3) \/ 0:R2=3 /\ 1:R2=0)