summaryrefslogtreecommitdiff
path: root/apps/recorder
diff options
context:
space:
mode:
authorAndrew Mahone <andrew.mahone@gmail.com>2009-07-13 00:40:35 +0000
committerAndrew Mahone <andrew.mahone@gmail.com>2009-07-13 00:40:35 +0000
commit668a769ca4cabdfee54dc53e92a964c32c9738d7 (patch)
treea4c42168e4b86d4b7e09533307ae070fd3c7bcc0 /apps/recorder
parent36eeecbe9a91a5da8bd82ee3974c359f4534dd14 (diff)
downloadrockbox-668a769ca4cabdfee54dc53e92a964c32c9738d7.tar.gz
rockbox-668a769ca4cabdfee54dc53e92a964c32c9738d7.zip
Add new asmdefs mechanism for exporting information only available to the C compiler for use in asm files, and use it in arm jpeg idct. See apps/apps.make, apps/core_asmdefs.c, and apps/recorder/jpeg_idct_arm.S for details.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21831 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/recorder')
-rw-r--r--apps/recorder/jpeg_idct_arm.S204
1 files changed, 54 insertions, 150 deletions
diff --git a/apps/recorder/jpeg_idct_arm.S b/apps/recorder/jpeg_idct_arm.S
index 75e3e4d2b3..d41b7a6aaa 100644
--- a/apps/recorder/jpeg_idct_arm.S
+++ b/apps/recorder/jpeg_idct_arm.S
@@ -22,6 +22,7 @@
22* 22*
23****************************************************************************/ 23****************************************************************************/
24#include "config.h" 24#include "config.h"
25#include "apps/core_asmdefs.h"
25 26
26 .section .text 27 .section .text
27 .align 2 28 .align 2
@@ -130,13 +131,8 @@ jpeg_idct2h:
130 mvnhi r5, r5, asr #31 131 mvnhi r5, r5, asr #31
131 cmp r4, #255 132 cmp r4, #255
132 mvnhi r4, r4, asr #31 133 mvnhi r4, r4, asr #31
133#ifdef HAVE_LCD_COLOR
134 strb r5, [r1] 134 strb r5, [r1]
135 strb r4, [r1, #4] 135 strb r4, [r1, #pix8_size]
136#else
137 strb r5, [r1]
138 strb r4, [r1, #1]
139#endif
140 add r0, r0, #16 136 add r0, r0, #16
141 add r1, r1, r3 137 add r1, r1, r3
142 cmp r0, r2 138 cmp r0, r2
@@ -152,13 +148,8 @@ jpeg_idct2h:
152 usat r4, #8, r12, asr #21 148 usat r4, #8, r12, asr #21
153 sxth r12, r12 149 sxth r12, r12
154 usat r12, #8, r12, asr #5 150 usat r12, #8, r12, asr #5
155#ifdef HAVE_LCD_COLOR
156 strb r4, [r1]
157 strb r12, [r1, #4]
158#else
159 strb r4, [r1] 151 strb r4, [r1]
160 strb r12, [r1, #1] 152 strb r12, [r1, #pix8_size]
161#endif
162 add r0, r0, #16 153 add r0, r0, #16
163 add r1, r1, r3 154 add r1, r1, r3
164 cmp r0, r2 155 cmp r0, r2
@@ -325,17 +316,10 @@ jpeg_idct4h:
325 mvnhi r4, r4, asr #31 316 mvnhi r4, r4, asr #31
326 cmp r5, #255 317 cmp r5, #255
327 mvnhi r5, r5, asr #31 318 mvnhi r5, r5, asr #31
328#ifdef HAVE_LCD_COLOR
329 strb r9, [r1]
330 strb r8, [r1, #4]
331 strb r4, [r1, #8]
332 strb r5, [r1, #12]
333#else
334 strb r9, [r1] 319 strb r9, [r1]
335 strb r8, [r1, #1] 320 strb r8, [r1, #pix8_size]
336 strb r4, [r1, #2] 321 strb r4, [r1, #2*pix8_size]
337 strb r5, [r1, #3] 322 strb r5, [r1, #3*pix8_size]
338#endif
339 add r0, r0, #16 323 add r0, r0, #16
340 add r1, r1, r3 324 add r1, r1, r3
341 cmp r0, r2 325 cmp r0, r2
@@ -372,17 +356,10 @@ jpeg_idct4h:
372 mvnhi r12, r12, asr #31 356 mvnhi r12, r12, asr #31
373 cmp r9, #255 357 cmp r9, #255
374 mvnhi r9, r9, asr #31 358 mvnhi r9, r9, asr #31
375#ifdef HAVE_LCD_COLOR
376 strb r6, [r1] 359 strb r6, [r1]
377 strb r14, [r1, #4] 360 strb r14, [r1, #pix8_size]
378 strb r12, [r1, #8] 361 strb r12, [r1, #2*pix8_size]
379 strb r9, [r1, #12] 362 strb r9, [r1, #3*pix8_size]
380#else
381 strb r6, [r1]
382 strb r14, [r1, #1]
383 strb r12, [r1, #2]
384 strb r9, [r1, #3]
385#endif
386 add r0, r0, #16 363 add r0, r0, #16
387 add r1, r1, r3 364 add r1, r1, r3
388 cmp r0, r2 365 cmp r0, r2
@@ -410,17 +387,10 @@ jpeg_idct4h:
410 usat r6, #8, r6, asr #18 387 usat r6, #8, r6, asr #18
411 usat r12, #8, r12, asr #18 388 usat r12, #8, r12, asr #18
412 usat r14, #8, r14, asr #18 389 usat r14, #8, r14, asr #18
413#ifdef HAVE_LCD_COLOR
414 strb r8, [r1]
415 strb r6, [r1, #12]
416 strb r12, [r1, #4]
417 strb r14, [r1, #8]
418#else
419 strb r8, [r1] 390 strb r8, [r1]
420 strb r6, [r1, #3] 391 strb r6, [r1, #3*pix8_size]
421 strb r12, [r1, #1] 392 strb r12, [r1, #pix8_size]
422 strb r14, [r1, #2] 393 strb r14, [r1, #2*pix8_size]
423#endif
424 add r0, r0, #16 394 add r0, r0, #16
425 add r1, r1, r3 395 add r1, r1, r3
426 cmp r0, r2 396 cmp r0, r2
@@ -645,25 +615,14 @@ jpeg_idct8h:
645 mov r8, r8, asr #21 615 mov r8, r8, asr #21
646 cmp r8, #255 616 cmp r8, #255
647 mvnhi r8, r8, asr #31 617 mvnhi r8, r8, asr #31
648#ifdef HAVE_LCD_COLOR
649 strb r8, [r1]
650 strb r8, [r1, #4]
651 strb r8, [r1, #8]
652 strb r8, [r1, #12]
653 strb r8, [r1, #16]
654 strb r8, [r1, #20]
655 strb r8, [r1, #24]
656 strb r8, [r1, #28]
657#else
658 strb r8, [r1] 618 strb r8, [r1]
659 strb r8, [r1, #1] 619 strb r8, [r1, #pix8_size]
660 strb r8, [r1, #2] 620 strb r8, [r1, #2*pix8_size]
661 strb r8, [r1, #3] 621 strb r8, [r1, #3*pix8_size]
662 strb r8, [r1, #4] 622 strb r8, [r1, #4*pix8_size]
663 strb r8, [r1, #5] 623 strb r8, [r1, #5*pix8_size]
664 strb r8, [r1, #6] 624 strb r8, [r1, #6*pix8_size]
665 strb r8, [r1, #7] 625 strb r8, [r1, #7*pix8_size]
666#endif
667 add r1, r1, r3 626 add r1, r1, r3
668 cmp r0, r2 627 cmp r0, r2
669 bcc 1b 628 bcc 1b
@@ -752,25 +711,14 @@ jpeg_idct8h:
752 mov r14, r14, asr #18 711 mov r14, r14, asr #18
753 cmp r14, #255 712 cmp r14, #255
754 mvnhi r14, r14, asr #31 713 mvnhi r14, r14, asr #31
755#ifdef HAVE_LCD_COLOR
756 strb r12, [r1]
757 strb r4, [r1, #4]
758 strb r10, [r1, #8]
759 strb r8, [r1, #12]
760 strb r9, [r1, #16]
761 strb r11, [r1, #20]
762 strb r5, [r1, #24]
763 strb r14, [r1, #28]
764#else
765 strb r12, [r1] 714 strb r12, [r1]
766 strb r4, [r1, #1] 715 strb r4, [r1, #pix8_size]
767 strb r10, [r1, #2] 716 strb r10, [r1, #2*pix8_size]
768 strb r8, [r1, #3] 717 strb r8, [r1, #3*pix8_size]
769 strb r9, [r1, #4] 718 strb r9, [r1, #4*pix8_size]
770 strb r11, [r1, #5] 719 strb r11, [r1, #5*pix8_size]
771 strb r5, [r1, #6] 720 strb r5, [r1, #6*pix8_size]
772 strb r14, [r1, #7] 721 strb r14, [r1, #7*pix8_size]
773#endif
774#else /* ARMv5+ */ 722#else /* ARMv5+ */
775 add r12, r14, r4, lsl #16 723 add r12, r14, r4, lsl #16
776 orrs r9, r6, r7 724 orrs r9, r6, r7
@@ -779,25 +727,14 @@ jpeg_idct8h:
779 mov r12, r12, asr #21 727 mov r12, r12, asr #21
780 cmp r12, #255 728 cmp r12, #255
781 mvnhi r12, r12, asr #31 729 mvnhi r12, r12, asr #31
782#ifdef HAVE_LCD_COLOR
783 strb r12, [r1] 730 strb r12, [r1]
784 strb r12, [r1, #4] 731 strb r12, [r1, #pix8_size]
785 strb r12, [r1, #8] 732 strb r12, [r1, #2*pix8_size]
786 strb r12, [r1, #12] 733 strb r12, [r1, #3*pix8_size]
787 strb r12, [r1, #16] 734 strb r12, [r1, #4*pix8_size]
788 strb r12, [r1, #20] 735 strb r12, [r1, #5*pix8_size]
789 strb r12, [r1, #24] 736 strb r12, [r1, #6*pix8_size]
790 strb r12, [r1, #28] 737 strb r12, [r1, #7*pix8_size]
791#else
792 strb r12, [r1]
793 strb r12, [r1, #1]
794 strb r12, [r1, #2]
795 strb r12, [r1, #3]
796 strb r12, [r1, #4]
797 strb r12, [r1, #5]
798 strb r12, [r1, #6]
799 strb r12, [r1, #7]
800#endif
801 add r1, r1, r3 738 add r1, r1, r3
802 cmp r0, r2 739 cmp r0, r2
803 bcc 1b 740 bcc 1b
@@ -869,25 +806,14 @@ jpeg_idct8h:
869 mov r11, r11, asr #18 806 mov r11, r11, asr #18
870 cmp r11, #255 807 cmp r11, #255
871 mvnhi r11, r11, asr #31 808 mvnhi r11, r11, asr #31
872#ifdef HAVE_LCD_COLOR
873 strb r10, [r1]
874 strb r12, [r1, #4]
875 strb r8, [r1, #8]
876 strb r6, [r1, #12]
877 strb r7, [r1, #16]
878 strb r9, [r1, #20]
879 strb r14, [r1, #24]
880 strb r11, [r1, #28]
881#else
882 strb r10, [r1] 809 strb r10, [r1]
883 strb r12, [r1, #1] 810 strb r12, [r1, #pix8_size]
884 strb r8, [r1, #2] 811 strb r8, [r1, #2*pix8_size]
885 strb r6, [r1, #3] 812 strb r6, [r1, #3*pix8_size]
886 strb r7, [r1, #4] 813 strb r7, [r1, #4*pix8_size]
887 strb r9, [r1, #5] 814 strb r9, [r1, #5*pix8_size]
888 strb r14, [r1, #6] 815 strb r14, [r1, #6*pix8_size]
889 strb r11, [r1, #7] 816 strb r11, [r1, #7*pix8_size]
890#endif
891#endif 817#endif
892 add r1, r1, r3 818 add r1, r1, r3
893 cmp r0, r2 819 cmp r0, r2
@@ -1009,25 +935,14 @@ jpeg_idct8h:
1009 bne 2f 935 bne 2f
1010 sxth r4, r4 936 sxth r4, r4
1011 usat r4, #8, r4, asr #5 937 usat r4, #8, r4, asr #5
1012#ifdef HAVE_LCD_COLOR
1013 strb r4, [r1]
1014 strb r4, [r1, #4]
1015 strb r4, [r1, #8]
1016 strb r4, [r1, #12]
1017 strb r4, [r1, #16]
1018 strb r4, [r1, #20]
1019 strb r4, [r1, #24]
1020 strb r4, [r1, #28]
1021#else
1022 strb r4, [r1] 938 strb r4, [r1]
1023 strb r4, [r1, #1] 939 strb r4, [r1, #pix8_size]
1024 strb r4, [r1, #2] 940 strb r4, [r1, #2*pix8_size]
1025 strb r4, [r1, #3] 941 strb r4, [r1, #3*pix8_size]
1026 strb r4, [r1, #4] 942 strb r4, [r1, #4*pix8_size]
1027 strb r4, [r1, #5] 943 strb r4, [r1, #5*pix8_size]
1028 strb r4, [r1, #6] 944 strb r4, [r1, #6*pix8_size]
1029 strb r4, [r1, #7] 945 strb r4, [r1, #7*pix8_size]
1030#endif
1031 add r1, r1, r3 946 add r1, r1, r3
1032 cmp r0, r2 947 cmp r0, r2
1033 bcc 1b 948 bcc 1b
@@ -1083,25 +998,14 @@ jpeg_idct8h:
1083 usat r10, #8, r10, asr #18 998 usat r10, #8, r10, asr #18
1084 usat r7, #8, r7, asr #18 999 usat r7, #8, r7, asr #18
1085 usat r8, #8, r8, asr #18 1000 usat r8, #8, r8, asr #18
1086#ifdef HAVE_LCD_COLOR
1087 strb r6, [r1]
1088 strb r4, [r1, #4]
1089 strb r9, [r1, #8]
1090 strb r14, [r1, #12]
1091 strb r12, [r1, #16]
1092 strb r10, [r1, #20]
1093 strb r7, [r1, #24]
1094 strb r8, [r1, #28]
1095#else
1096 strb r6, [r1] 1001 strb r6, [r1]
1097 strb r4, [r1, #1] 1002 strb r4, [r1, #pix8_size]
1098 strb r9, [r1, #2] 1003 strb r9, [r1, #2*pix8_size]
1099 strb r14, [r1, #3] 1004 strb r14, [r1, #3*pix8_size]
1100 strb r12, [r1, #4] 1005 strb r12, [r1, #4*pix8_size]
1101 strb r10, [r1, #5] 1006 strb r10, [r1, #5*pix8_size]
1102 strb r7, [r1, #6] 1007 strb r7, [r1, #6*pix8_size]
1103 strb r8, [r1, #7] 1008 strb r8, [r1, #7*pix8_size]
1104#endif
1105 cmp r0, r2 1009 cmp r0, r2
1106 add r1, r1, r3 1010 add r1, r1, r3
1107 bcc 1b 1011 bcc 1b