#define XPROD31_R(_a, _b, _t, _v, _x, _y)\
{\
asm volatile ("mac.l %[a], %[t], %%acc0;"\
"mac.l %[b], %[v], %%acc0;"\
"mac.l %[b], %[t], %%acc1;"\
"msac.l %[a], %[v], %%acc1;"\
"movclr.l %%acc0, %[a];"\
"move.l %[a], (%[x]);"\
"movclr.l %%acc1, %[a];"\
"move.l %[a], (%[y]);"\
: [a] "+&r" (_a)\
: [x] "a" (_x), [y] "a" (_y),\
[b] "r" (_b), [t] "r" (_t), [v] "r" (_v)\
: "cc", "memory");\
}\