diff options
Diffstat (limited to 'tremor/asm_arm.h')
-rw-r--r-- | tremor/asm_arm.h | 26 |
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; |