1.syntax unified
2.thumb
3
4.macro all_vstr op, imm
5.irp op1, q0, q1, q2, q4, q7
6.irp op2, q0, q1, q2, q4, q7
7\op \op1, [\op2, #\imm]
8\op \op1, [\op2, #-\imm]
9\op \op1, [\op2, #\imm]!
10\op \op1, [\op2, #-\imm]!
11.endr
12.endr
13.endm
14
15.irp data, .32, .u32, .s32, .f32
16.irp imm, 0, 4, 8, 16, 32, 64, 128, 256, 508, 340, 168, 60, 480
17all_vstr vstrw\data, \imm
18.endr
19.endr
20
21.irp data, .64, .u64, .s64
22.irp imm, 0, 8, 16, 32, 64, 128, 256, 512, 1016, 680, 336, 960, 120
23all_vstr vstrd\data, \imm
24.endr
25.endr
26
27
28vpstete
29vstrwt.32 q0, [q1, #4]
30vstrwe.u32 q1, [q0, #-4]
31vstrwt.s32 q2, [q2]
32vstrwe.f32 q3, [q4, #-508]
33vpstet
34vstrdt.64 q4, [q5, #512]
35vstrde.u64 q5, [q6, #1016]
36vstrdt.s64 q6, [q7, #-1016]
37
38.macro all_vldr_qq op, op1, op2, imm
39\op \op1, [\op2, #\imm]
40\op \op1, [\op2, #-\imm]
41\op \op1, [\op2, #\imm]!
42\op \op1, [\op2, #-\imm]!
43.endm
44
45.macro all_vldr_q0 op, imm
46.irp op2, q1, q2, q4, q7
47all_vldr_qq \op, q0, \op2, \imm
48.endr
49.endm
50
51.macro all_vldr_q1 op, imm
52.irp op2, q0, q2, q4, q7
53all_vldr_qq \op, q1, \op2, \imm
54.endr
55.endm
56
57.macro all_vldr_q2 op, imm
58.irp op2, q0, q1, q4, q7
59all_vldr_qq \op, q2, \op2, \imm
60.endr
61.endm
62
63.macro all_vldr_q4 op, imm
64.irp op2, q0, q1, q2, q7
65all_vldr_qq \op, q4, \op2, \imm
66.endr
67.endm
68
69.macro all_vldr_q7 op, imm
70.irp op2, q0, q1, q2, q4
71all_vldr_qq \op, q7, \op2, \imm
72.endr
73.endm
74
75.macro all_vldr op, imm
76all_vldr_q0 \op, \imm
77all_vldr_q1 \op, \imm
78all_vldr_q2 \op, \imm
79all_vldr_q4 \op, \imm
80all_vldr_q7 \op, \imm
81.endm
82
83.irp data, .32, .u32, .s32, .f32
84.irp imm, 0, 4, 8, 16, 32, 64, 128, 256, 508, 340, 168, 60, 480
85all_vldr vldrw\data, \imm
86.endr
87.endr
88
89.irp data, .64, .u64, .s64
90.irp imm, 0, 8, 16, 32, 64, 128, 256, 512, 1016, 680, 336, 960, 120
91all_vldr vldrd\data, \imm
92.endr
93.endr
94
95vpstete
96vldrwt.32 q0, [q1, #4]
97vldrwe.u32 q1, [q0, #-4]
98vldrwt.s32 q2, [q3]
99vldrwe.f32 q3, [q4, #-508]
100vpstet
101vldrdt.64 q4, [q5, #512]
102vldrde.u64 q5, [q6, #1016]
103vldrdt.s64 q6, [q7, #-1016]
104