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 |