diff options
author | Jens Arnold <amiconn@rockbox.org> | 2009-07-11 23:43:44 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2009-07-11 23:43:44 +0000 |
commit | 47d4c4739bafcb9864dc8d1c2b44903ad4f75b68 (patch) | |
tree | 7a9f510c72a0df2ddacb0f6ec393658cf676b8d4 /firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S | |
parent | fa59ed6ae724b3f75c8ba35efcf7ce18f21e3ed2 (diff) | |
download | rockbox-47d4c4739bafcb9864dc8d1c2b44903ad4f75b68.tar.gz rockbox-47d4c4739bafcb9864dc8d1c2b44903ad4f75b68.zip |
ARM asm LCD and ATA driver functions: Don't save r12 as it is a scratch reg. Saves a bit of stack and execution time.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21795 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S')
-rw-r--r-- | firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S b/firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S index 8f3d12e727..74327dddaf 100644 --- a/firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S +++ b/firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S | |||
@@ -49,7 +49,7 @@ lcd_write_yuv420_lines: | |||
49 | @ r0 = yuv_src | 49 | @ r0 = yuv_src |
50 | @ r1 = width | 50 | @ r1 = width |
51 | @ r2 = stride | 51 | @ r2 = stride |
52 | stmfd sp!, { r4-r12, lr } @ save non-scratch | 52 | stmfd sp!, { r4-r11, lr } @ save non-scratch |
53 | ldmia r0, { r4, r5, r6 } @ r4 = yuv_src[0] = Y'_p | 53 | ldmia r0, { r4, r5, r6 } @ r4 = yuv_src[0] = Y'_p |
54 | @ r5 = yuv_src[1] = Cb_p | 54 | @ r5 = yuv_src[1] = Cb_p |
55 | @ r6 = yuv_src[2] = Cr_p | 55 | @ r6 = yuv_src[2] = Cr_p |
@@ -248,7 +248,7 @@ lcd_write_yuv420_lines: | |||
248 | subs r1, r1, #2 @ subtract block from width | 248 | subs r1, r1, #2 @ subtract block from width |
249 | bgt 10b @ loop line @ | 249 | bgt 10b @ loop line @ |
250 | @ | 250 | @ |
251 | ldmfd sp!, { r4-r12, pc } @ restore registers and return | 251 | ldmfd sp!, { r4-r11, pc } @ restore registers and return |
252 | .ltorg @ dump constant pool | 252 | .ltorg @ dump constant pool |
253 | .size lcd_write_yuv420_lines, .-lcd_write_yuv420_lines | 253 | .size lcd_write_yuv420_lines, .-lcd_write_yuv420_lines |
254 | 254 | ||
@@ -289,7 +289,7 @@ lcd_write_yuv420_lines_odither: | |||
289 | @ r2 = stride | 289 | @ r2 = stride |
290 | @ r3 = x_screen | 290 | @ r3 = x_screen |
291 | @ [sp] = y_screen | 291 | @ [sp] = y_screen |
292 | stmfd sp!, { r4-r12, lr } @ save non-scratch | 292 | stmfd sp!, { r4-r11, lr } @ save non-scratch |
293 | ldmia r0, { r4, r5, r6 } @ r4 = yuv_src[0] = Y'_p | 293 | ldmia r0, { r4, r5, r6 } @ r4 = yuv_src[0] = Y'_p |
294 | @ r5 = yuv_src[1] = Cb_p | 294 | @ r5 = yuv_src[1] = Cb_p |
295 | @ r6 = yuv_src[2] = Cr_p | 295 | @ r6 = yuv_src[2] = Cr_p |
@@ -565,6 +565,6 @@ lcd_write_yuv420_lines_odither: | |||
565 | subs r1, r1, #2 @ subtract block from width | 565 | subs r1, r1, #2 @ subtract block from width |
566 | bgt 10b @ loop line @ | 566 | bgt 10b @ loop line @ |
567 | @ | 567 | @ |
568 | ldmfd sp!, { r4-r12, pc } @ restore registers and return | 568 | ldmfd sp!, { r4-r11, pc } @ restore registers and return |
569 | .ltorg @ dump constant pool | 569 | .ltorg @ dump constant pool |
570 | .size lcd_write_yuv420_lines_odither, .-lcd_write_yuv420_lines_odither | 570 | .size lcd_write_yuv420_lines_odither, .-lcd_write_yuv420_lines_odither |