[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