4 # define LDSTL(N, R0, R1) \
5 stxi_i $offui %R0 %R1 \
9 # define SI(C, N, x, X, R0, R1) \
10 ldxi_##x %R1 %R0 $off##x \
11 beqi L##x##C %R1 L##X##N \
15 # define LDRL(C, N, R0, R1) \
16 UI(C, N, i, I, R0, R1) \
17 SI(C, N, l, L, R0, R1)
19 # define LDSTL(C, R0, R1)
20 # define SI(C, N, x, X, R0, R1) \
21 ldxi_##x %R1 %R0 $off##x \
22 beqi L##x##C %R1 I##X##N \
26 # define LDRL(C, N, R0, R1)
30 #define UI(C, N, x, X, R0, R1) \
31 ldxi_u##x %R1 %R0 $offu##x \
32 beqi Lu##x##C %R1 X##N \
36 #define FF(C, N, x, X, R0, F0) \
37 ldxi_##x %F0 %R0 $off##x \
38 beqi_##x L##x##C %F0 X##N \
41 #define LDST1(X, N, R0, R1, F0) \
44 stxi_c $offc %R0 %R1 \
45 stxi_c $offuc %R0 %R1 \
47 stxi_s $offs %R0 %R1 \
48 stxi_s $offus %R0 %R1 \
50 stxi_i $offi %R0 %R1 \
53 stxi_f $offf %R0 %F0 \
55 stxi_d $offd %R0 %F0 \
56 SI(X, N, c, C, R0, R1) \
57 UI(X, N, c, C, R0, R1) \
58 SI(X, N, s, S, R0, R1) \
59 UI(X, N, s, S, R0, R1) \
60 SI(X, N, i, I, R0, R1) \
62 FF(X, N, f, F, R0, F0) \
63 FF(X, N, d, D, R0, F0)
65 #define LDST0(R0, R1, F0) \
66 LDST1(0_##R0##_##R1##_##F0, 0, R0, R1, F0) \
67 LDST1(1_##R0##_##R1##_##F0, 1, R0, R1, F0) \
68 LDST1(2_##R0##_##R1##_##F0, 2, R0, R1, F0) \
69 LDST1(3_##R0##_##R1##_##F0, 3, R0, R1, F0)
71 #define LDST(V0, V1, V2, R0, R1, R2, F0, F1, F2, F3, F4, F5) \
88 /* Simple test to simplify validating encodings before
89 * brute force tests */
100 stxi_i $offui %r0 %r1
101 movi %r1 0x8000000000000001
112 ldxi_uc %r1 %r0 $offuc
120 ldxi_us %r1 %r0 $offus
129 ldxi_ui %r1 %r0 $offui
130 beqi Lui %r1 0x80000001
134 beqi Ll %r1 0x8000000000000001
147 LDST(v0, v1, v2, r0, r1, r2, f0, f1, f2, f3, f4, f5)
148 // just to know did not abort