Mercurial > sdl-ios-xcode
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 |