7 /* XXX: only LITTLE_ENDIAN is actually needed here. The way these
8 macros is written, it does not require that unaligned references
12 #define WSAACHAR(s,v) \
14 uint8_t _wsb_v = (v); \
15 saa_wbytes(s, &_wsb_v, 1); \
18 #define WSAASHORT(s,v) \
20 uint16_t _wss_v = (v); \
21 saa_wbytes(s, &_wss_v, 2); \
24 #define WSAALONG(s,v) \
26 uint32_t _wsl_v = (v); \
27 saa_wbytes(s, &_wsl_v, 4); \
30 #define WSAADLONG(s,v) \
32 uint64_t _wsq_v = (v); \
33 saa_wbytes(s, &_wsq_v, 8); \
36 #else /* !X86_MEMORY */
38 #define WSAACHAR(s,v) \
40 uint8_t _wsb_v = (v); \
41 saa_wbytes(s, &_wsb_v, 1); \
44 #define WSAASHORT(s,v) \
46 uint16_t _wss_v = (v); \
49 _wss_p[1] = _wss_v >> 8; \
50 saa_wbytes(s, _wss_p, 2); \
53 #define WSAALONG(s,v) \
55 uint32_t _wsl_v = (v); \
58 _wsl_p[1] = _wsl_v >> 8; \
59 _wsl_p[2] = _wsl_v >> 16; \
60 _wsl_p[3] = _wsl_v >> 24; \
61 saa_wbytes(s, _wsl_p, 4); \
64 #define WSAADLONG(s,v) \
66 uint64_t _wsq_v = (v); \
69 _wsq_p[1] = _wsq_v >> 8; \
70 _wsq_p[2] = _wsq_v >> 16; \
71 _wsq_p[3] = _wsq_v >> 24; \
72 _wsq_p[4] = _wsq_v >> 32; \
73 _wsq_p[5] = _wsq_v >> 40; \
74 _wsq_p[6] = _wsq_v >> 48; \
75 _wsq_p[7] = _wsq_v >> 56; \
76 saa_wbytes(s, _wsq_p, 8); \
81 #endif /* NASM_WSAA_H */