4 # define LDSTL(N, R0, R1, R2) \
11 # define SI(C, N, x, X, R0, R1) \
13 ldxr_##x %R1 %R0 %R1 \
14 beqi L##x##C##0 %R1 L##X##N \
18 ldxr_##x %R0 %R0 %R1 \
19 beqi L##x##C##1 %R0 L##X##N \
23 # define LDRL(C, N, R0, R1, R2) \
24 UI(C, N, i, I, R0, R1) \
26 SI(C, N, l, L, R0, R1)
28 # define LDSTL(C, R0, R1, R2)
29 # define SI(C, N, x, X, R0, R1) \
31 ldxr_##x %R1 %R0 %R1 \
32 beqi L##x##C##0 %R1 I##X##N \
36 ldxr_##x %R0 %R0 %R1 \
37 beqi L##x##C##1 %R0 I##X##N \
41 # define LDRL(C, N, R0, R1, R2)
45 #define UI(C, N, x, X, R0, R1) \
47 ldxr_u##x %R1 %R0 %R1 \
48 beqi Lu##x##C##0 %R1 X##N \
52 ldxr_u##x %R0 %R0 %R1 \
53 beqi Lu##x##C##1 %R0 X##N \
57 #define LDST1(X, N, R0, R1, R2) \
72 LDSTL(N, R0, R1, R2) \
73 SI(X, N, c, C, R0, R1) \
75 UI(X, N, c, C, R0, R1) \
77 SI(X, N, s, S, R0, R1) \
79 UI(X, N, s, S, R0, R1) \
81 SI(X, N, i, I, R0, R1) \
83 LDRL(X, N, R0, R1, R2) \
85 #define LDST0(R0, R1, R2) \
86 LDST1(0_##R0##_##R1##_##R2, 0, R0, R1, R2) \
87 LDST1(1_##R0##_##R1##_##R2, 1, R0, R1, R2) \
88 LDST1(2_##R0##_##R1##_##R2, 2, R0, R1, R2) \
89 LDST1(3_##R0##_##R1##_##R2, 3, R0, R1, R2)
91 #define LDST(V0, V1, V2, R0, R1, R2) \
110 /* Simple test to simplify validating encodings before
111 * brute force tests */
129 movi %r1 0x8000000000000001
191 beqi Lui0 %r1 0x80000001
196 beqi Lui1 %r0 0x80000001
202 beqi Ll0 %r1 0x8000000000000001
207 beqi Ll1 %r0 0x8000000000000001
212 LDST(v0, v1, v2, r0, r1, r2)
213 // just to know did not abort