Magellan Linux

Contents of /trunk/xorg-old/patches-6.8.2-r10/9962_all_text-relocations-BUSmemcpy.S.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 167 - (show annotations) (download)
Tue May 8 20:58:51 2007 UTC (17 years ago) by niro
File size: 3897 byte(s)
-import

1 --- xc-orig/programs/Xserver/hw/xfree86/os-support/misc/BUSmemcpy.S.orig 1999-07-10 03:24:49.000000000 -0400
2 +++ xc/programs/Xserver/hw/xfree86/os-support/misc/BUSmemcpy.S 2003-12-03 02:08:01.000000000 -0500
3 @@ -39,118 +39,114 @@
4
5 #include "assyntax.h"
6
7 - FILE("BUSmemcpy.s")
8 + FILE("BUSmemcpy.s")
9
10 - AS_BEGIN
11 + AS_BEGIN
12
13 /* BusToMem copies from video memory to main memory
14 MemToBus copies from main memory to video memory
15
16 - void xf86BusToMem(unsigned char *dst, unsigned char *src, int len);
17 - void xf86MemToBus(unsigned char *dst, unsigned char *src, int len);
18 + void xf86BusToMem(unsigned char *dst, unsigned char *src, int len);
19 + void xf86MemToBus(unsigned char *dst, unsigned char *src, int len);
20 */
21
22 #define dst REGOFF(4,ESP)
23 #define src REGOFF(8,ESP)
24 #define len REGOFF(12,ESP)
25
26 - GLOBL GLNAME(xf86BusToMem)
27 - GLOBL GLNAME(xf86MemToBus)
28 + GLOBL GLNAME(xf86BusToMem)
29 + GLOBL GLNAME(xf86MemToBus)
30
31 - SEG_DATA
32 + SEG_DATA
33 copyright:
34 - STRING("Copyright 8/9/1993 by Glenn G. Lai")
35 + STRING("Copyright 8/9/1993 by Glenn G. Lai")
36
37 - ALIGNDATA4
38 -tmp: D_LONG 0
39 -
40 - SEG_TEXT
41 - ALIGNTEXT4
42 + SEG_TEXT
43 + ALIGNTEXT4
44 GLNAME(xf86BusToMem):
45 - CLD
46 - MOV_L (ESI, CONTENT(tmp))
47 - MOV_L (EDI, EDX)
48 -
49 - MOV_L (src, ESI)
50 - MOV_L (dst, EDI)
51 - MOV_L (len, ECX)
52 -
53 - CMP_L (CONST(7), ECX)
54 - JC (quickBM)
55 -
56 - TEST_L (CONST(1), ESI)
57 - JZ (BwM)
58 -
59 - MOVS_B
60 - DEC_L (ECX)
61 -
62 -BwM:
63 - TEST_L (CONST(2), ESI)
64 - JZ (BlM)
65 -
66 - MOVS_W
67 - DEC_L (ECX)
68 - DEC_L (ECX)
69 + CLD
70 + PUSH_L (ESI)
71 + MOV_L (EDI, EDX)
72 +
73 + MOV_L (src, ESI)
74 + MOV_L (dst, EDI)
75 + MOV_L (len, ECX)
76 +
77 + CMP_L (CONST(7), ECX)
78 + JC (quickBM)
79 +
80 + TEST_L (CONST(1), ESI)
81 + JZ (BwM)
82 +
83 + MOVS_B
84 + DEC_L (ECX)
85 +
86 +BwM:
87 + TEST_L (CONST(2), ESI)
88 + JZ (BlM)
89 +
90 + MOVS_W
91 + DEC_L (ECX)
92 + DEC_L (ECX)
93
94 BlM:
95 - MOV_L (ECX, EAX)
96 - AND_L (CONST(3), EAX)
97 - SHR_L (CONST(2), ECX)
98 - REP
99 - MOVS_L
100 - MOV_L (EAX, ECX)
101 + MOV_L (ECX, EAX)
102 + AND_L (CONST(3), EAX)
103 + SHR_L (CONST(2), ECX)
104 + REP
105 + MOVS_L
106 + MOV_L (EAX, ECX)
107 quickBM:
108 - OR_L (ECX, ECX)
109 - JZ (return)
110 - REP
111 - MOVS_B
112 + OR_L (ECX, ECX)
113 + JZ (return)
114 + REP
115 + MOVS_B
116 return:
117 - MOV_L (CONTENT(tmp), ESI)
118 - MOV_L (EDX, EDI)
119 - RET
120 + POP_L (ESI)
121 + MOV_L (EDX, EDI)
122 + RET
123 /************************/
124
125 - ALIGNTEXT4
126 + ALIGNTEXT4
127 GLNAME(xf86MemToBus):
128 - CLD
129 - MOV_L (ESI, CONTENT(tmp))
130 - MOV_L (EDI, EDX)
131 -
132 - MOV_L (src, ESI)
133 - MOV_L (dst, EDI)
134 - MOV_L (len, ECX)
135 -
136 - CMP_L (CONST(7), ECX)
137 - JC (quickMB)
138 -
139 - TEST_L (CONST(1), EDI)
140 - JZ (MwB)
141 -
142 - MOVS_B
143 - DEC_L (ECX)
144 -
145 -MwB:
146 - TEST_L (CONST(2), EDI)
147 - JZ (MlB)
148 -
149 - MOVS_W
150 - DEC_L (ECX)
151 - DEC_L (ECX)
152 + CLD
153 + PUSH_L (ESI)
154 + MOV_L (EDI, EDX)
155 +
156 + MOV_L (src, ESI)
157 + MOV_L (dst, EDI)
158 + MOV_L (len, ECX)
159 +
160 + CMP_L (CONST(7), ECX)
161 + JC (quickMB)
162 +
163 + TEST_L (CONST(1), EDI)
164 + JZ (MwB)
165 +
166 + MOVS_B
167 + DEC_L (ECX)
168 +
169 +MwB:
170 + TEST_L (CONST(2), EDI)
171 + JZ (MlB)
172 +
173 + MOVS_W
174 + DEC_L (ECX)
175 + DEC_L (ECX)
176
177 MlB:
178 - MOV_L (ECX, EAX)
179 - AND_L (CONST(3), EAX)
180 - SHR_L (CONST(2), ECX)
181 - REP
182 - MOVS_L
183 - MOV_L (EAX, ECX)
184 + MOV_L (ECX, EAX)
185 + AND_L (CONST(3), EAX)
186 + SHR_L (CONST(2), ECX)
187 + REP
188 + MOVS_L
189 + MOV_L (EAX, ECX)
190 quickMB:
191 - OR_L (ECX, ECX)
192 - JZ (return)
193 - REP
194 - MOVS_B
195 -
196 - MOV_L (CONTENT(tmp), ESI)
197 - MOV_L (EDX, EDI)
198 - RET
199 -
200 + OR_L (ECX, ECX)
201 + JZ (return)
202 + REP
203 + MOVS_B
204 +
205 + POP_L (ESI)
206 + MOV_L (EDX, EDI)
207 + RET