int offset, int16_t * table)
int offset, const int16_t * table)
static inline void mmxext_row_mid (int16_t * row, int store,				   int offset, int16_t * table){    movq_m2r (*(row+offset), mm2);	// mm2 = x6 x4 x2 x0    psrad_i2r (ROW_SHIFT, mm0);		// mm0 = y3 y2    movq_m2r (*(row+offset+4), mm5);	// mm5 = x7 x5 x3 x1    psrad_i2r (ROW_SHIFT, mm4);		// mm4 = y4 y5    packssdw_r2r (mm0, mm1);		// mm1 = y3 y2 y1 y0    movq_r2r (mm5, mm6);		// mm6 = x7 x5 x3 x1    packssdw_r2r (mm3, mm4);		// mm4 = y6 y7 y4 y5    movq_r2r (mm2, mm0);		// mm0 = x6 x4 x2 x0    movq_r2m (mm1, *(row+store));	// save y3 y2 y1 y0    pshufw_r2r (mm4, mm4, 0xb1);	// mm4 = y7 y6 y5 y4    movq_m2r (*table, mm3);		// mm3 = -C2 -C4 C2 C4    movq_r2m (mm4, *(row+store+4));	// save y7 y6 y5 y4    pmaddwd_r2r (mm0, mm3);		// mm3 = -C4*x4-C2*x6 C4*x0+C2*x2    movq_m2r (*(table+4), mm4);		// mm4 = C6 C4 C6 C4    pshufw_r2r (mm2, mm2, 0x4e);	// mm2 = x2 x0 x6 x4}