comparison src/video/riscos/SDL_riscosASM.S @ 1459:1e8582152d44

Date: Wed, 01 Mar 2006 10:14:31 +0000 From: "alan buckley" Subject: Re: Updating SDL for RISC OS I've attached a zip file with three diffs to get SDL to build on RISC OS. configure.in.diff and makedeps.sh.diff have been modified so that they can build the assembler file in video/riscos. You may want to double check these as I don't know a lot about unix shell programming. (I've tested them cross-compiling on cygwin). sdlsysthread.diff is the changes required to SDL_systhread.c for RISC OS. As you suspected with these changes in place you can delete the RISC OS specific threading code in thread/riscos. I've also renamed SDL_riscosASM.s to SDL_riscosASM.S, but I'm never quite sure how to rename files in CVS, so if you could to this it would be appreciated.
author Sam Lantinga <slouken@libsdl.org>
date Thu, 02 Mar 2006 03:24:20 +0000
parents
children 99210400e8b9
comparison
equal deleted inserted replaced
1458:bf8db2d92be1 1459:1e8582152d44
1 ;
2 ; SDL - Simple DirectMedia Layer
3 ; Copyright (C) 1997-2004 Sam Lantinga
4 ;
5 ; This library is free software; you can redistribute it and/or
6 ; modify it under the terms of the GNU Library General Public
7 ; License as published by the Free Software Foundation; either
8 ; version 2 of the License, or (at your option) any later version.
9 ;
10 ; This library is distributed in the hope that it will be useful,
11 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 ; Library General Public License for more details.
14 ;
15 ; You should have received a copy of the GNU Library General Public
16 ; License along with this library; if not, write to the Free
17 ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 ;
19 ; Sam Lantinga
20 ; slouken@libsdl.org
21 ;
22 ; Assembler routines for RISC OS display
23 ;
24
25 AREA |C$$CODE|
26
27 EXPORT |RISCOS_Put32|
28
29 ; Display 32bpp to 32bpp, 1:1
30 ;
31 ; Code provided by Adrain Lees
32 ;
33 ; entry a1 -> destination
34 ; a2 = dest width in pixels
35 ; a3 = dest line length in bytes
36 ; a4 = dest height in scanlines
37 ; arg5 -> source
38 ; arg6 = byte offset from end of source line to start of next
39
40 Arg5 * 10*4
41 Arg6 * Arg5+4
42
43 RISCOS_Put32 ROUT
44 STMFD sp!,{a2,v1-v6,sl,fp,lr}
45 LDR ip,[sp,#Arg5]
46 MOV lr,a1
47 B ucp64lp
48
49 00 ;tail strip of 1-15 pixels
50
51 LDR v1,[ip],#4
52 01 SUBS a2,a2,#1
53 STR v1,[lr],#4
54 LDRHI v1,[ip],#4
55 BHI %01
56 B %02
57
58 ucp64end ADDS a2,a2,#16
59 BNE %00
60
61 02 SUBS a4,a4,#1 ;height--
62 LDRHI v1,[sp,#Arg6]
63 LDRHI a2,[sp] ;reload width
64 BLS %03
65
66 ;move to start of next scanline
67
68 ADD lr,a1,a3
69 ADD a1,a1,a3
70 ADD ip,ip,v1
71
72 ucp64lp SUBS a2,a2,#16
73 BLO ucp64end
74
75 PLD [ip,#64]
76
77 LDR v1,[ip],#4
78 LDR v2,[ip],#4
79 LDR v3,[ip],#4
80 LDR v4,[ip],#4
81 LDR v5,[ip],#4
82 LDR v6,[ip],#4
83 LDR sl,[ip],#4
84 LDR fp,[ip],#4
85 STR v1,[lr],#4
86 STR v2,[lr],#4
87 STR v3,[lr],#4
88 STR v4,[lr],#4
89 STR v5,[lr],#4
90 STR v6,[lr],#4
91 STR sl,[lr],#4
92 STR fp,[lr],#4
93
94 PLD [ip,#64]
95
96 LDR v1,[ip],#4
97 LDR v2,[ip],#4
98 LDR v3,[ip],#4
99 LDR v4,[ip],#4
100 LDR v5,[ip],#4
101 LDR v6,[ip],#4
102 LDR sl,[ip],#4
103 LDR fp,[ip],#4
104 STR v1,[lr],#4
105 STR v2,[lr],#4
106 STR v3,[lr],#4
107 STR v4,[lr],#4
108 STR v5,[lr],#4
109 STR v6,[lr],#4
110 STR sl,[lr],#4
111 STR fp,[lr],#4
112
113 B ucp64lp
114
115 03 LDMFD sp!,{a2,v1-v6,sl,fp,pc}
116