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]