[Scummvm-cvs-logs] SF.net SVN: scummvm:[35156] scummvm/trunk/backends/platform/ds/arm9/source/ blitters.s

robinwatts at users.sourceforge.net robinwatts at users.sourceforge.net
Sun Nov 23 12:14:03 CET 2008


Revision: 35156
          http://scummvm.svn.sourceforge.net/scummvm/?rev=35156&view=rev
Author:   robinwatts
Date:     2008-11-23 11:14:02 +0000 (Sun, 23 Nov 2008)

Log Message:
-----------
Remove NDS blitters.s, as it's unused - we now have blitters_arm.s instead.

Removed Paths:
-------------
    scummvm/trunk/backends/platform/ds/arm9/source/blitters.s

Deleted: scummvm/trunk/backends/platform/ds/arm9/source/blitters.s
===================================================================
--- scummvm/trunk/backends/platform/ds/arm9/source/blitters.s	2008-11-23 03:42:01 UTC (rev 35155)
+++ scummvm/trunk/backends/platform/ds/arm9/source/blitters.s	2008-11-23 11:14:02 UTC (rev 35156)
@@ -1,339 +0,0 @@
-@ ScummVM Scumm Interpreter
-@ Copyright (C) 2007 The ScummVM project
-@
-@ This program is free software@ you can redistribute it and/or
-@ modify it under the terms of the GNU General Public License
-@ as published by the Free Software Foundation@ either version 2
-@ of the License, or (at your option) any later version.
-@
-@ This program is distributed in the hope that it will be useful,
-@ but WITHOUT ANY WARRANTY; without even the implied warranty of
-@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-@ GNU General Public License for more details.
-@
-@ You should have received a copy of the GNU General Public License
-@ along with this program@ if not, write to the Free Software
-@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-@
-@ $URL:  $
-@ $Id:  $
-@
-@ @author Robin Watts (robin at wss.co.uk)
-
-	.text
-	
-	.global	asmDrawStripToScreen
-	.global	asmCopy8Col
-	.global	Rescale_320x256xPAL8_To_256x256x1555
-	.global	Rescale_320x256x1555_To_256x256x1555
-
-	@ ARM implementation of asmDrawStripToScreen.
-	@
-	@ C prototype would be:
-	@
-	@ extern "C" void asmDrawStripToScreen(int         height,
-	@                                      int         width,
-	@                                      byte const *text,
-	@                                      byte const *src,
-	@                                      byte       *dst,
-	@                                      int         vsPitch,
-	@                                      int         vsScreenWidth,
-	@                                      int         textSurfacePitch);
-	@
-	@ In addition, we assume that text, src and dst are all word (4 byte)
-	@ aligned. This is the same assumption that the old 'inline' version
-	@ made.
-asmDrawStripToScreen:
-	@ r0 = height
-	@ r1 = width
-	@ r2 = text
-	@ r3 = src
-	MOV	r12,r13
-	STMFD	r13!,{r4-r7,r9-r11,R14}
-	LDMIA	r12,{r4,r5,r6,r7}
-	@ r4 = dst
-	@ r5 = vsPitch
-	@ r6 = vmScreenWidth
-	@ r7 = textSurfacePitch
-
-	CMP	r0,#0			@ If height<=0
-	MOVLE	r0,#1			@    height=1
-	CMP	r1,#4			@ If width<4
-	BLT	end			@    return
-
-	@ Width &= ~4 ? What's that about then? Width &= ~3 I could have
-	@ understood...
-	BIC	r1,r1,#4
-
-	SUB	r5,r5,r1		@ vsPitch          -= width
-	SUB	r6,r6,r1		@ vmScreenWidth    -= width
-	SUB	r7,r7,r1		@ textSurfacePitch -= width
-	MOV	r10,#253
-	ORR	r10,r10,r10,LSL #8
-	ORR	r10,r10,r10,LSL #16	@ r10 = mask
-yLoop:
-	MOV	r14,r1			@ r14 = width
-xLoop:
-	LDR	r12,[r2],#4		@ r12 = [text]
-	LDR	r11,[r3],#4		@ r11 = [src]
-	CMP	r12,r10
-	BNE	singleByteCompare
-	SUBS	r14,r14,#4
-	STR	r11,[r4], #4		@ r4 = [dst]
-	BGT	xLoop
-
-	ADD	r2,r2,r7		@ text += textSurfacePitch
-	ADD	r3,r3,r5		@ src  += vsPitch
-	ADD	r4,r4,r6		@ dst  += vmScreenWidth
-	SUBS	r0,r0,#1
-	BGT	yLoop
-	LDMFD	r13!,{r4-r7,r9-r11,PC}
-
-singleByteCompare:
-	MOV	r9,r12,LSR #24		@ r9 = 1st byte of [text]
-	CMP	r9,r10,LSR #24		@ if (r9 == mask)
-	MOVEQ	r9,r11,LSR #24		@     r9 = 1st byte of [src]
-	ORR	r12,r9,r12,LSL #8	@ r12 = combine r9 and r12
-
-	MOV	r9,r12,LSR #24		@ r9 = 1st byte of [text]
-	CMP	r9,r10,LSR #24		@ if (r9 == mask)
-	MOVEQ	r9,r11,LSR #24		@     r9 = 1st byte of [src]
-	ORR	r12,r9,r12,LSL #8	@ r12 = combine r9 and r12
-
-	MOV	r9,r12,LSR #24		@ r9 = 1st byte of [text]
-	CMP	r9,r10,LSR #24		@ if (r9 == mask)
-	MOVEQ	r9,r11,LSR #24		@     r9 = 1st byte of [src]
-	ORR	r12,r9,r12,LSL #8	@ r12 = combine r9 and r12
-
-	MOV	r9,r12,LSR #24		@ r9 = 1st byte of [text]
-	CMP	r9,r10,LSR #24		@ if (r9 == mask)
-	MOVEQ	r9,r11,LSR #24		@     r9 = 1st byte of [src]
-	ORR	r12,r9,r12,LSL #8	@ r12 = combine r9 and r12
-
-	STR	r12,[r4],#4
-	SUBS	r14,r14,#4
-	BGT	xLoop
-
-	ADD	r2,r2,r7		@ text += textSurfacePitch
-	ADD	r3,r3,r5		@ src  += vsPitch
-	ADD	r4,r4,r6		@ dst  += vmScreenWidth
-	SUBS	r0,r0,#1
-	BGT	yLoop
-end:
-	LDMFD	r13!,{r4-r7,r9-r11,PC}
-
-
-	@ ARM implementation of asmCopy8Col
-	@
-	@ C prototype would be:
-	@
-	@ extern "C" void asmCopy8Col(byte       *dst,
-	@                             int         dstPitch,
-	@                             const byte *src,
-	@                             int         height);
-	@
-	@ In addition, we assume that src and dst are both word (4 byte)
-	@ aligned. This is the same assumption that the old 'inline' version
-	@ made.
-asmCopy8Col:
-	@ r0 = dst
-	@ r1 = dstPitch
-	@ r2 = src
-	@ r3 = height
-	STMFD	r13!,{r14}
-	SUB	r1,r1,#4
-	
-	TST	r3,#1
-	ADDNE   r3,r3,#1
-	BNE	roll2
-yLoop2:
-	LDR	r12,[r2],#4
-	LDR	r14,[r2],r1
-	STR	r12,[r0],#4
-	STR	r14,[r0],r1
-roll2:
-	LDR	r12,[r2],#4
-	LDR	r14,[r2],r1
-	SUBS	r3,r3,#2
-	STR	r12,[r0],#4
-	STR	r14,[r0],r1
-	BNE	yLoop2
-
-	LDMFD	r13!,{PC}
-
-
-	@ ARM implementation of Rescale_320x256x1555_To_256x256x1555
-	@
-	@ C prototype would be:
-	@
-	@ extern "C" void Rescale_320x256x1555_To_256x256x1555(
-	@                                      u16        *dst,
-	@                                      const u16  *src,
-	@                                      int         dstStride,
-	@                                      int         srcStride);
-Rescale_320x256x1555_To_256x256x1555:
-	@ r0 = dst
-	@ r1 = src
-	@ r2 = dstStride
-	@ r3 = srcStride
-	STMFD	r13!,{r4-r5,r8-r11,r14}
-	
-	SUB	r2,r2,#64*5		@ srcStride -= line length
-	SUB	r3,r3,#64*4		@ dstStride -= line length
-
-	MOV	r8,    #0x0000001F
-	ORR	r8, r8,#0x00007C00
-	ORR	r8, r8,#0x03E00000	@ r8 = mask
-	MOV	r5, #200		@ r5 = y
-yLoop3:
-	MOV	r4, #64			@ r4 = x
-xLoop3:	
-	LDRH	r9, [r0],#2		@ r9 = src0
-	LDRH	r10,[r0],#2		@ r10= src1
-	LDRH	r11,[r0],#2		@ r11= src2
-	LDRH	r12,[r0],#2		@ r12= src3
-	LDRH	r14,[r0],#2		@ r14= src4
-
-	ORR	r9, r9, r9, LSL #16	@ r9 = src0 | src0
-	ORR	r10,r10,r10,LSL #16	@ r10= src1 | src1
-	ORR	r11,r11,r11,LSL #16	@ r11= src2 | src2
-	ORR	r12,r12,r12,LSL #16	@ r12= src3 | src3
-	ORR	r14,r14,r14,LSL #16	@ r13= src4 | src4
-
-	AND	r9, r9, r8		@ r9 = 0 | G0 | 0 | B0 | 0 | R0
-	AND	r10,r10,r8		@ r10= 0 | G1 | 0 | B1 | 0 | R1
-	AND	r11,r11,r8		@ r11= 0 | G2 | 0 | B2 | 0 | R2
-	AND	r12,r12,r8		@ r12= 0 | G3 | 0 | B3 | 0 | R3
-	AND	r14,r14,r8		@ r14= 0 | G4 | 0 | B4 | 0 | R4
-
-	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, LSR #16	@ r9 = dst0
-	ORR	r10,r10,r10,LSR #16	@ r10= dst1
-	ORR	r11,r11,r11,LSR #16	@ r11= dst2
-	ORR	r12,r12,r12,LSR #16	@ r12= dst3
-
-	ORR	r9, r9, #0x8000
-	ORR	r10,r10,#0x8000
-	ORR	r11,r11,#0x8000
-	ORR	r12,r12,#0x8000
-	
-	STRH	r9, [r1],#2
-	STRH	r10,[r1],#2
-	STRH	r11,[r1],#2
-	STRH	r12,[r1],#2
-
-	SUBS	r4,r4,#1
-	BGT	xLoop3
-	
-	ADD	r0,r0,r2,LSL #1
-	ADD	r1,r2,r3,LSL #1
-	SUBS	r5,r5,#1
-	BGT	yLoop3
-
-	LDMFD	r13!,{r4-r5,r8-r11,PC}
-
-	@ ARM implementation of Rescale_320x256xPAL8_To_256x256x1555
-	@
-	@ C prototype would be:
-	@
-	@ extern "C" void Rescale_320x256xPAL8_To_256x256x1555(
-	@                                      u16        *dst,
-	@                                      const u8   *src,
-	@                                      int         dstStride,
-	@                                      int         srcStride,
-	@                                      const u16  *pal);
-	@
-	@ This is a slight reordering of the params from the existing C one.
-	@ Sorry, but it makes the code easier.
-Rescale_320x256xPAL8_To_256x256x1555:
-	@ r0 = dst
-	@ r1 = src
-	@ r2 = dstStride
-	@ r3 = srcStride
-	STMFD	r13!,{r4-r5,r8-r11,r14}
-	MOV	r8,    #0x0000001F
-	ORR	r8, r8,#0x00007C00
-	ORR	r8, r8,#0x03E00000	@ r8 = mask
-	LDR	r9, [r13,#7*4]		@ r9 = palette
-	
-	SUB	r13,r13,#256*4		@ r13 = 1K of space on the stack.
-	MOV	r5, r13			@ r5 points to this space
-	MOV	r14,#256
-palLoop:
-	LDRH	r10,[r9],#2		@ r10 = palette entry
-	SUBS	r14,r14,#1
-	ORR	r10,r10,r10,LSL #16
-	AND	r10,r10,r8		@ r10 = separated palette entry
-	STR	r10,[r5], #4
-	BGT	palLoop
-	
-	SUB	r2,r2,#64*5		@ srcStride -= line length
-	SUB	r3,r3,#64*4		@ dstStride -= line length
-
-	MOV	r5,#200			@ r5 = y
-yLoop4:
-	MOV	r4,#64			@ r4 = x
-xLoop4:	
-	LDRB	r9, [r0],#1		@ r9 = src0
-	LDRB	r10,[r0],#1		@ r10= src1
-	LDRB	r11,[r0],#1		@ r11= src2
-	LDRB	r12,[r0],#1		@ r12= src3
-	LDRB	r14,[r0],#1		@ r14= src4
-
-	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, LSR #16	@ r9 = dst0
-	ORR	r10,r10,r10,LSR #16	@ r10= dst1
-	ORR	r11,r11,r11,LSR #16	@ r11= dst2
-	ORR	r12,r12,r12,LSR #16	@ r12= dst3
-
-	ORR	r9, r9, #0x8000
-	ORR	r10,r10,#0x8000
-	ORR	r11,r11,#0x8000
-	ORR	r12,r12,#0x8000
-	
-	STRH	r9, [r1],#2
-	STRH	r10,[r1],#2
-	STRH	r11,[r1],#2
-	STRH	r12,[r1],#2
-
-	SUBS	r4,r4,#1
-	BGT	xLoop4
-	
-	ADD	r0,r0,r2
-	ADD	r1,r2,r3,LSL #1
-	SUBS	r5,r5,#1
-	BGT	yLoop4
-
-	ADD	r13,r13,#256*4
-
-	LDMFD	r13!,{r4-r5,r8-r11,PC}
-
- 	  	 


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