ARM S+dmb+data-wsi { %x0=x; %y0=y; %y1=y; %x1=x; } P0 | P1 ; MOV R0,#3 | LDR R0,[%y1] ; STR R0,[%x0] | EOR R1,R0,R0 ; DMB | ADD R1,R1,#1 ; MOV R1,#1 | STR R1,[%x1] ; STR R1,[%y0] | MOV R2,#2 ; | STR R2,[%x1] ; Observed 1:R0=1; x=3;