source: branches/libc-0.6/testcase/631asm.asm@ 2528

Last change on this file since 2528 was 675, checked in by bird, 22 years ago

More stuff.

  • Property cvs2svn:cvs-rev set to 1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 6.5 KB
Line 
1 title 631asmc.c
2 .386
3 .387
4CODE32 segment para use32 public 'CODE'
5CODE32 ends
6DATA32 segment para use32 public 'DATA'
7DATA32 ends
8CONST32_RO segment para use32 public 'CONST'
9CONST32_RO ends
10BSS32 segment para use32 public 'BSS'
11BSS32 ends
12DGROUP group BSS32, DATA32
13 assume cs:FLAT, ds:FLAT, ss:FLAT, es:FLAT
14CODE32 segment
15
16; 107 struct ret16bytes __stdcall asmfoostd16(void)
17 align 010h
18
19 public _asmfoostd16@0
20_asmfoostd16@0 proc
21 push ebp
22 mov ebp,esp
23
24; 110 return ret;
25 mov eax,[ebp+08h]; @CBE10
26
27; 109 struct ret16bytes ret = {1,2,3,4};
28 mov dword ptr [ebp-010h],01h; ret
29 mov dword ptr [ebp-0ch],02h; ret
30
31; 110 return ret;
32 mov ecx,[ebp-010h]; ret
33 mov edx,[ebp-0ch]; ret
34 mov [eax],ecx
35
36; 109 struct ret16bytes ret = {1,2,3,4};
37 mov dword ptr [ebp-08h],03h; ret
38
39; 110 return ret;
40 mov [eax+04h],edx
41 mov edx,[ebp-08h]; ret
42
43; 109 struct ret16bytes ret = {1,2,3,4};
44 mov dword ptr [ebp-04h],04h; ret
45
46; 110 return ret;
47 mov ecx,[ebp-04h]; ret
48 mov [eax+08h],edx
49 mov [eax+0ch],ecx
50 pop ebp
51 ret 04h
52_asmfoostd16@0 endp
53
54; 101 struct ret12bytes __stdcall asmfoostd12(void)
55 align 010h
56
57 public _asmfoostd12@0
58_asmfoostd12@0 proc
59
60; 104 return ret;
61 mov eax,[esp+04h]; @CBE9
62
63; 103 struct ret12bytes ret = {1,2,3};
64 mov dword ptr [esp-0ch],01h; ret
65 mov dword ptr [esp-08h],02h; ret
66
67; 104 return ret;
68 mov edx,[esp-0ch]; ret
69 mov ecx,[esp-08h]; ret
70 mov [eax],edx
71
72; 103 struct ret12bytes ret = {1,2,3};
73 mov dword ptr [esp-04h],03h; ret
74
75; 104 return ret;
76 mov [eax+04h],ecx
77 mov ecx,[esp-04h]; ret
78 mov [eax+08h],ecx
79 ret 04h
80_asmfoostd12@0 endp
81
82; 95 struct ret8bytes __stdcall asmfoostd8(void)
83 align 010h
84
85 public _asmfoostd8@0
86_asmfoostd8@0 proc
87
88; 97 struct ret8bytes ret = {1,2};
89 mov dword ptr [esp-08h],01h; ret
90 mov dword ptr [esp-04h],02h; ret
91
92; 98 return ret;
93 mov eax,[esp-08h]; ret
94 mov edx,[esp-04h]; ret
95 ret
96_asmfoostd8@0 endp
97
98; 89 struct ret4bytes __stdcall asmfoostd4(void)
99 align 010h
100
101 public _asmfoostd4@0
102_asmfoostd4@0 proc
103
104; 91 struct ret4bytes ret = {1};
105 mov dword ptr [esp-04h],01h; ret
106
107; 92 return ret;
108 mov eax,[esp-04h]; ret
109 ret
110_asmfoostd4@0 endp
111
112; 81 struct ret16bytes _Optlink asmfooopt16(void)
113 align 010h
114
115 public asmfooopt16
116asmfooopt16 proc
117 push ebp
118 mov ebp,esp
119
120; 84 return ret;
121 mov eax,[ebp+08h]; @CBE8
122
123; 83 struct ret16bytes ret = {1,2,3,4};
124 mov dword ptr [ebp-010h],01h; ret
125 mov dword ptr [ebp-0ch],02h; ret
126
127; 84 return ret;
128 mov ecx,[ebp-010h]; ret
129 mov edx,[ebp-0ch]; ret
130 mov [eax],ecx
131
132; 83 struct ret16bytes ret = {1,2,3,4};
133 mov dword ptr [ebp-08h],03h; ret
134
135; 84 return ret;
136 mov [eax+04h],edx
137 mov edx,[ebp-08h]; ret
138
139; 83 struct ret16bytes ret = {1,2,3,4};
140 mov dword ptr [ebp-04h],04h; ret
141
142; 84 return ret;
143 mov ecx,[ebp-04h]; ret
144 mov [eax+08h],edx
145 mov [eax+0ch],ecx
146 pop ebp
147 ret
148asmfooopt16 endp
149
150; 75 struct ret12bytes _Optlink asmfooopt12(void)
151 align 010h
152
153 public asmfooopt12
154asmfooopt12 proc
155
156; 78 return ret;
157 mov eax,[esp+04h]; @CBE7
158
159; 77 struct ret12bytes ret = {1,2,3};
160 mov dword ptr [esp-0ch],01h; ret
161 mov dword ptr [esp-08h],02h; ret
162
163; 78 return ret;
164 mov edx,[esp-0ch]; ret
165 mov ecx,[esp-08h]; ret
166 mov [eax],edx
167
168; 77 struct ret12bytes ret = {1,2,3};
169 mov dword ptr [esp-04h],03h; ret
170
171; 78 return ret;
172 mov [eax+04h],ecx
173 mov ecx,[esp-04h]; ret
174 mov [eax+08h],ecx
175 ret
176asmfooopt12 endp
177
178; 69 struct ret8bytes _Optlink asmfooopt8(void)
179 align 010h
180
181 public asmfooopt8
182asmfooopt8 proc
183
184; 72 return ret;
185 mov eax,[esp+04h]; @CBE6
186
187; 71 struct ret8bytes ret = {1,2};
188 mov dword ptr [esp-08h],01h; ret
189 mov dword ptr [esp-04h],02h; ret
190
191; 72 return ret;
192 mov edx,[esp-08h]; ret
193 mov ecx,[esp-04h]; ret
194 mov [eax],edx
195 mov [eax+04h],ecx
196 ret
197asmfooopt8 endp
198
199; 63 struct ret4bytes _Optlink asmfooopt4(void)
200 align 010h
201
202 public asmfooopt4
203asmfooopt4 proc
204
205; 66 return ret;
206 mov eax,[esp+04h]; @CBE5
207
208; 65 struct ret4bytes ret = {1};
209 mov dword ptr [esp-04h],01h; ret
210
211; 66 return ret;
212 mov ecx,[esp-04h]; ret
213 mov [eax],ecx
214 ret
215asmfooopt4 endp
216
217; 56 struct ret16bytes _System asmfoosys16(void)
218 align 010h
219
220 public asmfoosys16
221asmfoosys16 proc
222 push ebp
223 mov ebp,esp
224
225; 59 return ret;
226 mov eax,[ebp+08h]; @CBE4
227
228; 58 struct ret16bytes ret = {1,2,3,4};
229 mov dword ptr [ebp-010h],01h; ret
230 mov dword ptr [ebp-0ch],02h; ret
231
232; 59 return ret;
233 mov ecx,[ebp-010h]; ret
234 mov edx,[ebp-0ch]; ret
235 mov [eax],ecx
236
237; 58 struct ret16bytes ret = {1,2,3,4};
238 mov dword ptr [ebp-08h],03h; ret
239
240; 59 return ret;
241 mov [eax+04h],edx
242 mov edx,[ebp-08h]; ret
243
244; 58 struct ret16bytes ret = {1,2,3,4};
245 mov dword ptr [ebp-04h],04h; ret
246
247; 59 return ret;
248 mov ecx,[ebp-04h]; ret
249 mov [eax+08h],edx
250 mov [eax+0ch],ecx
251 pop ebp
252 ret
253asmfoosys16 endp
254
255; 50 struct ret12bytes _System asmfoosys12(void)
256 align 010h
257
258 public asmfoosys12
259asmfoosys12 proc
260
261; 53 return ret;
262 mov eax,[esp+04h]; @CBE3
263
264; 52 struct ret12bytes ret = {1,2,3};
265 mov dword ptr [esp-0ch],01h; ret
266 mov dword ptr [esp-08h],02h; ret
267
268; 53 return ret;
269 mov edx,[esp-0ch]; ret
270 mov ecx,[esp-08h]; ret
271 mov [eax],edx
272
273; 52 struct ret12bytes ret = {1,2,3};
274 mov dword ptr [esp-04h],03h; ret
275
276; 53 return ret;
277 mov [eax+04h],ecx
278 mov ecx,[esp-04h]; ret
279 mov [eax+08h],ecx
280 ret
281asmfoosys12 endp
282
283; 44 struct ret8bytes _System asmfoosys8(void)
284 align 010h
285
286 public asmfoosys8
287asmfoosys8 proc
288
289; 47 return ret;
290 mov eax,[esp+04h]; @CBE2
291
292; 46 struct ret8bytes ret = {1,2};
293 mov dword ptr [esp-08h],01h; ret
294 mov dword ptr [esp-04h],02h; ret
295
296; 47 return ret;
297 mov edx,[esp-08h]; ret
298 mov ecx,[esp-04h]; ret
299 mov [eax],edx
300 mov [eax+04h],ecx
301 ret
302asmfoosys8 endp
303
304; 38 struct ret4bytes _System asmfoosys4(void)
305 align 010h
306
307 public asmfoosys4
308asmfoosys4 proc
309
310; 41 return ret;
311 mov eax,[esp+04h]; @CBE1
312
313; 40 struct ret4bytes ret = {1};
314 mov dword ptr [esp-04h],01h; ret
315
316; 41 return ret;
317 mov ecx,[esp-04h]; ret
318 mov [eax],ecx
319 ret
320asmfoosys4 endp
321
322
323
324
325public _asmfoodef4_gcc
326_asmfoodef4_gcc:
327 mov eax, 1
328 ret
329
330public _asmfoodef8_gcc
331_asmfoodef8_gcc:
332 mov eax, 1
333 mov edx, 2
334 ret
335
336public _asmfoodef12_gcc
337_asmfoodef12_gcc:
338 push ebp
339 mov ebp, esp
340 sub esp, 24
341 mov eax, [ebp + 8]
342 mov dword ptr [eax + 0], 1
343 mov dword ptr [eax + 4], 2
344 mov dword ptr [eax + 8], 3
345 leave
346 ret 4
347
348public _asmfoodef16_gcc
349_asmfoodef16_gcc:
350 push ebp
351 mov ebp, esp
352 sub esp, 24
353 mov eax, [ebp + 8]
354 mov dword ptr [eax + 0], 1
355 mov dword ptr [eax + 4], 2
356 mov dword ptr [eax + 8], 3
357 mov dword ptr [eax +12], 4
358 leave
359 ret 4
360
361CODE32 ends
362end
Note: See TracBrowser for help on using the repository browser.