summaryrefslogtreecommitdiffstats
path: root/tremor/asm_arm.h
diff options
context:
space:
mode:
Diffstat (limited to 'tremor/asm_arm.h')
-rw-r--r--tremor/asm_arm.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/tremor/asm_arm.h b/tremor/asm_arm.h
index 3a3716df1f..f4b1f4f8cf 100644
--- a/tremor/asm_arm.h
+++ b/tremor/asm_arm.h
@@ -127,7 +127,7 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
ogg_int32_t *qexpp,
ogg_int32_t *ilsp,ogg_int32_t wi,
ogg_int32_t m){
-
+
ogg_uint32_t qi=*qip,pi=*pip;
ogg_int32_t qexp=*qexpp;
@@ -135,16 +135,16 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
"mov r1,%5,asr#1;"
"add r0,r0,r1,lsl#3;"
"1:"
-
+
"ldmdb r0!,{r1,r3};"
"subs r1,r1,%4;" //ilsp[j]-wi
"rsbmi r1,r1,#0;" //labs(ilsp[j]-wi)
"umull %0,r2,r1,%0;" //qi*=labs(ilsp[j]-wi)
-
+
"subs r1,r3,%4;" //ilsp[j+1]-wi
"rsbmi r1,r1,#0;" //labs(ilsp[j+1]-wi)
"umull %1,r3,r1,%1;" //pi*=labs(ilsp[j+1]-wi)
-
+
"cmn r2,r3;" // shift down 16?
"beq 0f;"
"add %2,%2,#16;"
@@ -155,20 +155,20 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
"0:"
"cmp r0,%3;\n"
"bhi 1b;\n"
-
+
// odd filter assymetry
"ands r0,%5,#1;\n"
"beq 2f;\n"
"add r0,%3,%5,lsl#2;\n"
-
+
"ldr r1,[r0,#-4];\n"
"mov r0,#0x4000;\n"
-
+
"subs r1,r1,%4;\n" //ilsp[j]-wi
"rsbmi r1,r1,#0;\n" //labs(ilsp[j]-wi)
"umull %0,r2,r1,%0;\n" //qi*=labs(ilsp[j]-wi)
"umull %1,r3,r0,%1;\n" //pi*=labs(ilsp[j+1]-wi)
-
+
"cmn r2,r3;\n" // shift down 16?
"beq 2f;\n"
"add %2,%2,#16;\n"
@@ -176,13 +176,13 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
"orr %0,%0,r2,lsl #16;\n"
"mov %1,%1,lsr #16;\n"
"orr %1,%1,r3,lsl #16;\n"
-
+
//qi=(pi>>shift)*labs(ilsp[j]-wi);
//pi=(qi>>shift)*labs(ilsp[j+1]-wi);
//qexp+=shift;
-
+
//}
-
+
/* normalize to max 16 sig figs */
"2:"
"mov r2,#0;"
@@ -204,11 +204,11 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
"mov %0,%0,lsr r2;"
"mov %1,%1,lsr r2;"
"add %2,%2,r2;"
-
+
: "+r"(qi),"+r"(pi),"+r"(qexp)
: "r"(ilsp),"r"(wi),"r"(m)
: "r0","r1","r2","r3","cc");
-
+
*qip=qi;
*pip=pi;
*qexpp=qexp;