| allegro-cl archives 1997-6-16 | home index prev H thread prev K thread next J next L |
|
From: Kevin Layer Subject: Re: Franz ACL 4.3.2 for Windows compared to ACL 3.0.1 Date: 1997-6-16 19:55
Here's the disassembly in the current pre-released version of ACL 5.0,
just for comparison and to show that we are making progress:
PNPOLY goes from 425 to 385 bytes and PNPOLYTEST goes from 911 to 755
bytes:
;; disassembly of #<Function pnpoly>
;; formals: npol xp yp x y
;; code start: #x2081d7d4:
0: 55 pushl ebp
1: 8b ec movl ebp,esp
3: 56 pushl esi
4: 83 ec 44 subl esp,$68
7: 8b 5d 18 movl ebx,[ebp+24] ; y
10: dd 43 16 fldq [ebx+22]
13: dd da fstp st(2)
15: 8b 5d 14 movl ebx,[ebp+20] ; x
18: dd 43 16 fldq [ebx+22]
21: dd db fstp st(3)
23: 8b df movl ebx,edi
25: 89 55 d0 movl [ebp-48],edx ; xp
28: 8b d0 movl edx,eax
30: 83 c2 fc addl edx,$-4
33: 89 45 cc movl [ebp-52],eax ; npol
36: 33 c0 xorl eax,eax
38: 3b 45 cc cmpl eax,[ebp-52] ; npol
41: 7c 08 jl 51
43: 8b c3 movl eax,ebx
45: f8 clc
46: c9 leave
47: 8b 75 fc movl esi,[ebp-4]
50: c3 ret
51: 89 5d d4 movl [ebp-44],ebx ; c
54: 8b d8 movl ebx,eax
56: d1 e3 sall ebx,$1
58: 89 55 d8 movl [ebp-40],edx ; j
61: 8b 55 10 movl edx,[ebp+16] ; yp
64: dd 44 1a 16 fldq [edx+ebx+22]
68: dd dc fstp st(4)
70: d9 c3 fld st,st(3)
72: d8 da fcomp st,st(2)
74: 8b c8 movl ecx,eax
76: df e0 ffstswax
78: 9e sahf
79: 8b c1 movl eax,ecx
81: 7b 02 jnp 85
83: cd 68 int $104 ; trap-unordered
85: 76 2f jbe 134
87: 8b 5d d8 movl ebx,[ebp-40] ; j
90: 89 45 dc movl [ebp-36],eax ; i
93: 8b c3 movl eax,ebx
95: d1 e0 sall eax,$1
97: dd 44 02 16 fldq [edx+eax+22]
101: dd dc fstp st(4)
103: d9 c3 fld st,st(3)
105: d8 da fcomp st,st(2)
107: 8b c8 movl ecx,eax
109: df e0 ffstswax
111: 9e sahf
112: 8b c1 movl eax,ecx
114: 7b 02 jnp 118
116: cd 68 int $104 ; trap-unordered
118: 76 34 jbe 172
120: 8b 55 dc movl edx,[ebp-36] ; i
123: 8b 45 dc movl eax,[ebp-36] ; i
126: 83 c0 04 addl eax,$4
129: 8b 5d d4 movl ebx,[ebp-44] ; c
132: eb a0 jmp 38
134: 8b 5d d8 movl ebx,[ebp-40] ; j
137: 89 45 dc movl [ebp-36],eax ; i
140: 8b c3 movl eax,ebx
142: d1 e0 sall eax,$1
144: dd 44 02 16 fldq [edx+eax+22]
148: dd dc fstp st(4)
150: d9 c1 fld st,st(1)
152: d8 dc fcomp st,st(4)
154: 8b c8 movl ecx,eax
156: df e0 ffstswax
158: 9e sahf
159: 8b c1 movl eax,ecx
161: 7b 02 jnp 165
163: cd 68 int $104 ; trap-unordered
165: 72 29 jb 208
167: 8b 45 dc movl eax,[ebp-36] ; i
170: eb ab jmp 87
172: 8b 45 dc movl eax,[ebp-36] ; i
175: 8b d8 movl ebx,eax
177: d1 e3 sall ebx,$1
179: dd 44 1a 16 fldq [edx+ebx+22]
183: dd dc fstp st(4)
185: d9 c1 fld st,st(1)
187: d8 dc fcomp st,st(4)
189: 8b c8 movl ecx,eax
191: df e0 ffstswax
193: 9e sahf
194: 8b c1 movl eax,ecx
196: 7b 02 jnp 200
198: cd 68 int $104 ; trap-unordered
200: 0f 82 9f 00 jb 365
00 00
206: eb a8 jmp 120
208: 8b 45 dc movl eax,[ebp-36] ; i
211: 8b d0 movl edx,eax
213: d1 e2 sall edx,$1
215: 8b 5d d0 movl ebx,[ebp-48] ; xp
218: dd 44 13 16 fldq [ebx+edx+22]
222: dd dc fstp st(4)
224: 8b 55 d8 movl edx,[ebp-40] ; j
227: 8b c2 movl eax,edx
229: d1 e0 sall eax,$1
231: dd 44 03 16 fldq [ebx+eax+22]
235: dd dd fstp st(5)
237: 8b 45 dc movl eax,[ebp-36] ; i
240: 8b d0 movl edx,eax
242: d1 e2 sall edx,$1
244: dd 44 13 16 fldq [ebx+edx+22]
248: dd de fstp st(6)
250: d9 c4 fld st,st(4)
252: d8 e6 fsub st,st(6)
254: dd dd fstp st(5)
256: 8b d0 movl edx,eax
258: d1 e2 sall edx,$1
260: 8b 5d 10 movl ebx,[ebp+16] ; yp
263: dd 44 13 16 fldq [ebx+edx+22]
267: dd de fstp st(6)
269: d9 c1 fld st,st(1)
271: d8 e6 fsub st,st(6)
273: dd de fstp st(6)
275: d9 c4 fld st,st(4)
277: d8 ce fmul st,st(6)
279: dd dd fstp st(5)
281: 8b 55 d8 movl edx,[ebp-40] ; j
284: d1 e2 sall edx,$1
286: dd 44 13 16 fldq [ebx+edx+22]
290: dd de fstp st(6)
292: 8b d0 movl edx,eax
294: d1 e2 sall edx,$1
296: d9 c3 fld st,st(3)
298: dd 5d e0 fstpq [ebp-32]
301: dd 44 13 16 fldq [ebx+edx+22]
305: dd dc fstp st(4)
307: d9 c5 fld st,st(5)
309: d8 e4 fsub st,st(4)
311: dd dc fstp st(4)
313: d9 c4 fld st,st(4)
315: d8 f4 fdiv st,st(4)
317: dd dc fstp st(4)
319: dd 45 e0 fldq [ebp-32]
322: dd dd fstp st(5)
324: d9 c3 fld st,st(3)
326: d8 c5 fadd st,st(5)
328: dd dc fstp st(4)
330: d9 c2 fld st,st(2)
332: d8 dc fcomp st,st(4)
334: 8b c8 movl ecx,eax
336: df e0 ffstswax
338: 9e sahf
339: 8b c1 movl eax,ecx
341: 7b 02 jnp 345
343: cd 68 int $104 ; trap-unordered
345: 73 1a jnb 373
347: 3b 7d d4 cmpl edi,[ebp-44] ; c
350: 75 1c jnz 380
352: ff 77 f3 pushl [edi-13] ; t
355: 8f 45 d4 popl [ebp-44] ; c
358: 8b d3 movl edx,ebx
360: e9 0b ff ff jmp 120
ff
365: 8b 5d d8 movl ebx,[ebp-40] ; j
368: e9 5b ff ff jmp 208
ff
373: 8b d3 movl edx,ebx
375: e9 fc fe ff jmp 120
ff
380: 89 7d d4 movl [ebp-44],edi ; c
383: eb e5 jmp 358
385: 90 nop
;; disassembly of #<Function pnpolytest>
;; formals:
;; constant vector:
0: (20)
1: (0.0d0 1.0d0 1.0d0 0.0d0 0.0d0 1.0d0 -0.5d0 -1.0d0 -1.0d0 -2.0d0 -2.5d0 ..)
2: excl::array-initialize
3: (0.0d0 0.0d0 1.0d0 1.0d0 2.0d0 3.0d0 2.0d0 3.0d0 0.0d0 -0.5d0 -1.0d0 ..)
4: "Count "
5: princ
6: 0.5d0
7: pnpoly
8: 1.5d0
9: -0.5d0
10: 0.75d0
11: 2.25d0
12: 0.0d0
13: 2.01d0
14: 2.5d0
15: -1.0d0
16: -1.5d0
17: -2.25d0
18: -0.25d0
19: -1.25d0
20: -2.5d0
;; code start: #x207af544:
0: 55 pushl ebp
1: 8b ec movl ebp,esp
3: 56 pushl esi
4: 81 ec ac 00 subl esp,$172 ; 43
00 00
10: 6a 50 pushb $80 ; 20
12: 8f 45 e0 popl [ebp-32] ; npol
15: 6a 00 pushb $0 ; 0
17: 8f 45 e4 popl [ebp-28] ; count
20: 8b d7 movl edx,edi
22: 33 c0 xorl eax,eax
24: b0 50 movb al,$80
26: 83 c4 10 addl esp,$16
29: 57 pushl edi
30: 68 9c 01 00 pushl $412 ; 103
00
35: 52 pushl edx
36: 50 pushl eax
37: 33 c9 xorl ecx,ecx
39: b1 04 movb cl,$4
41: ff 97 cb 00 call *[edi+203] ; make-svector
00 00
47: 89 45 dc movl [ebp-36],eax ; xp
50: 8b 56 32 movl edx,[esi+50] ; (20)
53: 83 c4 0c addl esp,$12
56: ff 76 36 pushl [esi+54] ; (0.0d0
1.0d0
1.0d0
0.0d0
0.0d0
1.0d0
-0.5d0
-1.0d0
-1.0d0
-2.0d0
-2.5d0
-2.0d0
-1.5d0
-0.5d0
1.0d0
1.0d0
0.0d0
-0.5d0
-1.0d0
-0.5d0)
59: 52 pushl edx
60: 50 pushl eax
61: 8b 5e 3a movl ebx,[esi+58] ; array-initialize
64: b1 03 movb cl,$3
66: ff d7 call *edi
68: 8b d7 movl edx,edi
70: 33 c0 xorl eax,eax
72: b0 50 movb al,$80
74: 83 c4 10 addl esp,$16
77: 57 pushl edi
78: 68 9c 01 00 pushl $412 ; 103
00
83: 52 pushl edx
84: 50 pushl eax
85: 33 c9 xorl ecx,ecx
87: b1 04 movb cl,$4
89: ff 97 cb 00 call *[edi+203] ; make-svector
00 00
95: 89 45 d8 movl [ebp-40],eax ; yp
98: 8b 56 32 movl edx,[esi+50] ; (20)
101: 83 c4 0c addl esp,$12
104: ff 76 3e pushl [esi+62] ; (0.0d0
0.0d0
1.0d0
1.0d0
2.0d0
3.0d0
2.0d0
3.0d0
0.0d0
-0.5d0
-1.0d0
-1.5d0
-2.0d0
-2.0d0
-1.5d0
-1.0d0
-0.5d0
-1.0d0
-1.0d0
-0.5d0)
107: 52 pushl edx
108: 50 pushl eax
109: 8b 5e 3a movl ebx,[esi+58] ; array-initialize
112: b1 03 movb cl,$3
114: ff d7 call *edi
116: 33 db xorl ebx,ebx
118: 81 fb 80 1a cmpl ebx,$400000 ; 100000
06 00
124: 7c 1d jl 155
126: 8b 46 42 movl eax,[esi+66] ; Count
129: 8b 5e 46 movl ebx,[esi+70] ; princ
132: b1 01 movb cl,$1
134: ff d7 call *edi
136: 8b 45 e4 movl eax,[ebp-28] ; count
139: 8b 5e 46 movl ebx,[esi+70] ; princ
142: b1 01 movb cl,$1
144: ff d7 call *edi
146: 8b 45 e4 movl eax,[ebp-28] ; count
149: f8 clc
150: c9 leave
151: 8b 75 fc movl esi,[ebp-4]
154: c3 ret
155: ff 76 4a pushl [esi+74] ; 0.5d0
158: 8f 45 d0 popl [ebp-48] ; (local 5)
161: 89 5d d4 movl [ebp-44],ebx ; i
164: ff 76 4a pushl [esi+74] ; 0.5d0
167: 8f 45 cc popl [ebp-52] ; (local 6)
170: 8b 45 e0 movl eax,[ebp-32] ; npol
173: 8b 55 dc movl edx,[ebp-36] ; xp
176: 83 c4 14 addl esp,$20
179: ff 75 cc pushl [ebp-52] ; (local 6)
182: ff 75 d0 pushl [ebp-48] ; (local 5)
185: ff 75 d8 pushl [ebp-40] ; yp
188: 52 pushl edx
189: 50 pushl eax
190: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
193: b1 05 movb cl,$5
195: ff d7 call *edi
197: 3b f8 cmpl edi,eax
199: 74 04 jz 205
201: 83 45 e4 04 addl [ebp-28],$4 ; count
205: ff 76 4a pushl [esi+74] ; 0.5d0
208: 8f 45 c8 popl [ebp-56] ; (local 7)
211: ff 76 52 pushl [esi+82] ; 1.5d0
214: 8f 45 c4 popl [ebp-60] ; (local 8)
217: 8b 45 e0 movl eax,[ebp-32] ; npol
220: 8b 55 dc movl edx,[ebp-36] ; xp
223: 83 c4 14 addl esp,$20
226: ff 75 c4 pushl [ebp-60] ; (local 8)
229: ff 75 c8 pushl [ebp-56] ; (local 7)
232: ff 75 d8 pushl [ebp-40] ; yp
235: 52 pushl edx
236: 50 pushl eax
237: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
240: b1 05 movb cl,$5
242: ff d7 call *edi
244: 3b f8 cmpl edi,eax
246: 74 04 jz 252
248: 83 45 e4 04 addl [ebp-28],$4 ; count
252: ff 76 56 pushl [esi+86] ; -0.5d0
255: 8f 45 c0 popl [ebp-64] ; (local 9)
258: ff 76 52 pushl [esi+82] ; 1.5d0
261: 8f 45 bc popl [ebp-68] ; (local 10)
264: 8b 45 e0 movl eax,[ebp-32] ; npol
267: 8b 55 dc movl edx,[ebp-36] ; xp
270: 83 c4 14 addl esp,$20
273: ff 75 bc pushl [ebp-68] ; (local 10)
276: ff 75 c0 pushl [ebp-64] ; (local 9)
279: ff 75 d8 pushl [ebp-40] ; yp
282: 52 pushl edx
283: 50 pushl eax
284: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
287: b1 05 movb cl,$5
289: ff d7 call *edi
291: 3b f8 cmpl edi,eax
293: 74 04 jz 299
295: 83 45 e4 04 addl [ebp-28],$4 ; count
299: ff 76 5a pushl [esi+90] ; 0.75d0
302: 8f 45 b8 popl [ebp-72] ; (local 11)
305: ff 76 5e pushl [esi+94] ; 2.25d0
308: 8f 45 b4 popl [ebp-76] ; (local 12)
311: 8b 45 e0 movl eax,[ebp-32] ; npol
314: 8b 55 dc movl edx,[ebp-36] ; xp
317: 83 c4 14 addl esp,$20
320: ff 75 b4 pushl [ebp-76] ; (local 12)
323: ff 75 b8 pushl [ebp-72] ; (local 11)
326: ff 75 d8 pushl [ebp-40] ; yp
329: 52 pushl edx
330: 50 pushl eax
331: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
334: b1 05 movb cl,$5
336: ff d7 call *edi
338: 3b f8 cmpl edi,eax
340: 74 04 jz 346
342: 83 45 e4 04 addl [ebp-28],$4 ; count
346: ff 76 62 pushl [esi+98] ; 0.0d0
349: 8f 45 b0 popl [ebp-80] ; (local 13)
352: ff 76 66 pushl [esi+102] ; 2.01d0
355: 8f 45 ac popl [ebp-84] ; (local 14)
358: 8b 45 e0 movl eax,[ebp-32] ; npol
361: 8b 55 dc movl edx,[ebp-36] ; xp
364: 83 c4 14 addl esp,$20
367: ff 75 ac pushl [ebp-84] ; (local 14)
370: ff 75 b0 pushl [ebp-80] ; (local 13)
373: ff 75 d8 pushl [ebp-40] ; yp
376: 52 pushl edx
377: 50 pushl eax
378: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
381: b1 05 movb cl,$5
383: ff d7 call *edi
385: 3b f8 cmpl edi,eax
387: 74 04 jz 393
389: 83 45 e4 04 addl [ebp-28],$4 ; count
393: ff 76 56 pushl [esi+86] ; -0.5d0
396: 8f 45 a8 popl [ebp-88] ; (local 15)
399: ff 76 6a pushl [esi+106] ; 2.5d0
402: 8f 45 a4 popl [ebp-92] ; (local 16)
405: 8b 45 e0 movl eax,[ebp-32] ; npol
408: 8b 55 dc movl edx,[ebp-36] ; xp
411: 83 c4 14 addl esp,$20
414: ff 75 a4 pushl [ebp-92] ; (local 16)
417: ff 75 a8 pushl [ebp-88] ; (local 15)
420: ff 75 d8 pushl [ebp-40] ; yp
423: 52 pushl edx
424: 50 pushl eax
425: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
428: b1 05 movb cl,$5
430: ff d7 call *edi
432: 3b f8 cmpl edi,eax
434: 74 04 jz 440
436: 83 45 e4 04 addl [ebp-28],$4 ; count
440: ff 76 6e pushl [esi+110] ; -1.0d0
443: 8f 45 a0 popl [ebp-96] ; (local 17)
446: ff 76 56 pushl [esi+86] ; -0.5d0
449: 8f 45 9c popl [ebp-100] ; (local 18)
452: 8b 45 e0 movl eax,[ebp-32] ; npol
455: 8b 55 dc movl edx,[ebp-36] ; xp
458: 83 c4 14 addl esp,$20
461: ff 75 9c pushl [ebp-100] ; (local 18)
464: ff 75 a0 pushl [ebp-96] ; (local 17)
467: ff 75 d8 pushl [ebp-40] ; yp
470: 52 pushl edx
471: 50 pushl eax
472: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
475: b1 05 movb cl,$5
477: ff d7 call *edi
479: 3b f8 cmpl edi,eax
481: 74 04 jz 487
483: 83 45 e4 04 addl [ebp-28],$4 ; count
487: ff 76 72 pushl [esi+114] ; -1.5d0
490: 8f 45 98 popl [ebp-104] ; (local 19)
493: ff 76 4a pushl [esi+74] ; 0.5d0
496: 8f 45 94 popl [ebp-108] ; (local 20)
499: 8b 45 e0 movl eax,[ebp-32] ; npol
502: 8b 55 dc movl edx,[ebp-36] ; xp
505: 83 c4 14 addl esp,$20
508: ff 75 94 pushl [ebp-108] ; (local 20)
511: ff 75 98 pushl [ebp-104] ; (local 19)
514: ff 75 d8 pushl [ebp-40] ; yp
517: 52 pushl edx
518: 50 pushl eax
519: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
522: b1 05 movb cl,$5
524: ff d7 call *edi
526: 3b f8 cmpl edi,eax
528: 74 04 jz 534
530: 83 45 e4 04 addl [ebp-28],$4 ; count
534: ff 76 76 pushl [esi+118] ; -2.25d0
537: 8f 45 90 popl [ebp-112] ; (local 21)
540: ff 76 6e pushl [esi+110] ; -1.0d0
543: 8f 45 8c popl [ebp-116] ; (local 22)
546: 8b 45 e0 movl eax,[ebp-32] ; npol
549: 8b 55 dc movl edx,[ebp-36] ; xp
552: 83 c4 14 addl esp,$20
555: ff 75 8c pushl [ebp-116] ; (local 22)
558: ff 75 90 pushl [ebp-112] ; (local 21)
561: ff 75 d8 pushl [ebp-40] ; yp
564: 52 pushl edx
565: 50 pushl eax
566: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
569: b1 05 movb cl,$5
571: ff d7 call *edi
573: 3b f8 cmpl edi,eax
575: 74 04 jz 581
577: 83 45 e4 04 addl [ebp-28],$4 ; count
581: ff 76 4a pushl [esi+74] ; 0.5d0
584: 8f 45 88 popl [ebp-120] ; (local 23)
587: ff 76 7a pushl [esi+122] ; -0.25d0
590: 8f 45 84 popl [ebp-124] ; (local 24)
593: 8b 45 e0 movl eax,[ebp-32] ; npol
596: 8b 55 dc movl edx,[ebp-36] ; xp
599: 83 c4 14 addl esp,$20
602: ff 75 84 pushl [ebp-124] ; (local 24)
605: ff 75 88 pushl [ebp-120] ; (local 23)
608: ff 75 d8 pushl [ebp-40] ; yp
611: 52 pushl edx
612: 50 pushl eax
613: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
616: b1 05 movb cl,$5
618: ff d7 call *edi
620: 3b f8 cmpl edi,eax
622: 74 04 jz 628
624: 83 45 e4 04 addl [ebp-28],$4 ; count
628: ff 76 4a pushl [esi+74] ; 0.5d0
631: 8f 45 80 popl [ebp-128] ; (local 25)
634: ff 76 7e pushl [esi+126] ; -1.25d0
637: 8f 85 7c ff popl [ebp-132] ; (local 26)
ff ff
643: 8b 45 e0 movl eax,[ebp-32] ; npol
646: 8b 55 dc movl edx,[ebp-36] ; xp
649: 83 c4 14 addl esp,$20
652: ff b5 7c ff pushl [ebp-132] ; (local 26)
ff ff
658: ff 75 80 pushl [ebp-128] ; (local 25)
661: ff 75 d8 pushl [ebp-40] ; yp
664: 52 pushl edx
665: 50 pushl eax
666: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
669: b1 05 movb cl,$5
671: ff d7 call *edi
673: 3b f8 cmpl edi,eax
675: 74 04 jz 681
677: 83 45 e4 04 addl [ebp-28],$4 ; count
681: ff 76 56 pushl [esi+86] ; -0.5d0
684: 8f 85 78 ff popl [ebp-136] ; (local 27)
ff ff
690: ff b6 82 00 pushl [esi+130] ; -2.5d0
00 00
696: 8f 85 74 ff popl [ebp-140] ; (local 28)
ff ff
702: 8b 45 e0 movl eax,[ebp-32] ; npol
705: 8b 55 dc movl edx,[ebp-36] ; xp
708: 83 c4 14 addl esp,$20
711: ff b5 74 ff pushl [ebp-140] ; (local 28)
ff ff
717: ff b5 78 ff pushl [ebp-136] ; (local 27)
ff ff
723: ff 75 d8 pushl [ebp-40] ; yp
726: 52 pushl edx
727: 50 pushl eax
728: 8b 5e 4e movl ebx,[esi+78] ; pnpoly
731: b1 05 movb cl,$5
733: ff d7 call *edi
735: 3b f8 cmpl edi,eax
737: 74 04 jz 743
739: 83 45 e4 04 addl [ebp-28],$4 ; count
743: 83 45 d4 04 addl [ebp-44],$4 ; i
747: 8b 5d d4 movl ebx,[ebp-44] ; i
750: e9 83 fd ff jmp 118
ff
755: 90 nop
Kevin Layer <Franz.COM at layer> http://www.franz.com/
Franz Inc., 1995 University Avenue, Suite 275, Berkeley, CA 94704, USA
Phone: (510) 548-3600 FAX: (510) 548-8253
|