[Scummvm-cvs-logs] SF.net SVN: scummvm: [29802] scummvm/trunk/backends/platform/ds/arm9/source /blitters_arm.s
Tramboi at users.sourceforge.net
Tramboi at users.sourceforge.net
Sun Dec 9 20:32:36 CET 2007
Revision: 29802
http://scummvm.svn.sourceforge.net/scummvm/?rev=29802&view=rev
Author: Tramboi
Date: 2007-12-09 11:32:35 -0800 (Sun, 09 Dec 2007)
Log Message:
-----------
NDS : Unrolled the scaler inner loop twice to do 16bits loading
Modified Paths:
--------------
scummvm/trunk/backends/platform/ds/arm9/source/blitters_arm.s
Modified: scummvm/trunk/backends/platform/ds/arm9/source/blitters_arm.s
===================================================================
--- scummvm/trunk/backends/platform/ds/arm9/source/blitters_arm.s 2007-12-09 18:52:57 UTC (rev 29801)
+++ scummvm/trunk/backends/platform/ds/arm9/source/blitters_arm.s 2007-12-09 19:32:35 UTC (rev 29802)
@@ -280,13 +280,15 @@
MOV r5,#200 @ r5 = y
yLoop4:
- MOV r4,#64 @ r4 = x
+ MOV r4,#32 @ r4 = x
xLoop4:
- LDRB r9, [r1],#1 @ r9 = src0
- LDRB r10,[r1],#1 @ r10= src1
- LDRB r11,[r1],#1 @ r11= src2
- LDRB r12,[r1],#1 @ r12= src3
- LDRB r14,[r1],#1 @ r14= src4
+ LDRH r9, [r1],#2
+ MOV r10, r9, LSR #8
+ AND r9, r9, #0xFF
+ LDRH r11,[r1],#2
+ MOV r12, r11, LSR #8
+ AND r11, r11, #0xFF
+ LDRB r14,[r1],#1
LDR r9, [r13,r9, LSL #2] @ r9 = pal[src0]
LDR r10,[r13,r10,LSL #2] @ r10= pal[src1]
@@ -317,6 +319,43 @@
ORR r11,r12,r11,LSR #16
STMIA r0!,{r9,r11}
+ LDRB r9, [r1],#1
+ LDRH r10,[r1],#2
+ MOV r11, r10, LSR #8
+ AND r10, r10, #0xFF
+ LDRH r12,[r1],#2
+ MOV r14, r12, LSR #8
+ AND r12, r12, #0xFF
+
+ LDR r9, [r13,r9, LSL #2] @ r9 = pal[src0]
+ LDR r10,[r13,r10,LSL #2] @ r10= pal[src1]
+ LDR r11,[r13,r11,LSL #2] @ r11= pal[src2]
+ LDR r12,[r13,r12,LSL #2] @ r12= pal[src3]
+ LDR r14,[r13,r14,LSL #2] @ r13= pal[src4]
+
+ ADD r9, r9, r9, LSL #1 @ r9 = 3*src0
+ ADD r9, r9, r10 @ r9 = dst0<<2
+ ADD r10,r10,r11 @ r10= dst1
+ ADD r11,r11,r12 @ r11= dst2
+ ADD r12,r12,r14 @ r12= src3 + src4
+ ADD r12,r12,r14,LSL #1 @ r12= src3 + src4*3 = dst3<<2
+
+ AND r9, r8, r9, LSR #2 @ r9 = dst0 (split)
+ AND r10,r8, r10,LSR #1 @ r10= dst1 (split)
+ AND r11,r8, r11,LSR #1 @ r11= dst2 (split)
+ AND r12,r8, r12,LSR #2 @ r12= dst3 (split)
+
+ ORR r9, r9, r9, ROR #16 @ r9 = dst0
+ ORR r10,r10,r10,ROR #16 @ r10= dst1
+ ORR r11,r11,r11,ROR #16 @ r11= dst2
+ ORR r12,r12,r12,ROR #16 @ r12= dst3
+
+ MOV r10,r10,LSL #16
+ ORR r9, r10,r9, LSR #16
+ MOV r12,r12,LSL #16
+ ORR r11,r12,r11,LSR #16
+ STMIA r0!,{r9,r11}
+
SUBS r4,r4,#1
BGT xLoop4
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list