(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
addr-modes.h
       1  
       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    }					\
       9  
      10  #define POST_STORE(T, ATTR)		\
      11    ATTR T *				\
      12    T ## _post_store (T *p, T v)		\
      13    {					\
      14      *p++ = v;				\
      15      return p;				\
      16    }
      17  
      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;				\
      25    }
      26  
      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);			\
      34    }
      35  
      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);			\
      43    }
      44  
      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);			\
      53    }