05/10/2017 14:33, Xiaoyun Li: > +/** > + * Macro for copying unaligned block from one location to another with > constant load offset, > + * 47 bytes leftover maximum, > + * locations should not overlap. > + * Requirements: > + * - Store is aligned > + * - Load offset is <offset>, which must be immediate value within [1, 15] > + * - For <src>, make sure <offset> bit backwards & <16 - offset> bit > forwards are available for loading > + * - <dst>, <src>, <len> must be variables > + * - __m128i <xmm0> ~ <xmm8> must be pre-defined > + */ > +#define MOVEUNALIGNED_LEFT47_IMM(dst, src, len,
Naive question: Is there a real benefit of using a macro compared to a static inline function optimized by a modern compiler? Anyway, if you are doing a new version, please reduce lines length and fix the indent from spaces to tabs. Thank you