summaryrefslogtreecommitdiff
path: root/firmware/target/arm/pcm-telechips.c
diff options
context:
space:
mode:
authorChris Chua <someone42@gmail.com>2023-03-19 06:22:08 +1100
committerAidan MacDonald <amachronic@protonmail.com>2023-03-23 13:28:22 -0400
commit86429dbf1eca8ee0e08176997f508647c3abf6bd (patch)
tree4d35e56e338a326d1a04c8d1f620821fa7909678 /firmware/target/arm/pcm-telechips.c
parenta64cad847e7d24dc4d01d5ab22f6c8dc42f960ae (diff)
downloadrockbox-86429dbf1eca8ee0e08176997f508647c3abf6bd.tar.gz
rockbox-86429dbf1eca8ee0e08176997f508647c3abf6bd.zip
Using ARM Unified Assembler Language
Change-Id: Iae32a8ba8eff6087330e458fafc912a12fee4509
Diffstat (limited to 'firmware/target/arm/pcm-telechips.c')
-rw-r--r--firmware/target/arm/pcm-telechips.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/firmware/target/arm/pcm-telechips.c b/firmware/target/arm/pcm-telechips.c
index 336b5626ca..747765d8fb 100644
--- a/firmware/target/arm/pcm-telechips.c
+++ b/firmware/target/arm/pcm-telechips.c
@@ -218,6 +218,7 @@ void fiq_handler(void)
218 * r0-r3 and r12 is a working register. 218 * r0-r3 and r12 is a working register.
219 */ 219 */
220 asm volatile ( 220 asm volatile (
221 ".syntax unified \n"
221 "sub lr, lr, #4 \n" 222 "sub lr, lr, #4 \n"
222 "stmfd sp!, { r0-r3, lr } \n" /* stack scratch regs and lr */ 223 "stmfd sp!, { r0-r3, lr } \n" /* stack scratch regs and lr */
223 "mov r14, #0 \n" /* Was the callback called? */ 224 "mov r14, #0 \n" /* Was the callback called? */
@@ -251,7 +252,7 @@ void fiq_handler(void)
251 "stmia r11, { r8-r9 } \n" /* save p and size */ 252 "stmia r11, { r8-r9 } \n" /* save p and size */
252 253
253 "cmp r14, #0 \n" /* Callback called? */ 254 "cmp r14, #0 \n" /* Callback called? */
254 "ldmeqfd sp!, { r0-r3, pc }^ \n" /* no? -> exit */ 255 "ldmfdeq sp!, { r0-r3, pc }^ \n" /* no? -> exit */
255 256
256 "ldr r1, =pcm_play_status_callback \n" 257 "ldr r1, =pcm_play_status_callback \n"
257 "ldr r1, [r1] \n" 258 "ldr r1, [r1] \n"
@@ -268,7 +269,7 @@ void fiq_handler(void)
268 "mov lr, pc \n" 269 "mov lr, pc \n"
269 "ldr pc, =pcm_play_dma_complete_callback \n" 270 "ldr pc, =pcm_play_dma_complete_callback \n"
270 "cmp r0, #0 \n" /* any more to play? */ 271 "cmp r0, #0 \n" /* any more to play? */
271 "ldmneia r11, { r8-r9 } \n" /* load new p and size */ 272 "ldmiane r11, { r8-r9 } \n" /* load new p and size */
272 "cmpne r9, #0x0f \n" /* did we actually get enough data? */ 273 "cmpne r9, #0x0f \n" /* did we actually get enough data? */
273 "bhi .fill_fifo \n" /* not stop and enough? refill */ 274 "bhi .fill_fifo \n" /* not stop and enough? refill */
274 "ldmfd sp!, { r0-r3, pc }^ \n" /* exit */ 275 "ldmfd sp!, { r0-r3, pc }^ \n" /* exit */