Adam Warner <[EMAIL PROTECTED]> writes:

> Could you possibly disassemble main and main2 so I can compare them?

CL-USER ==> (l "/tmp/matrix")
t
CL-USER ==> (disassemble 'main)
482A22D0:       .entry main()                ; function
     2E8:       pop     dword ptr [ebp-8]
     2EB:       lea     esp, [ebp-64]
     2EE:       mov     eax, ebp             ; No-arg-parsing entry point
     2F0:       mov     ecx, esp
     2F2:       sub     esp, 64
     2F5:       mov     edx, 120
     2FA:       mov     ebx, 120
     2FF:       mov     [ecx-4], eax
     302:       mov     ebp, ecx
     304:       mov     dword ptr [ebp-8], 1210721040
     30B:       jmp     L14
     310:       mov     [ebp-12], eax
     313:       mov     eax, ebp
     315:       mov     ecx, esp
     317:       sub     esp, 64
     31A:       mov     edx, 120
     31F:       mov     ebx, 120
     324:       mov     [ecx-4], eax
     327:       mov     ebp, ecx
     329:       mov     dword ptr [ebp-8], 1210721077
     330:       jmp     L14
     335:       mov     [ebp-24], eax
     338:       mov     eax, ebp
     33A:       mov     ecx, esp
     33C:       sub     esp, 64
     33F:       mov     edx, 120
     344:       mov     ebx, 120
     349:       mov     [ecx-4], eax
     34C:       mov     ebp, ecx
     34E:       mov     dword ptr [ebp-8], 1210721114
     355:       jmp     L14
     35A:       mov     [ebp-28], eax
     35D:       mov     ebx, esp
     35F:       sub     esp, 20
     362:       mov     edx, [#x482A22B0]    ; '(30 30)
     368:       mov     edi, [#x482A22B4]    ; :element-type
     36E:       mov     esi, [#x482A22B8]    ; '(unsigned-byte 32)
     374:       mov     ecx, [#x482A22BC]    ; :displaced-to
     37A:       mov     [ebx-16], ecx
     37D:       mov     [ebx-20], eax
     380:       mov     eax, [#x482A22C0]    ; #<FDEFINITION object for make-array>
     386:       mov     ecx, 20
     38B:       mov     [ebx-4], ebp
     38E:       mov     ebp, ebx
     390:       call    dword ptr [eax+5]
     393:       mov     esp, ebx
     395:       mov     [ebp-16], edx
     398:       xor     ecx, ecx
     39A:       jmp     L7
     39F: L0:   mov     ebx, [ebp-12]
     3A2:       mov     esi, [ebp-24]
     3A5:       mov     edi, 0
     3AA:       mov     dword ptr [ebp-20], 4294967176
     3B1:       mov     dword ptr [ebp-32], 0
     3B8:       mov     dword ptr [ebp-36], 0
     3BF:       jmp     L6
     3C4: L1:   mov     eax, [ebp-20]
     3C7:       add     eax, 120
     3CA:       mov     [ebp-20], eax
     3CD:       mov     dword ptr [ebp-40], 0
     3D4:       jmp     L5
     3D6: L2:   mov     edi, 0
     3DB:       mov     dword ptr [ebp-32], 4294967176
     3E2:       mov     dword ptr [ebp-44], 0
     3E9:       jmp     L4
     3EB: L3:   mov     eax, [ebp-32]
     3EE:       add     eax, 120
     3F1:       mov     [ebp-32], eax
     3F4:       mov     eax, [ebp-20]
     3F7:       add     eax, [ebp-44]
     3FA:       mov     edx, [ebx+eax+1]
     3FE:       mov     eax, [ebp-32]
     401:       add     eax, [ebp-40]
     404:       mov     eax, [esi+eax+1]
     408:       mov     [ebp-48], eax
     40B:       mov     eax, edx
     40D:       mul     eax, [ebp-48]
     410:       add     edi, eax
     412:       mov     eax, [ebp-44]
     415:       add     eax, 4
     418:       mov     [ebp-44], eax
     41B: L4:   cmp     dword ptr [ebp-44], 120
     41F:       jl      L3
     421:       mov     eax, [ebp-20]
     424:       add     eax, [ebp-40]
     427:       mov     edx, [ebp-28]
     42A:       mov     [edx+eax+1], edi
     42E:       mov     eax, [ebp-40]
     431:       add     eax, 4
     434:       mov     [ebp-40], eax
     437: L5:   cmp     dword ptr [ebp-40], 120
     43B:       jl      L2
     43D:       mov     eax, [ebp-36]
     440:       add     eax, 4

CL-USER ==> (l "/tmp/matrix2")
t
CL-USER ==> (disassemble 'main2)
482C6038:       .entry main2()               ; function
     050:       pop     dword ptr [ebp-8]
     053:       lea     esp, [ebp-64]
     056:       mov     eax, ebp             ; No-arg-parsing entry point
     058:       mov     ecx, esp
     05A:       sub     esp, 64
     05D:       mov     edx, 120
     062:       mov     ebx, 120
     067:       mov     [ecx-4], eax
     06A:       mov     ebp, ecx
     06C:       mov     dword ptr [ebp-8], 1210867832
     073:       jmp     L14
     078:       mov     [ebp-12], eax
     07B:       mov     eax, ebp
     07D:       mov     ecx, esp
     07F:       sub     esp, 64
     082:       mov     edx, 120
     087:       mov     ebx, 120
     08C:       mov     [ecx-4], eax
     08F:       mov     ebp, ecx
     091:       mov     dword ptr [ebp-8], 1210867869
     098:       jmp     L14
     09D:       mov     [ebp-24], eax
     0A0:       mov     eax, ebp
     0A2:       mov     ecx, esp
     0A4:       sub     esp, 64
     0A7:       mov     edx, 120
     0AC:       mov     ebx, 120
     0B1:       mov     [ecx-4], eax
     0B4:       mov     ebp, ecx
     0B6:       mov     dword ptr [ebp-8], 1210867906
     0BD:       jmp     L14
     0C2:       mov     [ebp-28], eax
     0C5:       mov     ebx, esp
     0C7:       sub     esp, 20
     0CA:       mov     edx, [#x482C6018]    ; '(30 30)
     0D0:       mov     edi, [#x482C601C]    ; :element-type
     0D6:       mov     esi, [#x482C6020]    ; '(unsigned-byte 32)
     0DC:       mov     ecx, [#x482C6024]    ; :displaced-to
     0E2:       mov     [ebx-16], ecx
     0E5:       mov     [ebx-20], eax
     0E8:       mov     eax, [#x482C6028]    ; #<FDEFINITION object for make-array>
     0EE:       mov     ecx, 20
     0F3:       mov     [ebx-4], ebp
     0F6:       mov     ebp, ebx
     0F8:       call    dword ptr [eax+5]
     0FB:       mov     esp, ebx
     0FD:       mov     [ebp-16], edx
     100:       mov     dword ptr [ebp-44], 0
     107:       jmp     L7
     10C: L0:   mov     ebx, 0
     111:       mov     esi, 4294967176
     116:       xor     edi, edi
     118:       mov     dword ptr [ebp-20], 0
     11F:       jmp     L6
     121: L1:   add     esi, 120
     124:       mov     dword ptr [ebp-32], 0
     12B:       jmp     L5
     12D: L2:   mov     ebx, 0
     132:       mov     edi, 4294967176
     137:       mov     dword ptr [ebp-36], 0
     13E:       jmp     L4
     140: L3:   add     edi, 120
     143:       mov     eax, esi
     145:       add     eax, [ebp-36]
     148:       mov     ecx, [ebp-12]
     14B:       mov     edx, [ecx+eax+1]
     14F:       mov     eax, edi
     151:       add     eax, [ebp-32]
     154:       mov     ecx, [ebp-24]
     157:       mov     eax, [ecx+eax+1]
     15B:       mov     [ebp-40], eax
     15E:       mov     eax, edx
     160:       mul     eax, [ebp-40]
     163:       add     ebx, eax
     165:       mov     eax, [ebp-36]
     168:       add     eax, 4
     16B:       mov     [ebp-36], eax
     16E: L4:   cmp     dword ptr [ebp-36], 120
     172:       jl      L3
     174:       mov     eax, esi
     176:       add     eax, [ebp-32]
     179:       mov     ecx, [ebp-28]
     17C:       mov     [ecx+eax+1], ebx
     180:       mov     eax, [ebp-32]
     183:       add     eax, 4
     186:       mov     [ebp-32], eax
     189: L5:   cmp     dword ptr [ebp-32], 120
     18D:       jl      L2
     18F:       mov     eax, [ebp-20]
     192:       add     eax, 4
     195:       mov     [ebp-20], eax
     198: L6:   cmp     dword ptr [ebp-20], 120
     19C:       jl      L1
     19E:       mov     ecx, [ebp-44]
     1A1:       add     ecx, 4
     1A4:       mov     [ebp-44], ecx
     1A7: L7:   cmp     dword ptr [ebp-44], 40000
     1AE:       jl      L0
     1B4:       mov     ebx, esp
     1B6:       sub     esp, 12
     1B9:       mov     edx, [ebp-16]
     1BC:       xor     edi, edi
     1BE:       mov     esi, #x28F0000B      ; nil
     1C3:       mov     eax, [#x482C602C]    ; #<FDEFINITION object for 
kernel:%with-array-data>
     1C9:       mov     ecx, 12
     1CE:       mov     [ebx-4], ebp
     1D1:       mov     ebp, ebx
     1D3:       call    dword ptr [eax+5]
     1D6:       jmp     L8
     1D8:       mov     edi, #x28F0000B      ; nil
     1DD:       mov     ebx, esp
     1DF: L8:   mov     esp, ebx
     1E1:       mov     eax, [edx+edi+1]
     1E5:       mov     [ebp-12], eax
     1E8:       mov     eax, [ebp-16]
     1EB:       mov     edi, [eax+25]
     1EE:       shl     edi, 1
     1F0:       add     edi, 12
     1F3:       mov     ebx, esp
     1F5:       sub     esp, 12
     1F8:       mov     edx, [ebp-16]
     1FB:       mov     esi, #x28F0000B      ; nil
     200:       mov     eax, [#x482C602C]    ; #<FDEFINITION object for 
kernel:%with-array-data>
     206:       mov     ecx, 12
     20B:       mov     [ebx-4], ebp
     20E:       mov     ebp, ebx
     210:       call    dword ptr [eax+5]
     213:       jmp     L9
     215:       mov     edi, #x28F0000B      ; nil
     21A:       mov     ebx, esp
     21C: L9:   mov     esp, ebx
     21E:       mov     eax, [edx+edi+1]
     222:       mov     [ebp-20], eax
     225:       mov     eax, [ebp-16]
     228:       mov     eax, [eax+25]
     22B:       sar     eax, 2
     22E:       mov     edi, eax
     230:       shl     edi, 2
     233:       sub     edi, eax
     235:       shl     edi, 2
     238:       add     edi, 8
     23B:       mov     ebx, esp
     23D:       sub     esp, 12
     240:       mov     edx, [ebp-16]
     243:       mov     esi, #x28F0000B      ; nil
     248:       mov     eax, [#x482C602C]    ; #<FDEFINITION object for 
kernel:%with-array-data>
     24E:       mov     ecx, 12
     253:       mov     [ebx-4], ebp
     256:       mov     ebp, ebx
     258:       call    dword ptr [eax+5]
     25B:       jmp     L10
     25D:       mov     edi, #x28F0000B      ; nil
     262:       mov     ebx, esp
     264: L10:  mov     esp, ebx
     266:       mov     eax, [edx+edi+1]
     26A:       mov     [ebp-24], eax
     26D:       mov     eax, [ebp-16]
     270:       mov     edi, [eax+25]
     273:       shl     edi, 2
     276:       add     edi, 16
     279:       mov     ebx, esp
     27B:       sub     esp, 12
     27E:       mov     edx, [ebp-16]
     281:       mov     esi, #x28F0000B      ; nil
     286:       mov     eax, [#x482C602C]    ; #<FDEFINITION object for 
kernel:%with-array-data>
     28C:       mov     ecx, 12
     291:       mov     [ebx-4], ebp
     294:       mov     ebp, ebx
     296:       call    dword ptr [eax+5]
     299:       jmp     L11
     29B:       mov     edi, #x28F0000B      ; nil
     2A0:       mov     ebx, esp
     2A2: L11:  mov     esp, ebx
     2A4:       mov     eax, [edx+edi+1]
     2A8:       mov     [ebp-28], eax
     2AB:       mov     edx, 686817319       ; t
     2B0:       mov     edi, [#x482C6030]    ; "~D ~D ~D ~D~%"
     2B6:       mov     ecx, [ebp-12]
     2B9:       test    ecx, 3758096384
     2BF:       jne     #x482C6360
     2C5:       lea     esi, [ecx*4]
     2CC:       mov     ebx, [ebp-20]
     2CF:       test    ebx, 3758096384
     2D5:       jne     #x482C63B9
     2DB:       lea     ecx, [ebx*4]
     2E2:       mov     [ebp-16], ecx
     2E5:       mov     ecx, [ebp-24]
     2E8:       test    ecx, 3758096384
     2EE:       jne     #x482C6412
     2F4:       lea     ebx, [ecx*4]
     2FB:       mov     [ebp-20], ebx
     2FE:       mov     ecx, [ebp-28]
     301:       test    ecx, 3758096384
     307:       jne     #x482C646B
     30D:       lea     ebx, [ecx*4]
     314:       mov     [ebp-24], ebx
     317:       mov     eax, [#x482C6034]    ; #<FDEFINITION object for format>
     31D:       mov     ecx, 24
     322:       push    dword ptr [ebp-8]
     325:       jmp     dword ptr [eax+5]

Reply via email to