Hi, Since I'm gonna resend a new series, I'll comment myself ;) On 10/30/2012 10:39 AM, Frédéric Dalleau wrote:
+static inline void sbc_analyze_1b_8s_mmx(struct sbc_encoder_state *state, + int16_t *x, int32_t *out, int out_stride) +{ + if (state->odd) + sbc_analyze_eight_mmx(x, out, analysis_consts_fixed8_simd_odd); + else + sbc_analyze_eight_mmx(x, out, analysis_consts_fixed8_simd_even); + + state->odd = !state->odd; + + __asm__ volatile ("emms\n"); +} +
One thing bother me about this patch : the emms instruction is called after every block, instead of every four blocks until now. I have very little knowledge about this, but I read that emms instruction is somewhat expensive. Some quick tests haven't shown differences, but it is possible to add a post analyze callback to overcome this. In this case, emms instruction could be run every 15 blocks or whatever is defined. Is it worth it? Thanks, Frédéric -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html