4 # define LDSTL(N, R0, R1, R2) \
11 # define SI(C, N, x, X, R0, R1, R2) \
13 ldxr_##x %R1 %R0 %R2 \
14 beqi L##x##C %R1 L##X##N \
18 # define LDRL(C, N, R0, R1, R2) \
19 UI(C, N, i, I, R0, R1, R2) \
20 SI(C, N, l, L, R0, R1, R2)
22 # define LDSTL(C, R0, R1, R2)
23 # define SI(C, N, x, X, R0, R1, R2) \
25 ldxr_##x %R1 %R0 %R2 \
26 beqi L##x##C %R1 I##X##N \
30 # define LDRL(C, N, R0, R1, R2)
34 #define UI(C, N, x, X, R0, R1, R2) \
36 ldxr_u##x %R1 %R0 %R2 \
37 beqi Lu##x##C %R1 X##N \
41 #define FF(C, N, x, X, R0, R1, F0) \
43 ldxr_##x %F0 %R0 %R1 \
44 beqi_##x L##x##C %F0 X##N \
47 #define LDST1(X, N, R0, R1, R2, F0) \
62 LDSTL(N, R0, R1, R2) \
69 SI(X, N, c, C, R0, R1, R2) \
70 UI(X, N, c, C, R0, R1, R2) \
71 SI(X, N, s, S, R0, R1, R2) \
72 UI(X, N, s, S, R0, R1, R2) \
73 SI(X, N, i, I, R0, R1, R2) \
74 LDRL(X, N, R0, R1, R2) \
75 FF(X, N, f, F, R0, R1, F0) \
76 FF(X, N, d, D, R0, R1, F0)
78 #define LDST0(R0, R1, R2, F0) \
79 LDST1(0_##R0##_##R1##_##R2##_##F0, 0, R0, R1, R2, F0) \
80 LDST1(1_##R0##_##R1##_##R2##_##F0, 1, R0, R1, R2, F0) \
81 LDST1(2_##R0##_##R1##_##R2##_##F0, 2, R0, R1, R2, F0) \
82 LDST1(3_##R0##_##R1##_##R2##_##F0, 3, R0, R1, R2, F0)
84 #define LDST(V0, V1, V2, R0, R1, R2, F0, F1, F2, F3, F4, F5) \
85 LDST0(V0, V1, R0, F0) \
86 LDST0(V0, V1, R1, F1) \
87 LDST0(V0, V1, R2, F2) \
88 LDST0(V0, V2, R0, F3) \
89 LDST0(V0, V2, R1, F4) \
90 LDST0(V0, V2, R2, F5) \
91 LDST0(V0, R0, V1, F0) \
92 LDST0(V0, R0, V2, F1) \
93 LDST0(V0, R0, R1, F2) \
94 LDST0(V0, R0, R2, F3) \
95 LDST0(V0, R0, V1, F4) \
96 LDST0(V0, R1, V1, F5) \
97 LDST0(V0, R1, V2, F0) \
98 LDST0(V0, R1, R0, F1) \
99 LDST0(V0, R1, R2, F2) \
100 LDST0(V0, V1, V2, F3) \
101 LDST0(V0, R1, R0, F4) \
102 LDST0(V0, R1, R2, F5) \
103 LDST0(R0, V1, V0, F0) \
104 LDST0(R0, V1, R1, F1) \
105 LDST0(R0, V1, R2, F2) \
106 LDST0(R0, V2, V0, F3) \
107 LDST0(R0, V2, R1, F4) \
108 LDST0(R0, V2, R2, F5) \
109 LDST0(R0, V0, V1, F0) \
110 LDST0(R0, V0, V2, F1) \
111 LDST0(R0, V0, R1, F2) \
112 LDST0(R0, V0, R2, F3) \
113 LDST0(R0, V0, V1, F4) \
114 LDST0(R0, R1, V1, F5) \
115 LDST0(R0, R1, V2, F0) \
116 LDST0(R0, R1, V0, F1) \
117 LDST0(R0, R1, R2, F2) \
118 LDST0(R0, V1, V2, F3) \
119 LDST0(R0, R1, V0, F4) \
120 LDST0(R0, R1, R2, F5)
125 /* Simple test to simplify validating encodings before
126 * brute force tests */
144 movi %r1 0x8000000000000001
182 beqi Lui %r1 0x80000001
187 beqi Ll %r1 0x8000000000000001
202 LDST(v0, v1, v2, r0, r1, r2, f0, f1, f2, f3, f4, f5)
203 // just to know did not abort