diff options
author | Chris Chua <someone42@gmail.com> | 2023-03-19 06:22:08 +1100 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2023-03-23 13:28:22 -0400 |
commit | 86429dbf1eca8ee0e08176997f508647c3abf6bd (patch) | |
tree | 4d35e56e338a326d1a04c8d1f620821fa7909678 /apps/plugins/mpegplayer | |
parent | a64cad847e7d24dc4d01d5ab22f6c8dc42f960ae (diff) | |
download | rockbox-86429dbf1eca8ee0e08176997f508647c3abf6bd.tar.gz rockbox-86429dbf1eca8ee0e08176997f508647c3abf6bd.zip |
Using ARM Unified Assembler Language
Change-Id: Iae32a8ba8eff6087330e458fafc912a12fee4509
Diffstat (limited to 'apps/plugins/mpegplayer')
-rw-r--r-- | apps/plugins/mpegplayer/libmpeg2/idct_arm.S | 6 | ||||
-rw-r--r-- | apps/plugins/mpegplayer/libmpeg2/idct_armv6.S | 7 | ||||
-rw-r--r-- | apps/plugins/mpegplayer/mpeg_misc.h | 22 |
3 files changed, 19 insertions, 16 deletions
diff --git a/apps/plugins/mpegplayer/libmpeg2/idct_arm.S b/apps/plugins/mpegplayer/libmpeg2/idct_arm.S index 97a87a8b59..90eb5031c7 100644 --- a/apps/plugins/mpegplayer/libmpeg2/idct_arm.S +++ b/apps/plugins/mpegplayer/libmpeg2/idct_arm.S | |||
@@ -43,8 +43,8 @@ | |||
43 | ldrsh r7, [r0, #12] /* d2 */ | 43 | ldrsh r7, [r0, #12] /* d2 */ |
44 | ldrsh r8, [r0, #14] /* d3 */ | 44 | ldrsh r8, [r0, #14] /* d3 */ |
45 | orrs r9, r2, r3 | 45 | orrs r9, r2, r3 |
46 | orreqs r9, r4, r5 | 46 | orrseq r9, r4, r5 |
47 | orreqs r9, r6, r7 | 47 | orrseq r9, r6, r7 |
48 | cmpeq r8, #0 | 48 | cmpeq r8, #0 |
49 | bne 2f | 49 | bne 2f |
50 | mov r1, r1, asl #15 | 50 | mov r1, r1, asl #15 |
@@ -320,7 +320,7 @@ mpeg2_idct_copy: | |||
320 | mpeg2_idct_add: | 320 | mpeg2_idct_add: |
321 | cmp r0, #129 | 321 | cmp r0, #129 |
322 | mov r0, r1 | 322 | mov r0, r1 |
323 | ldreqsh r1, [r0, #0] | 323 | ldrsheq r1, [r0, #0] |
324 | bne 1f | 324 | bne 1f |
325 | and r1, r1, #0x70 | 325 | and r1, r1, #0x70 |
326 | cmp r1, #0x40 | 326 | cmp r1, #0x40 |
diff --git a/apps/plugins/mpegplayer/libmpeg2/idct_armv6.S b/apps/plugins/mpegplayer/libmpeg2/idct_armv6.S index dc53cbd7bd..a259721410 100644 --- a/apps/plugins/mpegplayer/libmpeg2/idct_armv6.S +++ b/apps/plugins/mpegplayer/libmpeg2/idct_armv6.S | |||
@@ -19,6 +19,7 @@ | |||
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | 21 | ||
22 | #include "config.h" | ||
22 | 23 | ||
23 | .global mpeg2_idct_copy | 24 | .global mpeg2_idct_copy |
24 | .type mpeg2_idct_copy, %function | 25 | .type mpeg2_idct_copy, %function |
@@ -228,7 +229,7 @@ mpeg2_idct_copy: | |||
228 | mpeg2_idct_add: | 229 | mpeg2_idct_add: |
229 | cmp r0, #129 | 230 | cmp r0, #129 |
230 | mov r0, r1 | 231 | mov r0, r1 |
231 | ldreqsh r1, [r0, #0] | 232 | ldrsheq r1, [r0, #0] |
232 | bne 1f | 233 | bne 1f |
233 | and r1, r1, #0x70 | 234 | and r1, r1, #0x70 |
234 | cmp r1, #0x40 | 235 | cmp r1, #0x40 |
@@ -260,7 +261,7 @@ mpeg2_idct_add: | |||
260 | strd r4, [r1] @ r4, r5 | 261 | strd r4, [r1] @ r4, r5 |
261 | add r1, r1, r2 | 262 | add r1, r1, r2 |
262 | cmp r0, r3 | 263 | cmp r0, r3 |
263 | ldrlod r8, [r1] @ r8, r9 | 264 | ldrdlo r8, [r1] @ r8, r9 |
264 | blo 2b | 265 | blo 2b |
265 | 266 | ||
266 | ldmfd sp!, {r4-r11, pc} | 267 | ldmfd sp!, {r4-r11, pc} |
@@ -291,7 +292,7 @@ mpeg2_idct_add: | |||
291 | strd r0, [r2] @ r0, r1 | 292 | strd r0, [r2] @ r0, r1 |
292 | add r2, r2, r3 | 293 | add r2, r2, r3 |
293 | cmp r2, r12 | 294 | cmp r2, r12 |
294 | ldrlod r0, [r2] @ r0, r1 | 295 | ldrdlo r0, [r2] @ r0, r1 |
295 | blo 4b | 296 | blo 4b |
296 | 297 | ||
297 | ldmfd sp!, {r4, pc} | 298 | ldmfd sp!, {r4, pc} |
diff --git a/apps/plugins/mpegplayer/mpeg_misc.h b/apps/plugins/mpegplayer/mpeg_misc.h index e04db0e19d..68ee8cac3c 100644 --- a/apps/plugins/mpegplayer/mpeg_misc.h +++ b/apps/plugins/mpegplayer/mpeg_misc.h | |||
@@ -53,12 +53,13 @@ enum state_enum | |||
53 | #define CMP_3_CONST(_a, _b) \ | 53 | #define CMP_3_CONST(_a, _b) \ |
54 | ({ int _x; \ | 54 | ({ int _x; \ |
55 | asm volatile ( \ | 55 | asm volatile ( \ |
56 | ".syntax unified \n" \ | ||
56 | "ldrb %[x], [%[a], #0] \n" \ | 57 | "ldrb %[x], [%[a], #0] \n" \ |
57 | "eors %[x], %[x], %[b0] \n" \ | 58 | "eors %[x], %[x], %[b0] \n" \ |
58 | "ldreqb %[x], [%[a], #1] \n" \ | 59 | "ldrbeq %[x], [%[a], #1] \n" \ |
59 | "eoreqs %[x], %[x], %[b1] \n" \ | 60 | "eorseq %[x], %[x], %[b1] \n" \ |
60 | "ldreqb %[x], [%[a], #2] \n" \ | 61 | "ldrbeq %[x], [%[a], #2] \n" \ |
61 | "eoreqs %[x], %[x], %[b2] \n" \ | 62 | "eorseq %[x], %[x], %[b2] \n" \ |
62 | : [x]"=&r"(_x) \ | 63 | : [x]"=&r"(_x) \ |
63 | : [a]"r"(_a), \ | 64 | : [a]"r"(_a), \ |
64 | [b0]"i"(((_b) >> 24) & 0xff), \ | 65 | [b0]"i"(((_b) >> 24) & 0xff), \ |
@@ -70,14 +71,15 @@ enum state_enum | |||
70 | #define CMP_4_CONST(_a, _b) \ | 71 | #define CMP_4_CONST(_a, _b) \ |
71 | ({ int _x; \ | 72 | ({ int _x; \ |
72 | asm volatile ( \ | 73 | asm volatile ( \ |
74 | ".syntax unified \n" \ | ||
73 | "ldrb %[x], [%[a], #0] \n" \ | 75 | "ldrb %[x], [%[a], #0] \n" \ |
74 | "eors %[x], %[x], %[b0] \n" \ | 76 | "eors %[x], %[x], %[b0] \n" \ |
75 | "ldreqb %[x], [%[a], #1] \n" \ | 77 | "ldrbeq %[x], [%[a], #1] \n" \ |
76 | "eoreqs %[x], %[x], %[b1] \n" \ | 78 | "eorseq %[x], %[x], %[b1] \n" \ |
77 | "ldreqb %[x], [%[a], #2] \n" \ | 79 | "ldrbeq %[x], [%[a], #2] \n" \ |
78 | "eoreqs %[x], %[x], %[b2] \n" \ | 80 | "eorseq %[x], %[x], %[b2] \n" \ |
79 | "ldreqb %[x], [%[a], #3] \n" \ | 81 | "ldrbeq %[x], [%[a], #3] \n" \ |
80 | "eoreqs %[x], %[x], %[b3] \n" \ | 82 | "eorseq %[x], %[x], %[b3] \n" \ |
81 | : [x]"=&r"(_x) \ | 83 | : [x]"=&r"(_x) \ |
82 | : [a]"r"(_a), \ | 84 | : [a]"r"(_a), \ |
83 | [b0]"i"(((_b) >> 24) & 0xff), \ | 85 | [b0]"i"(((_b) >> 24) & 0xff), \ |