diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/recorder/jpeg_idct_arm.S | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/apps/recorder/jpeg_idct_arm.S b/apps/recorder/jpeg_idct_arm.S index d41b7a6aaa..5c7008b0c3 100644 --- a/apps/recorder/jpeg_idct_arm.S +++ b/apps/recorder/jpeg_idct_arm.S | |||
@@ -194,7 +194,8 @@ jpeg_idct4v: | |||
194 | #elif ARM_ARCH < 6 | 194 | #elif ARM_ARCH < 6 |
195 | stmdb sp!, { r4-r8, lr } | 195 | stmdb sp!, { r4-r8, lr } |
196 | mov r8, #1024 | 196 | mov r8, #1024 |
197 | ldrd r4, .Lpool4 | 197 | ldr r4, .Lpool4 |
198 | ldr r5, .Lpool4+4 | ||
198 | 1: | 199 | 1: |
199 | ldrsh r14, [r0, #48] | 200 | ldrsh r14, [r0, #48] |
200 | ldrsh r3, [r0, #16] | 201 | ldrsh r3, [r0, #16] |
@@ -325,9 +326,10 @@ jpeg_idct4h: | |||
325 | cmp r0, r2 | 326 | cmp r0, r2 |
326 | bcc 1b | 327 | bcc 1b |
327 | ldmia sp!, { r4-r10, pc } | 328 | ldmia sp!, { r4-r10, pc } |
328 | #elif ARM_ARCH < 6 || 1 | 329 | #elif ARM_ARCH < 6 |
329 | stmdb sp!, { r4-r9, lr } | 330 | stmdb sp!, { r4-r9, lr } |
330 | ldrd r4, .Lpool4 | 331 | ldr r4, .Lpool4 |
332 | ldr r5, .Lpool4+4 | ||
331 | 1: | 333 | 1: |
332 | ldrsh r7, [r0, #6] | 334 | ldrsh r7, [r0, #6] |
333 | ldrsh r14, [r0, #2] | 335 | ldrsh r14, [r0, #2] |
@@ -519,7 +521,8 @@ jpeg_idct8v: | |||
519 | bcc 1b | 521 | bcc 1b |
520 | ldmia sp!, { r4-r11, pc } | 522 | ldmia sp!, { r4-r11, pc } |
521 | 2: | 523 | 2: |
522 | ldrd r8, .Lpool8 | 524 | ldr r8, .Lpool8 |
525 | ldr r9, .Lpool8+4 | ||
523 | add r12, r12, #8192 | 526 | add r12, r12, #8192 |
524 | add r10, r5, r7 /* r10[15:0] = d2 + d6 */ | 527 | add r10, r5, r7 /* r10[15:0] = d2 + d6 */ |
525 | sub r14, r12, r6, lsl #16 /* r14 = tmp1 << 3 = (d0 - d4) << 16 */ | 528 | sub r14, r12, r6, lsl #16 /* r14 = tmp1 << 3 = (d0 - d4) << 16 */ |
@@ -537,7 +540,8 @@ jpeg_idct8v: | |||
537 | add r12, r6, r4, asr #16 /* r12 = z4 = tmp1 + tmp3 */ | 540 | add r12, r6, r4, asr #16 /* r12 = z4 = tmp1 + tmp3 */ |
538 | add r14, r7, r5, asr #16 /* r14 = z3 = tmp0 + tmp2 */ | 541 | add r14, r7, r5, asr #16 /* r14 = z3 = tmp0 + tmp2 */ |
539 | add r8, r12, r14 /* r8 = z3 + z4 */ | 542 | add r8, r12, r14 /* r8 = z3 + z4 */ |
540 | ldrd r10, .Lpool8+8 | 543 | ldr r10, .Lpool8+8 |
544 | ldr r11, .Lpool8+12 | ||
541 | smultb r8, r9, r8 /* r8 = z5 = (z3 + z4) * 9633 */ | 545 | smultb r8, r9, r8 /* r8 = z5 = (z3 + z4) * 9633 */ |
542 | add r9, r7, r4, asr #16 /* r9 = z1 = tmp0 + tmp3 */ | 546 | add r9, r7, r4, asr #16 /* r9 = z1 = tmp0 + tmp3 */ |
543 | smlabb r14, r10, r14, r8 /* r14 = z3 = z5 - z3 * 16069 */ | 547 | smlabb r14, r10, r14, r8 /* r14 = z3 = z5 - z3 * 16069 */ |
@@ -547,7 +551,8 @@ jpeg_idct8v: | |||
547 | add r10, r6, r5, asr #16 /* r10 = z2 = tmp1 + tmp2 */ | 551 | add r10, r6, r5, asr #16 /* r10 = z2 = tmp1 + tmp2 */ |
548 | smlatb r12, r11, r10, r12 /* r12 = z4 - z2 * 20995 */ | 552 | smlatb r12, r11, r10, r12 /* r12 = z4 - z2 * 20995 */ |
549 | smlatb r14, r11, r10, r14 /* r14 = z3 - z2 * 20995 */ | 553 | smlatb r14, r11, r10, r14 /* r14 = z3 - z2 * 20995 */ |
550 | ldrd r10, .Lpool8+16 | 554 | ldr r10, .Lpool8+16 |
555 | ldr r11, .Lpool8+20 | ||
551 | smlabb r7, r10, r7, r8 /* r7 = tmp0 */ | 556 | smlabb r7, r10, r7, r8 /* r7 = tmp0 */ |
552 | smlatt r4, r10, r4, r9 /* r4 = tmp3 */ | 557 | smlatt r4, r10, r4, r9 /* r4 = tmp3 */ |
553 | smlabb r6, r11, r6, r12 /* r6 = tmp1 */ | 558 | smlabb r6, r11, r6, r12 /* r6 = tmp1 */ |
@@ -740,7 +745,8 @@ jpeg_idct8h: | |||
740 | bcc 1b | 745 | bcc 1b |
741 | ldmia sp!, { r4-r11, pc } | 746 | ldmia sp!, { r4-r11, pc } |
742 | 2: | 747 | 2: |
743 | ldrd r8, .Lpool8 | 748 | ldr r8, .Lpool8 |
749 | ldr r9, .Lpool8+4 | ||
744 | add r10, r5, r7 /* r10[15:0] = d2 + d6 */ | 750 | add r10, r5, r7 /* r10[15:0] = d2 + d6 */ |
745 | sub r14, r12, r6, lsl #16 /* r14 = tmp1 << 3 = (d0 - d4) << 16 */ | 751 | sub r14, r12, r6, lsl #16 /* r14 = tmp1 << 3 = (d0 - d4) << 16 */ |
746 | smulbb r10, r8, r10 /* r10 = z1 = (d2 + d6) * 4433 */ | 752 | smulbb r10, r8, r10 /* r10 = z1 = (d2 + d6) * 4433 */ |
@@ -757,7 +763,8 @@ jpeg_idct8h: | |||
757 | add r12, r6, r4, asr #16 /* r12 = z4 = tmp1 + tmp3 */ | 763 | add r12, r6, r4, asr #16 /* r12 = z4 = tmp1 + tmp3 */ |
758 | add r14, r7, r5, asr #16 /* r14 = z3 = tmp0 + tmp2 */ | 764 | add r14, r7, r5, asr #16 /* r14 = z3 = tmp0 + tmp2 */ |
759 | add r8, r12, r14 /* r8 = z3 + z4 */ | 765 | add r8, r12, r14 /* r8 = z3 + z4 */ |
760 | ldrd r10, .Lpool8+8 | 766 | ldr r10, .Lpool8+8 |
767 | ldr r10, .Lpool8+12 | ||
761 | smultb r8, r9, r8 /* r8 = z5 = (z3 + z4) * 9633 */ | 768 | smultb r8, r9, r8 /* r8 = z5 = (z3 + z4) * 9633 */ |
762 | add r9, r7, r4, asr #16 /* r9 = z1 = tmp0 + tmp3 */ | 769 | add r9, r7, r4, asr #16 /* r9 = z1 = tmp0 + tmp3 */ |
763 | smlabb r14, r10, r14, r8 /* r14 = z3 = z5 - z3 * 16069 */ | 770 | smlabb r14, r10, r14, r8 /* r14 = z3 = z5 - z3 * 16069 */ |
@@ -767,7 +774,8 @@ jpeg_idct8h: | |||
767 | add r10, r6, r5, asr #16 /* r10 = z2 = tmp1 + tmp2 */ | 774 | add r10, r6, r5, asr #16 /* r10 = z2 = tmp1 + tmp2 */ |
768 | smlatb r12, r11, r10, r12 /* r12 = z4 - z2 * 20995 */ | 775 | smlatb r12, r11, r10, r12 /* r12 = z4 - z2 * 20995 */ |
769 | smlatb r14, r11, r10, r14 /* r14 = z3 - z2 * 20995 */ | 776 | smlatb r14, r11, r10, r14 /* r14 = z3 - z2 * 20995 */ |
770 | ldrd r10, .Lpool8+16 | 777 | ldr r10, .Lpool8+16 |
778 | ldr r11, .Lpool8+20 | ||
771 | smlabb r7, r10, r7, r8 /* r7 = tmp0 */ | 779 | smlabb r7, r10, r7, r8 /* r7 = tmp0 */ |
772 | smlatt r4, r10, r4, r9 /* r4 = tmp3 */ | 780 | smlatt r4, r10, r4, r9 /* r4 = tmp3 */ |
773 | smlabb r6, r11, r6, r12 /* r6 = tmp1 */ | 781 | smlabb r6, r11, r6, r12 /* r6 = tmp1 */ |