2018-03-08 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.target / arm / addr-modes.h
blob9844c6adf6c74204618995e2461260c0c91a2f25
2 #define PRE_STORE(T, ATTR) \
3 ATTR T * \
4 T ## _pre_store (T *p, T v) \
5 { \
6 *++p = v; \
7 return p; \
8 } \
10 #define POST_STORE(T, ATTR) \
11 ATTR T * \
12 T ## _post_store (T *p, T v) \
13 { \
14 *p++ = v; \
15 return p; \
18 #define POST_STORE_VEC(T, VT, OP, ATTR) \
19 ATTR T * \
20 VT ## _post_store (T * p, VT v) \
21 { \
22 OP (p, v); \
23 p += sizeof (VT) / sizeof (T); \
24 return p; \
27 #define PRE_LOAD(T, ATTR) \
28 ATTR void \
29 T ## _pre_load (T *p) \
30 { \
31 ATTR extern void f ## T (T*,T); \
32 T x = *++p; \
33 f ## T (p, x); \
36 #define POST_LOAD(T, ATTR) \
37 ATTR void \
38 T ## _post_load (T *p) \
39 { \
40 ATTR extern void f ## T (T*,T); \
41 T x = *p++; \
42 f ## T (p, x); \
45 #define POST_LOAD_VEC(T, VT, OP, ATTR) \
46 ATTR void \
47 VT ## _post_load (T * p) \
48 { \
49 ATTR extern void f ## T (T*,T); \
50 VT x = OP (p, v); \
51 p += sizeof (VT) / sizeof (T); \
52 f ## T (p, x); \