From 8687b9899382b6008c66a89dbc01271437f7654d Mon Sep 17 00:00:00 2001 From: Nils Wallménius Date: Mon, 1 Oct 2012 22:36:57 +0200 Subject: opus: speed up arm asm MULT16_32_Q15 Reorder operands to take advantage of the early termination of multiplications. Saves 2.5MHz decoding a 64kbps opus test file on c200 (pp). Change-Id: I470266dc870ab183ece3b23426d41e2a64342a71 --- lib/rbcodec/codecs/libopus/celt/fixed_generic.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rbcodec/codecs/libopus/celt/fixed_generic.h b/lib/rbcodec/codecs/libopus/celt/fixed_generic.h index bc6820fa21..5682a6793d 100644 --- a/lib/rbcodec/codecs/libopus/celt/fixed_generic.h +++ b/lib/rbcodec/codecs/libopus/celt/fixed_generic.h @@ -58,7 +58,7 @@ static inline int32_t MULT16_32_Q15(int32_t a, int32_t b) static inline int32_t MULT16_32_Q15(int32_t a, int32_t b) { int32_t lo, hi; - asm volatile("smull %[lo], %[hi], %[a], %[b] \n\t" + asm volatile("smull %[lo], %[hi], %[b], %[a] \n\t" "mov %[lo], %[lo], lsr #15 \n\t" "orr %[hi], %[lo], %[hi], lsl #17 \n\t" : [lo] "=&r" (lo), [hi] "=&r" (hi) -- cgit v1.2.3