Performance dmd vs ldc2
Chris
wendlec at tcd.ie
Wed Jul 31 06:07:49 PDT 2013
The dmd version
------- DMD --------------
Disassembly of section .text._D10xmlparser25parseFZv:
00000000 <_D10xmlparser25parseFZv>:
0: 55 push ebp
1: 8b ec mov ebp,esp
3: 81 ec 94 00 00 00 sub esp,0x94
9: 53 push ebx
a: 56 push esi
b: 57 push edi
c: 6a 0c push 0xc
e: e8 fc ff ff ff call f <_D10xmlparser25parseFZv+0xf>
f: R_386_PC32 _d_allocmemory
13: 89 85 70 ff ff ff mov DWORD PTR [ebp-0x90],eax
19: c7 00 00 00 00 00 mov DWORD PTR [eax],0x0
1f: ff 35 54 00 00 00 push DWORD PTR ds:0x54
21: R_386_32 .rodata
25: ff 35 50 00 00 00 push DWORD PTR ds:0x50
27: R_386_32 .rodata
2b: b8 ff ff ff ff mov eax,0xffffffff
30: e8 fc ff ff ff call 31
<_D10xmlparser25parseFZv+0x31>
31: R_386_PC32 _D3std4file4readFxAakZAv
35: 89 85 78 ff ff ff mov DWORD PTR [ebp-0x88],eax
3b: 89 95 7c ff ff ff mov DWORD PTR [ebp-0x84],edx
41: 52 push edx
42: 50 push eax
43: e8 fc ff ff ff call 44
<_D10xmlparser25parseFZv+0x44>
44: R_386_PC32 _D3std3xml5checkFAyaZv
48: 8b 8d 70 ff ff ff mov ecx,DWORD PTR [ebp-0x90]
4e: 8d 51 04 lea edx,[ecx+0x4]
51: c7 02 00 00 00 00 mov DWORD PTR [edx],0x0
57: c7 42 04 00 00 00 00 mov DWORD PTR [edx+0x4],0x0
5e: bb 00 00 00 00 mov ebx,0x0
5f: R_386_32 _D3std3xml14DocumentParser7__ClassZ
63: 53 push ebx
64: 89 95 6c ff ff ff mov DWORD PTR [ebp-0x94],edx
6a: e8 fc ff ff ff call 6b
<_D10xmlparser25parseFZv+0x6b>
6b: R_386_PC32 _d_newclass
6f: ff b5 7c ff ff ff push DWORD PTR [ebp-0x84]
75: ff b5 78 ff ff ff push DWORD PTR [ebp-0x88]
7b: e8 fc ff ff ff call 7c
<_D10xmlparser25parseFZv+0x7c>
7c:
R_386_PC32 _D3std3xml14DocumentParser6__ctorMFAyaZC3std3xml14DocumentParser
80: 89 45 88 mov DWORD PTR [ebp-0x78],eax
83: 8b b5 70 ff ff ff mov esi,DWORD PTR [ebp-0x90]
89: b9 00 00 00 00 mov ecx,0x0
8a:
R_386_32 _D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv
8e: 89 75 90 mov DWORD PTR [ebp-0x70],esi
91: 89 4d 94 mov DWORD PTR [ebp-0x6c],ecx
94: 8d 7d 90 lea edi,[ebp-0x70]
97: ba 60 00 00 00 mov edx,0x60
98: R_386_32 .rodata
9c: 52 push edx
9d: 6a 08 push 0x8
9f: bb 00 00 00 00 mov ebx,0x0
a0: R_386_32 _D11TypeInfo_Aa6__initZ
a4: 53 push ebx
a5: 8d 70 48 lea esi,[eax+0x48]
a8: 56 push esi
a9: e8 fc ff ff ff call aa
<_D10xmlparser25parseFZv+0xaa>
aa: R_386_PC32 _aaGetX
ae: 89 45 98 mov DWORD PTR [ebp-0x68],eax
b1: 83 c4 10 add esp,0x10
b4: 85 c0 test eax,eax
b6: 75 0a jne c2
<_D10xmlparser25parseFZv+0xc2>
b8: b8 33 00 00 00 mov eax,0x33
bd: e8 fc ff ff ff call be
<_D10xmlparser25parseFZv+0xbe>
be: R_386_PC32 _D10xmlparser27__arrayZ
c2: 8b 57 04 mov edx,DWORD PTR [edi+0x4]
c5: 8b 07 mov eax,DWORD PTR [edi]
c7: 8b 4d 98 mov ecx,DWORD PTR [ebp-0x68]
ca: 89 01 mov DWORD PTR [ecx],eax
cc: 89 51 04 mov DWORD PTR [ecx+0x4],edx
cf: 8b 45 88 mov eax,DWORD PTR [ebp-0x78]
d2: 8b 18 mov ebx,DWORD PTR [eax]
d4: ff 53 30 call DWORD PTR [ebx+0x30]
d7: be 00 00 00 00 mov esi,0x0
d8: R_386_32 _D3std3xml8Document7__ClassZ
dc: 56 push esi
dd: e8 fc ff ff ff call de
<_D10xmlparser25parseFZv+0xde>
de: R_386_PC32 _d_newclass
e2: 89 45 a0 mov DWORD PTR [ebp-0x60],eax
e5: ba 00 00 00 00 mov edx,0x0
e6: R_386_32 _D3std3xml3Tag7__ClassZ
ea: 52 push edx
eb: e8 fc ff ff ff call ec
<_D10xmlparser25parseFZv+0xec>
ec: R_386_PC32 _d_newclass
f0: 83 c4 04 add esp,0x4
f3: ff 35 74 00 00 00 push DWORD PTR ds:0x74
f5: R_386_32 .rodata
f9: ff 35 70 00 00 00 push DWORD PTR ds:0x70
fb: R_386_32 .rodata
ff: 6a 00 push 0x0
101: e8 fc ff ff ff call 102
<_D10xmlparser25parseFZv+0x102>
102:
R_386_PC32 _D3std3xml3Tag6__ctorMFAyaE3std3xml7TagTypeZC3std3xml3Tag
106: 50 push eax
107: 8b 45 a0 mov eax,DWORD PTR [ebp-0x60]
10a: e8 fc ff ff ff call 10b
<_D10xmlparser25parseFZv+0x10b>
10b:
R_386_PC32 _D3std3xml8Document6__ctorMFxC3std3xml3TagZC3std3xml8Document
10f: 89 45 9c mov DWORD PTR [ebp-0x64],eax
112: 8b 8d 6c ff ff ff mov ecx,DWORD PTR [ebp-0x94]
118: 8b 51 04 mov edx,DWORD PTR [ecx+0x4]
11b: 8b 01 mov eax,DWORD PTR [ecx]
11d: 89 45 a8 mov DWORD PTR [ebp-0x58],eax
120: 89 55 ac mov DWORD PTR [ebp-0x54],edx
123: c7 45 b0 00 00 00 00 mov DWORD PTR [ebp-0x50],0x0
12a: 83 c4 0c add esp,0xc
12d: 8b 5d b0 mov ebx,DWORD PTR [ebp-0x50]
130: 3b 5d a8 cmp ebx,DWORD PTR [ebp-0x58]
133: 0f 83 99 01 00 00 jae 2d2
<_D10xmlparser25parseFZv+0x2d2>
139: 8b 75 b0 mov esi,DWORD PTR [ebp-0x50]
13c: 3b 75 a8 cmp esi,DWORD PTR [ebp-0x58]
13f: 72 0a jb 14b
<_D10xmlparser25parseFZv+0x14b>
141: b8 47 00 00 00 mov eax,0x47
146: e8 fc ff ff ff call 147
<_D10xmlparser25parseFZv+0x147>
147: R_386_PC32 _D10xmlparser27__arrayZ
14b: 6b f6 38 imul esi,esi,0x38
14e: 8b 55 ac mov edx,DWORD PTR [ebp-0x54]
151: 8b 45 a8 mov eax,DWORD PTR [ebp-0x58]
154: 03 f2 add esi,edx
156: 8d 7d c0 lea edi,[ebp-0x40]
159: b9 0e 00 00 00 mov ecx,0xe
15e: f3 a5 rep movs DWORD PTR es:[edi],DWORD PTR
ds:[esi]
160: b9 00 00 00 00 mov ecx,0x0
161: R_386_32 _D3std3xml7Element7__ClassZ
165: 51 push ecx
166: e8 fc ff ff ff call 167
<_D10xmlparser25parseFZv+0x167>
167: R_386_PC32 _d_newclass
16b: ff 35 64 00 00 00 push DWORD PTR ds:0x64
16d: R_386_32 .rodata
171: ff 35 60 00 00 00 push DWORD PTR ds:0x60
173: R_386_32 .rodata
177: 6a 00 push 0x0
179: 6a 00 push 0x0
17b: e8 fc ff ff ff call 17c
<_D10xmlparser25parseFZv+0x17c>
17c:
R_386_PC32 _D3std3xml7Element6__ctorMFAyaAyaZC3std3xml7Element
180: 89 45 f8 mov DWORD PTR [ebp-0x8],eax
183: 8d 5d c0 lea ebx,[ebp-0x40]
186: be 80 00 00 00 mov esi,0x80
187: R_386_32 .rodata
18b: 56 push esi
18c: 6a 08 push 0x8
18e: ba 00 00 00 00 mov edx,0x0
18f: R_386_32 _D11TypeInfo_Aa6__initZ
193: 52 push edx
194: 8b 78 08 mov edi,DWORD PTR [eax+0x8]
197: 83 c7 14 add edi,0x14
19a: 57 push edi
19b: e8 fc ff ff ff call 19c
<_D10xmlparser25parseFZv+0x19c>
19c: R_386_PC32 _aaGetX
1a0: 89 45 fc mov DWORD PTR [ebp-0x4],eax
1a3: 83 c4 10 add esp,0x10
1a6: 85 c0 test eax,eax
1a8: 75 0a jne 1b4
<_D10xmlparser25parseFZv+0x1b4>
1aa: b8 4a 00 00 00 mov eax,0x4a
1af: e8 fc ff ff ff call 1b0
<_D10xmlparser25parseFZv+0x1b0>
1b0: R_386_PC32 _D10xmlparser27__arrayZ
1b4: 8b 53 04 mov edx,DWORD PTR [ebx+0x4]
1b7: 8b 03 mov eax,DWORD PTR [ebx]
1b9: 8b 4d fc mov ecx,DWORD PTR [ebp-0x4]
1bc: 89 01 mov DWORD PTR [ecx],eax
1be: 89 51 04 mov DWORD PTR [ecx+0x4],edx
1c1: bb 00 00 00 00 mov ebx,0x0
1c2: R_386_32 _D3std3xml7Element7__ClassZ
1c6: 53 push ebx
1c7: e8 fc ff ff ff call 1c8
<_D10xmlparser25parseFZv+0x1c8>
1c8: R_386_PC32 _d_newclass
1cc: 83 c4 04 add esp,0x4
1cf: ff 35 94 00 00 00 push DWORD PTR ds:0x94
1d1: R_386_32 .rodata
1d5: ff 35 90 00 00 00 push DWORD PTR ds:0x90
1d7: R_386_32 .rodata
1db: ff 75 cc push DWORD PTR [ebp-0x34]
1de: ff 75 c8 push DWORD PTR [ebp-0x38]
1e1: e8 fc ff ff ff call 1e2
<_D10xmlparser25parseFZv+0x1e2>
1e2:
R_386_PC32 _D3std3xml7Element6__ctorMFAyaAyaZC3std3xml7Element
1e6: 50 push eax
1e7: 8b 45 f8 mov eax,DWORD PTR [ebp-0x8]
1ea: 8b 30 mov esi,DWORD PTR [eax]
1ec: ff 56 2c call DWORD PTR [esi+0x2c]
1ef: 53 push ebx
1f0: e8 fc ff ff ff call 1f1
<_D10xmlparser25parseFZv+0x1f1>
1f1: R_386_PC32 _d_newclass
1f5: 83 c4 04 add esp,0x4
1f8: ff 35 a4 00 00 00 push DWORD PTR ds:0xa4
1fa: R_386_32 .rodata
1fe: ff 35 a0 00 00 00 push DWORD PTR ds:0xa0
200: R_386_32 .rodata
204: ff 75 d4 push DWORD PTR [ebp-0x2c]
207: ff 75 d0 push DWORD PTR [ebp-0x30]
20a: e8 fc ff ff ff call 20b
<_D10xmlparser25parseFZv+0x20b>
20b:
R_386_PC32 _D3std3xml7Element6__ctorMFAyaAyaZC3std3xml7Element
20f: 50 push eax
210: 8b 45 f8 mov eax,DWORD PTR [ebp-0x8]
213: 8b 08 mov ecx,DWORD PTR [eax]
215: ff 51 2c call DWORD PTR [ecx+0x2c]
218: 53 push ebx
219: e8 fc ff ff ff call 21a
<_D10xmlparser25parseFZv+0x21a>
21a: R_386_PC32 _d_newclass
21e: 83 c4 04 add esp,0x4
221: ff 35 b4 00 00 00 push DWORD PTR ds:0xb4
223: R_386_32 .rodata
227: ff 35 b0 00 00 00 push DWORD PTR ds:0xb0
229: R_386_32 .rodata
22d: ff 75 dc push DWORD PTR [ebp-0x24]
230: ff 75 d8 push DWORD PTR [ebp-0x28]
233: e8 fc ff ff ff call 234
<_D10xmlparser25parseFZv+0x234>
234:
R_386_PC32 _D3std3xml7Element6__ctorMFAyaAyaZC3std3xml7Element
238: 50 push eax
239: 8b 45 f8 mov eax,DWORD PTR [ebp-0x8]
23c: 8b 10 mov edx,DWORD PTR [eax]
23e: ff 52 2c call DWORD PTR [edx+0x2c]
241: 53 push ebx
242: e8 fc ff ff ff call 243
<_D10xmlparser25parseFZv+0x243>
243: R_386_PC32 _d_newclass
247: 83 c4 04 add esp,0x4
24a: ff 35 c4 00 00 00 push DWORD PTR ds:0xc4
24c: R_386_32 .rodata
250: ff 35 c0 00 00 00 push DWORD PTR ds:0xc0
252: R_386_32 .rodata
256: ff 75 e4 push DWORD PTR [ebp-0x1c]
259: ff 75 e0 push DWORD PTR [ebp-0x20]
25c: e8 fc ff ff ff call 25d
<_D10xmlparser25parseFZv+0x25d>
25d:
R_386_PC32 _D3std3xml7Element6__ctorMFAyaAyaZC3std3xml7Element
261: 50 push eax
262: 8b 45 f8 mov eax,DWORD PTR [ebp-0x8]
265: 8b 30 mov esi,DWORD PTR [eax]
267: ff 56 2c call DWORD PTR [esi+0x2c]
26a: 53 push ebx
26b: e8 fc ff ff ff call 26c
<_D10xmlparser25parseFZv+0x26c>
26c: R_386_PC32 _d_newclass
270: 83 c4 04 add esp,0x4
273: ff 35 dc 00 00 00 push DWORD PTR ds:0xdc
275: R_386_32 .rodata
279: ff 35 d8 00 00 00 push DWORD PTR ds:0xd8
27b: R_386_32 .rodata
27f: ff 75 ec push DWORD PTR [ebp-0x14]
282: ff 75 e8 push DWORD PTR [ebp-0x18]
285: e8 fc ff ff ff call 286
<_D10xmlparser25parseFZv+0x286>
286:
R_386_PC32 _D3std3xml7Element6__ctorMFAyaAyaZC3std3xml7Element
28a: 50 push eax
28b: 8b 45 f8 mov eax,DWORD PTR [ebp-0x8]
28e: 8b 08 mov ecx,DWORD PTR [eax]
290: ff 51 2c call DWORD PTR [ecx+0x2c]
293: 53 push ebx
294: e8 fc ff ff ff call 295
<_D10xmlparser25parseFZv+0x295>
295: R_386_PC32 _d_newclass
299: 83 c4 04 add esp,0x4
29c: ff 35 f4 00 00 00 push DWORD PTR ds:0xf4
29e: R_386_32 .rodata
2a2: ff 35 f0 00 00 00 push DWORD PTR ds:0xf0
2a4: R_386_32 .rodata
2a8: ff 75 f4 push DWORD PTR [ebp-0xc]
2ab: ff 75 f0 push DWORD PTR [ebp-0x10]
2ae: e8 fc ff ff ff call 2af
<_D10xmlparser25parseFZv+0x2af>
2af:
R_386_PC32 _D3std3xml7Element6__ctorMFAyaAyaZC3std3xml7Element
2b3: 50 push eax
2b4: 8b 45 f8 mov eax,DWORD PTR [ebp-0x8]
2b7: 8b 10 mov edx,DWORD PTR [eax]
2b9: ff 52 2c call DWORD PTR [edx+0x2c]
2bc: ff 75 f8 push DWORD PTR [ebp-0x8]
2bf: 8b 45 9c mov eax,DWORD PTR [ebp-0x64]
2c2: 8b 18 mov ebx,DWORD PTR [eax]
2c4: ff 53 2c call DWORD PTR [ebx+0x2c]
2c7: 83 c4 04 add esp,0x4
2ca: ff 45 b0 inc DWORD PTR [ebp-0x50]
2cd: e9 5b fe ff ff jmp 12d
<_D10xmlparser25parseFZv+0x12d>
2d2: 5f pop edi
2d3: 5e pop esi
2d4: 5b pop ebx
2d5: c9 leave
2d6: c3 ret
2d7: 90 nop
Disassembly of section
.text._D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv:
00000000
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv>:
0: 55 push ebp
1: 8b ec mov ebp,esp
3: 81 ec b8 00 00 00 sub esp,0xb8
9: 53 push ebx
a: 56 push esi
b: 57 push edi
c: 89 45 fc mov DWORD PTR [ebp-0x4],eax
f: 6a 3c push 0x3c
11: e8 fc ff ff ff call 12
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x12>
12: R_386_PC32 _d_allocmemory
16: 89 85 50 ff ff ff mov DWORD PTR [ebp-0xb0],eax
1c: 8b 4d fc mov ecx,DWORD PTR [ebp-0x4]
1f: 89 08 mov DWORD PTR [eax],ecx
21: b9 0e 00 00 00 mov ecx,0xe
26: 31 c0 xor eax,eax
28: 8b 95 50 ff ff ff mov edx,DWORD PTR [ebp-0xb0]
2e: 8d 7a 04 lea edi,[edx+0x4]
31: 89 bd 48 ff ff ff mov DWORD PTR [ebp-0xb8],edi
37: f3 ab rep stos DWORD PTR es:[edi],eax
39: bb 80 00 00 00 mov ebx,0x80
3a: R_386_32 .rodata
3e: 53 push ebx
3f: 6a 08 push 0x8
41: b9 00 00 00 00 mov ecx,0x0
42: R_386_32 _D11TypeInfo_Aa6__initZ
46: 51 push ecx
47: 8b 45 08 mov eax,DWORD PTR [ebp+0x8]
4a: 8b 30 mov esi,DWORD PTR [eax]
4c: ff 56 14 call DWORD PTR [esi+0x14]
4f: ff 70 14 push DWORD PTR [eax+0x14]
52: e8 fc ff ff ff call 53
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x53>
53: R_386_PC32 _aaGetRvalueX
57: 89 45 98 mov DWORD PTR [ebp-0x68],eax
5a: 83 c4 10 add esp,0x10
5d: 85 c0 test eax,eax
5f: 75 0a jne 6b
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x6b>
61: b8 36 00 00 00 mov eax,0x36
66: e8 fc ff ff ff call 67
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x67>
67: R_386_PC32 _D10xmlparser27__arrayZ
6b: 8b 55 98 mov edx,DWORD PTR [ebp-0x68]
6e: 8b 02 mov eax,DWORD PTR [edx]
70: 8b 52 04 mov edx,DWORD PTR [edx+0x4]
73: 8b 8d 48 ff ff ff mov ecx,DWORD PTR [ebp-0xb8]
79: 89 01 mov DWORD PTR [ecx],eax
7b: 89 51 04 mov DWORD PTR [ecx+0x4],edx
7e: 8b 9d 50 ff ff ff mov ebx,DWORD PTR [ebp-0xb0]
84: ba 00 00 00 00 mov edx,0x0
85:
R_386_32 _D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv9__lambda2MFxC3std3xml7ElementZv
89: 89 5d a0 mov DWORD PTR [ebp-0x60],ebx
8c: 89 55 a4 mov DWORD PTR [ebp-0x5c],edx
8f: 8d 75 a0 lea esi,[ebp-0x60]
92: b8 90 00 00 00 mov eax,0x90
93: R_386_32 .rodata
97: 50 push eax
98: 6a 08 push 0x8
9a: bf 00 00 00 00 mov edi,0x0
9b: R_386_32 _D11TypeInfo_Aa6__initZ
9f: 57 push edi
a0: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
a3: 8d 53 4c lea edx,[ebx+0x4c]
a6: 52 push edx
a7: 89 95 4c ff ff ff mov DWORD PTR [ebp-0xb4],edx
ad: e8 fc ff ff ff call ae
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0xae>
ae: R_386_PC32 _aaGetX
b2: 89 45 a8 mov DWORD PTR [ebp-0x58],eax
b5: 83 c4 10 add esp,0x10
b8: 85 c0 test eax,eax
ba: 75 0a jne c6
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0xc6>
bc: b8 38 00 00 00 mov eax,0x38
c1: e8 fc ff ff ff call c2
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0xc2>
c2: R_386_PC32 _D10xmlparser27__arrayZ
c6: 8b 56 04 mov edx,DWORD PTR [esi+0x4]
c9: 8b 06 mov eax,DWORD PTR [esi]
cb: 8b 4d a8 mov ecx,DWORD PTR [ebp-0x58]
ce: 89 01 mov DWORD PTR [ecx],eax
d0: 89 51 04 mov DWORD PTR [ecx+0x4],edx
d3: 8b b5 50 ff ff ff mov esi,DWORD PTR [ebp-0xb0]
d9: ba 00 00 00 00 mov edx,0x0
da:
R_386_32 _D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv9__lambda3MFxC3std3xml7ElementZv
de: 89 75 b0 mov DWORD PTR [ebp-0x50],esi
e1: 89 55 b4 mov DWORD PTR [ebp-0x4c],edx
e4: 8d 45 b0 lea eax,[ebp-0x50]
e7: 89 45 ac mov DWORD PTR [ebp-0x54],eax
ea: b9 a0 00 00 00 mov ecx,0xa0
eb: R_386_32 .rodata
ef: 51 push ecx
f0: 6a 08 push 0x8
f2: 57 push edi
f3: 8b b5 4c ff ff ff mov esi,DWORD PTR [ebp-0xb4]
f9: 56 push esi
fa: e8 fc ff ff ff call fb
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0xfb>
fb: R_386_PC32 _aaGetX
ff: 89 45 b8 mov DWORD PTR [ebp-0x48],eax
102: 83 c4 10 add esp,0x10
105: 85 c0 test eax,eax
107: 75 0a jne 113
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x113>
109: b8 39 00 00 00 mov eax,0x39
10e: e8 fc ff ff ff call 10f
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x10f>
10f: R_386_PC32 _D10xmlparser27__arrayZ
113: 8b 55 ac mov edx,DWORD PTR [ebp-0x54]
116: 8b 02 mov eax,DWORD PTR [edx]
118: 8b 52 04 mov edx,DWORD PTR [edx+0x4]
11b: 8b 4d b8 mov ecx,DWORD PTR [ebp-0x48]
11e: 89 01 mov DWORD PTR [ecx],eax
120: 89 51 04 mov DWORD PTR [ecx+0x4],edx
123: 8b 85 50 ff ff ff mov eax,DWORD PTR [ebp-0xb0]
129: ba 00 00 00 00 mov edx,0x0
12a:
R_386_32 _D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv9__lambda4MFxC3std3xml7ElementZv
12e: 89 45 c0 mov DWORD PTR [ebp-0x40],eax
131: 89 55 c4 mov DWORD PTR [ebp-0x3c],edx
134: 8d 4d c0 lea ecx,[ebp-0x40]
137: 89 4d bc mov DWORD PTR [ebp-0x44],ecx
13a: b8 b0 00 00 00 mov eax,0xb0
13b: R_386_32 .rodata
13f: 50 push eax
140: 6a 08 push 0x8
142: 57 push edi
143: 56 push esi
144: e8 fc ff ff ff call 145
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x145>
145: R_386_PC32 _aaGetX
149: 89 45 c8 mov DWORD PTR [ebp-0x38],eax
14c: 83 c4 10 add esp,0x10
14f: 85 c0 test eax,eax
151: 75 0a jne 15d
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x15d>
153: b8 3a 00 00 00 mov eax,0x3a
158: e8 fc ff ff ff call 159
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x159>
159: R_386_PC32 _D10xmlparser27__arrayZ
15d: 8b 55 bc mov edx,DWORD PTR [ebp-0x44]
160: 8b 02 mov eax,DWORD PTR [edx]
162: 8b 52 04 mov edx,DWORD PTR [edx+0x4]
165: 8b 4d c8 mov ecx,DWORD PTR [ebp-0x38]
168: 89 01 mov DWORD PTR [ecx],eax
16a: 89 51 04 mov DWORD PTR [ecx+0x4],edx
16d: 8b 85 50 ff ff ff mov eax,DWORD PTR [ebp-0xb0]
173: ba 00 00 00 00 mov edx,0x0
174:
R_386_32 _D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv9__lambda5MFxC3std3xml7ElementZv
178: 89 45 d0 mov DWORD PTR [ebp-0x30],eax
17b: 89 55 d4 mov DWORD PTR [ebp-0x2c],edx
17e: 8d 4d d0 lea ecx,[ebp-0x30]
181: 89 4d cc mov DWORD PTR [ebp-0x34],ecx
184: b8 c0 00 00 00 mov eax,0xc0
185: R_386_32 .rodata
189: 50 push eax
18a: 6a 08 push 0x8
18c: 57 push edi
18d: 56 push esi
18e: e8 fc ff ff ff call 18f
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x18f>
18f: R_386_PC32 _aaGetX
193: 89 45 d8 mov DWORD PTR [ebp-0x28],eax
196: 83 c4 10 add esp,0x10
199: 85 c0 test eax,eax
19b: 75 0a jne 1a7
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x1a7>
19d: b8 3b 00 00 00 mov eax,0x3b
1a2: e8 fc ff ff ff call 1a3
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x1a3>
1a3: R_386_PC32 _D10xmlparser27__arrayZ
1a7: 8b 55 cc mov edx,DWORD PTR [ebp-0x34]
1aa: 8b 02 mov eax,DWORD PTR [edx]
1ac: 8b 52 04 mov edx,DWORD PTR [edx+0x4]
1af: 8b 4d d8 mov ecx,DWORD PTR [ebp-0x28]
1b2: 89 01 mov DWORD PTR [ecx],eax
1b4: 89 51 04 mov DWORD PTR [ecx+0x4],edx
1b7: 8b 85 50 ff ff ff mov eax,DWORD PTR [ebp-0xb0]
1bd: ba 00 00 00 00 mov edx,0x0
1be:
R_386_32 _D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv9__lambda6MFxC3std3xml7ElementZv
1c2: 89 45 e0 mov DWORD PTR [ebp-0x20],eax
1c5: 89 55 e4 mov DWORD PTR [ebp-0x1c],edx
1c8: 8d 4d e0 lea ecx,[ebp-0x20]
1cb: 89 4d dc mov DWORD PTR [ebp-0x24],ecx
1ce: b8 d8 00 00 00 mov eax,0xd8
1cf: R_386_32 .rodata
1d3: 50 push eax
1d4: 6a 08 push 0x8
1d6: 57 push edi
1d7: 56 push esi
1d8: e8 fc ff ff ff call 1d9
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x1d9>
1d9: R_386_PC32 _aaGetX
1dd: 89 45 e8 mov DWORD PTR [ebp-0x18],eax
1e0: 83 c4 10 add esp,0x10
1e3: 85 c0 test eax,eax
1e5: 75 0a jne 1f1
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x1f1>
1e7: b8 3c 00 00 00 mov eax,0x3c
1ec: e8 fc ff ff ff call 1ed
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x1ed>
1ed: R_386_PC32 _D10xmlparser27__arrayZ
1f1: 8b 55 dc mov edx,DWORD PTR [ebp-0x24]
1f4: 8b 02 mov eax,DWORD PTR [edx]
1f6: 8b 52 04 mov edx,DWORD PTR [edx+0x4]
1f9: 8b 4d e8 mov ecx,DWORD PTR [ebp-0x18]
1fc: 89 01 mov DWORD PTR [ecx],eax
1fe: 89 51 04 mov DWORD PTR [ecx+0x4],edx
201: 8b 85 50 ff ff ff mov eax,DWORD PTR [ebp-0xb0]
207: ba 00 00 00 00 mov edx,0x0
208:
R_386_32 _D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv9__lambda7MFxC3std3xml7ElementZv
20c: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
20f: 89 55 f4 mov DWORD PTR [ebp-0xc],edx
212: 8d 4d f0 lea ecx,[ebp-0x10]
215: 89 4d ec mov DWORD PTR [ebp-0x14],ecx
218: b8 f0 00 00 00 mov eax,0xf0
219: R_386_32 .rodata
21d: 50 push eax
21e: 6a 08 push 0x8
220: 57 push edi
221: 56 push esi
222: e8 fc ff ff ff call 223
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x223>
223: R_386_PC32 _aaGetX
227: 89 45 f8 mov DWORD PTR [ebp-0x8],eax
22a: 83 c4 10 add esp,0x10
22d: 85 c0 test eax,eax
22f: 75 0a jne 23b
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x23b>
231: b8 3d 00 00 00 mov eax,0x3d
236: e8 fc ff ff ff call 237
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x237>
237: R_386_PC32 _D10xmlparser27__arrayZ
23b: 8b 75 ec mov esi,DWORD PTR [ebp-0x14]
23e: 8b 56 04 mov edx,DWORD PTR [esi+0x4]
241: 8b 06 mov eax,DWORD PTR [esi]
243: 8b 4d f8 mov ecx,DWORD PTR [ebp-0x8]
246: 89 01 mov DWORD PTR [ecx],eax
248: 89 51 04 mov DWORD PTR [ecx+0x4],edx
24b: 89 d8 mov eax,ebx
24d: 8b 18 mov ebx,DWORD PTR [eax]
24f: ff 53 30 call DWORD PTR [ebx+0x30]
252: 8b b5 48 ff ff ff mov esi,DWORD PTR [ebp-0xb8]
258: b9 0e 00 00 00 mov ecx,0xe
25d: 83 c6 34 add esi,0x34
260: ff 36 push DWORD PTR [esi]
262: 83 ee 04 sub esi,0x4
265: e2 f9 loop 260
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x260>
267: 8b 55 fc mov edx,DWORD PTR [ebp-0x4]
26a: 8d 4a 04 lea ecx,[edx+0x4]
26d: 51 push ecx
26e: b8 00 00 00 00 mov eax,0x0
26f: R_386_32 _D28TypeInfo_AS10xmlparser24Book6__initZ
273: 50 push eax
274: e8 fc ff ff ff call 275
<_D10xmlparser25parseFZv9__lambda1MFC3std3xml13ElementParserZv+0x275>
275: R_386_PC32 _d_arrayappendcT
279: 83 c4 44 add esp,0x44
27c: 5f pop edi
27d: 5e pop esi
27e: 5b pop ebx
27f: c9 leave
280: c2 04 00 ret 0x4
283: 90 nop
284: 90 nop
285: 90 nop
286: 90 nop
287: 90 nop
More information about the digitalmars-d-ldc
mailing list