Lenard Lindstrom wrote:
The assembler code in the transform module is not MMX as advertised. It contains at least one SSE instruction: PSHUFW .
This is a patch for SVN transform.c that removes the offensive SSE instructions when the macro NO_SSE is defined.
-- Lenard Lindstrom <[EMAIL PROTECTED]>
31a32,42 > /* mmx/sse assembly sequence to dumplicate the first word in an mmx > register. */ > #if defined(NO_SSE) > #define PSHUFW_0(mmxregno) \ > " punpcklwd %%mm" #mmxregno ", %%mm" #mmxregno ";" \ > " punpckldq %%mm" #mmxregno ", %%mm" #mmxregno ";" > #else > #define PSHUFW_O(mmxregno) \ > " pshufw $0, %%mm" #mmxregno ", %%mm" #mmxregno ";" > #endif > > 1026c1037 < " pshufw $0, %%mm7, %%mm7; " --- > PSHUFW_0(7) 1043c1054 < " pshufw $0, %%mm2, %%mm2; " --- > PSHUFW_0(2) 1077c1088 < " pshufw $0, %%mm7, %%mm7; " --- > PSHUFW_0(7) 1094c1105 < " pshufw $0, %%mm2, %%mm2; " --- > PSHUFW_0(2) 1210c1221 < " pshufw $0, %%mm7, %%mm7; " --- > PSHUFW_0(7) 1232c1243 < " pshufw $0, %%mm1, %%mm1; " --- > PSHUFW_0(1) 1270c1281 < " pshufw $0, %%mm7, %%mm7; " --- > PSHUFW_0(7) 1292c1303 < " pshufw $0, %%mm1, %%mm1; " --- > PSHUFW_0(1) 1535,1536c1546,1547 < " pshufw $0, %%mm1, %%mm1; " < " pshufw $0, %%mm2, %%mm2; " --- > PSHUFW_0(1) > PSHUFW_0(2) 1564,1565c1575,1576 < " pshufw $0, %%mm1, %%mm1; " < " pshufw $0, %%mm2, %%mm2; " --- > PSHUFW_0(1) > PSHUFW_0(2)
