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