summaryrefslogtreecommitdiff
path: root/apps/codecs/lib
diff options
context:
space:
mode:
authorDave Hooper <dave@beermex.com>2010-02-21 21:17:53 +0000
committerDave Hooper <dave@beermex.com>2010-02-21 21:17:53 +0000
commit0b5338a6e9097c98223ea1e06b962b1cc78ea57b (patch)
tree5f59e52046d57009ae20fa418d87f87577afd77b /apps/codecs/lib
parent3c52395b570d5abc394b5a1320d642057e6f4174 (diff)
Eep, didn't mean to commit those other files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24820 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/lib')
-rw-r--r--apps/codecs/lib/SOURCES4
-rw-r--r--apps/codecs/lib/asm_arm.h13
-rw-r--r--apps/codecs/lib/codeclib.h2
3 files changed, 11 insertions, 8 deletions
diff --git a/apps/codecs/lib/SOURCES b/apps/codecs/lib/SOURCES
index 438cd1fc62..da77f97d30 100644
--- a/apps/codecs/lib/SOURCES
+++ b/apps/codecs/lib/SOURCES
@@ -4,14 +4,14 @@ fixedpoint.c
/* OLD MDCT */
/* (when all other codecs are remediated this can be remoed) */
-/* mdct2.c */
+mdct2.c
mdct_lookup.c
fft-ffmpeg.c
mdct.c
#ifdef CPU_ARM
-/*mdct_arm.S*/
+mdct_arm.S
setjmp_arm.S
../../../firmware/target/arm/support-arm.S
#endif
diff --git a/apps/codecs/lib/asm_arm.h b/apps/codecs/lib/asm_arm.h
index 9dcbcef755..4f31f80c3e 100644
--- a/apps/codecs/lib/asm_arm.h
+++ b/apps/codecs/lib/asm_arm.h
@@ -226,11 +226,14 @@ void vect_mult_bw(int32_t *data, int32_t *window, int n)
#define _V_CLIP_MATH
static inline int32_t CLIP_TO_15(int32_t x) {
- const int32_t mask = 0xffff7fff;
- asm volatile("teq %0,%0,asr #31\n\t"
- "eorne %0,%1,%0,asr #31\n\t"
- : "+r"(x)
- : "r" (mask)
+ int tmp;
+ asm volatile("subs %1, %0, #32768\n\t"
+ "movpl %0, #0x7f00\n\t"
+ "orrpl %0, %0, #0xff\n"
+ "adds %1, %0, #32768\n\t"
+ "movmi %0, #0x8000"
+ : "+r"(x),"=r"(tmp)
+ :
: "cc");
return(x);
}
diff --git a/apps/codecs/lib/codeclib.h b/apps/codecs/lib/codeclib.h
index 32a4696b9d..817d86a6a3 100644
--- a/apps/codecs/lib/codeclib.h
+++ b/apps/codecs/lib/codeclib.h
@@ -65,7 +65,7 @@ void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, con
/*MDCT library functions*/
/* -1- Tremor mdct */
-/* extern void mdct_backward(int n, int32_t *in, int32_t *out); */
+extern void mdct_backward(int n, int32_t *in, int32_t *out);
/* -2- ffmpeg fft-based mdct */
extern void ff_imdct_half(unsigned int nbits, int32_t *output, const int32_t *input);
extern void ff_imdct_calc(unsigned int nbits, int32_t *output, const int32_t *input);