Commit 37f2ef9
[herd] Strengthen the ordering requirements for Exp-haz-ob in aarch64.cat
Feedback from the the Linux kernel indicated that the implementation
of qspinlock would benefit from stronger ordering guarantees for
mixed-size memory accesses. This proposal is updating to the
Explicit-hazard-ordered-before rule in order to strengthen the
ordering requirements of the architecture.
As a result of this change, the following two tests become forbidden:
AArch64 CoRR+amo.swph0h0-posh0a.w0+w0
Variant=mixed
{
uint32_t 0:X3; uint32_t 0:X2;
0:X0=x;
uint32_t 1:X1=0xccddeeff; 1:X0=x;
}
P0 | P1 ;
MOV W2,herd#42 | STR W1,[X0] ;
SWPH W2,W1,[X0] | ;
LDAR W3,[X0] | ;
exists (0:X1=0xeeff /\ 0:X3=42)
AArch64 CoRR+rmwh0h0-posh0a.w0+w0
Variant=mixed
{
uint32_t 0:X3; uint32_t 0:X2;
0:X0=x;
uint32_t 1:X1=0xccddeeff; 1:X0=x;
}
P0 | P1 ;
MOV W2,herd#42 | STR W1,[X0] ;
LDXRH W1,[X0] | ;
STXRH W4,W1,[X0] | ;
LDAR W3,[X0] | ;
exists (0:X1=0xeeff /\ 0:X3=42 /\ 0:X4=0)
Co-authored-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com>1 parent c903074 commit 37f2ef9
File tree
7 files changed
+38
-3
lines changed- catalogue/aarch64-mixed
- tests
- herd/libdir
7 files changed
+38
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
12 | 14 | | |
13 | 15 | | |
14 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
1 | 3 | | |
2 | 4 | | |
3 | 5 | | |
| |||
Lines changed: 14 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
1 | 3 | | |
2 | 4 | | |
3 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
| 64 | + | |
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
0 commit comments