codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
From DMD: _D11benchmark_d14longArithmeticFllZv comdat assume CS:_D11benchmark_d14longArithmeticFllZv L0: sub ESP,028h push EBX call near ptr _clock mov 010h[ESP],EAX mov EDX,03Ch[ESP] mov EAX,038h[ESP] mov 018h[ESP],EAX mov 01Ch[ESP],EDX mov 020h[ESP],EAX mov 024h[ESP],EDX cmp EDX,034h[ESP] jg LDE jl L3B cmp EAX,030h[ESP] jae LDE L3B: mov EAX,020h[ESP] mov EDX,024h[ESP] add dword ptr 020h[ESP],1 adc dword ptr 024h[ESP],0 sub 018h[ESP],EAX sbb 01Ch[ESP],EDX mov EAX,020h[ESP] mov EDX,024h[ESP] add dword ptr 020h[ESP],1 adc dword ptr 024h[ESP],0 add 018h[ESP],EAX adc 01Ch[ESP],EDX mov EBX,020h[ESP] mov ECX,024h[ESP] add dword ptr 020h[ESP],1 adc dword ptr 024h[ESP],0 mov EAX,018h[ESP] mov EDX,01Ch[ESP] imul ECX,EAX imul EDX,EBX add ECX,EDX mul EBX add EDX,ECX mov 018h[ESP],EAX mov 01Ch[ESP],EDX mov EBX,020h[ESP] mov ECX,024h[ESP] add dword ptr 020h[ESP],1 adc dword ptr 024h[ESP],0 push ESI push EDI call near ptr __LDIV@ pop EDI pop ESI mov 018h[ESP],EAX mov 01Ch[ESP],EDX mov EDX,024h[ESP] mov EAX,020h[ESP] cmp EDX,034h[ESP] jl L3B jg LDE cmp EAX,030h[ESP] jb L3B LDE: push dword ptr 034h[ESP] push dword ptr 034h[ESP] call near ptr _clock sub EAX,018h[ESP] mov 010h[ESP],EAX fild dword ptr 010h[ESP] sub ESP,8 fstp qword ptr [ESP] push offset FLAT:_DATA call near ptr _printf push dword ptr 038h[ESP] push dword ptr 038h[ESP] push offset FLAT:_DATA[03Ch] call near ptr _printf push dword ptr 03Ch[ESP] push dword ptr 03Ch[ESP] push offset FLAT:_DATA[048h] call near ptr _printf add ESP,02Ch pop EBX add ESP,028h ret 010h _D11benchmark_d14longArithmeticFllZv ends _D11benchmark_d12nested_loopsFiZv comdat assume CS:_D11benchmark_d12nested_loopsFiZv L0: sub ESP,01Ch push EBX push EBP push ESI push EDI mov EBX,EAX call near ptr _clock mov 018h[ESP],EAX xor ESI,ESI mov 01Ch[ESP],ESI test EBX,EBX jle L84 L1C: xor ECX,ECX mov 020h[ESP],ECX test EBX,EBX jle L7A L26: xor EDX,EDX mov 024h[ESP],EDX test EBX,EBX jle L70 L30: xor EBP,EBP test EBX,EBX jle L66 L36: xor EDI,EDI test EBX,EBX jle L61 L3C: xor ECX,ECX test EBX,EBX jle L5C mov EDX,020h[ESP] add EDX,01Ch[ESP] add EDX,024h[ESP] add EDX,EBP add EDX,EDI L52: lea EAX,[EDX][ECX] add ESI,EAX inc ECX cmp ECX,EBX jl L52 L5C: inc EDI cmp EDI,EBX jl L3C L61: inc EBP cmp EBP,EBX jl L36 L66: inc dword ptr 024h[ESP] cmp 024h[ESP],EBX jl L30 L70: inc dword ptr 020h[ESP] cmp 020h[ESP],EBX jl L26 L7A: inc dword ptr 01Ch[ESP] cmp 01Ch[ESP],EBX jl L1C L84: push ESI call near ptr _clock sub EAX,01Ch[ESP] mov 014h[ESP],EAX fild dword ptr 014h[ESP] sub ESP,8 fstp qword ptr [ESP] push offset FLAT:_DATA[05Ch] call near ptr _printf add ESP,010h pop EDI pop ESI pop EBP pop EBX add ESP,01Ch ret _D11benchmark_d12nested_loopsFiZv ends __Dmain comdat assume CS:__Dmain L0: push EAX push 2 push 0540BE400h push 2 push 08FA6AE00h call near ptr _D11benchmark_d14longArithmeticFllZv mov EAX,028h call near ptr _D11benchmark_d12nested_loopsFiZv xor EAX,EAX pop ECX ret __Dmain ends end =================================================== From GCC: .def _nested_loops; .scl 2; .type 32; .endef _nested_loops: pushl %ebp pushl %edi pushl %esi xorl %esi, %esi pushl %ebx subl $60, %esp movl 80(%esp), %ebx call _clock testl %ebx, %ebx movl %eax, 36(%esp) jle L15 leal (%ebx,%ebx), %eax movl %eax, 56(%esp) movl $0, 40(%esp) L4: movl 40(%esp), %edx movl 56(%esp), %eax movl $0, 44(%esp) leal (%ebx,%edx), %edx movl %eax, 52(%esp) movl %edx, 28(%esp) L14: movl 40(%esp), %edx movl 44(%esp), %eax movl $0, 48(%esp) addl %edx, %eax movl 44(%esp), %edx addl 28(%esp), %edx movl %eax, 32(%esp) movl %edx, 20(%esp) L12: movl 48(%esp), %edx movl 52(%esp), %eax movl 48(%esp), %edi movl 48(%esp), %ebp addl 20(%esp), %edi addl 32(%esp), %ebp addl %eax, %edx movl %edx, 24(%esp) L10: movl %ebp, %ecx .p2align 4,,7 L8: xorl %edx, %edx .p2align 4,,7 L5: leal (%edx,%ecx), %eax addl $1, %edx addl %eax, %esi cmpl %ebx, %edx jne L5 addl $1, %ecx cmpl %ecx, %edi jne L8 addl $1, %edi addl $1, %ebp cmpl 24(%esp), %edi jne L10 addl $1, 48(%esp) cmpl %ebx, 48(%esp) jne L12 addl $1, 44(%esp) addl $1, 52(%esp) cmpl %ebx, 44(%esp) jne L14 addl $1, 40(%esp) addl $1, 56(%esp) cmpl %ebx, 40(%esp) jne L4 L15: call _clock movl %esi, 12(%esp) subl 36(%esp), %eax pushl %eax fildl (%esp) addl $4, %esp fstpl 4(%esp) movl $LC0, (%esp) call _printf addl $60, %esp popl %ebx popl %esi popl %edi popl %ebp ret .def ___divdi3; .scl 2; .type 32; .endef .section .rdata,"dr" .align 4 LC2: .ascii "Long arithmetic elapsed time: %1.0f ms with longMax %I64d\12\0" LC3: .ascii " i: %I64d\12\0" LC4: .ascii " longResult: %I64d\12\0" .text .p2align 4,,15 .globl _longArithmetic .def _longArithmetic; .scl 2; .type 32; .endef _longArithmetic: pushl %ebp pushl %edi pushl %esi pushl %ebx subl $92, %esp movl 116(%esp), %edx movl 124(%esp), %ecx movl 112(%esp), %eax movl %edx, 44(%esp) movl 120(%esp), %edx movl %ecx, 36(%esp) movl %eax, 40(%esp) movl %edx, 32(%esp) call _clock movl 36(%esp), %ecx cmpl %ecx, 44(%esp) movl %eax, %ebp jl L21 jle L32 L23: movl 40(%esp), %eax movl 44(%esp), %edx movl %eax, 80(%esp) movl %edx, 84(%esp) movl %eax, 48(%esp) movl %edx, 52(%esp) jmp L24 L32: movl 32(%esp), %ebx cmpl %ebx, 40(%esp) jae L23 L21: movl 40(%esp), %edx movl 44(%esp), %ecx movl 44(%esp), %ebx movl 40(%esp), %esi addl $4, %edx movl 44(%esp), %edi adcl $0, %ecx movl 40(%esp), %eax movl %ecx, 60(%esp) movl 40(%esp), %ecx movl %edx, 56(%esp) movl 44(%esp), %edx addl $1, %ecx adcl $0, %ebx addl $2, %esi adcl $0, %edi addl $3, %eax adcl $0, %edx movl %ecx, 64(%esp) movl 44(%esp), %ecx movl %edx, 76(%esp) movl 40(%esp), %edx movl %ebx, 68(%esp) movl %eax, 72(%esp) movl %ecx, 84(%esp) movl %edx, 80(%esp) movl %edx, 48(%esp) movl %ecx, 52(%esp) .p2align 4,,7 L31: movl 80(%esp), %eax movl %edi, %ebx movl 84(%esp), %edx subl 48(%esp), %eax sbbl 52(%esp), %edx addl 64(%esp), %eax adcl 68(%esp), %edx imull %eax, %ebx movl %edx, %ecx imull %esi, %ecx mull %esi addl %ebx, %ecx movl 76(%esp), %ebx leal (%ecx,%edx), %edx movl 72(%esp), %ecx movl %eax, (%esp) movl %edx, 4(%esp) movl %ebx, 12(%esp) movl %ecx, 8(%esp) call ___divdi3 addl $4, 48(%esp) adcl $0, 52(%esp) addl $4, 56(%esp) adcl $0, 60(%esp) addl $4, 64(%esp) adcl $0, 68(%esp) addl $4, %esi adcl $0, %edi movl %eax, 80(%esp) movl 56(%esp), %eax movl %edx, 84(%esp) movl 60(%esp), %edx addl $4, 72(%esp) adcl $0, 76(%esp) addl $-4, %eax adcl $-1, %edx cmpl %edx, 36(%esp) jg L31 jge L33 L24: call _clock movl 32(%esp), %edx movl 36(%esp), %ecx movl %edx, 12(%esp) movl %ecx, 16(%esp) subl %ebp, %eax pushl %eax fildl (%esp) addl $4, %esp fstpl 4(%esp) movl $LC2, (%esp) call _printf movl 52(%esp), %ebx movl 48(%esp), %ecx movl $LC3, (%esp) movl %ebx, 8(%esp) movl %ecx, 4(%esp) call _printf movl 80(%esp), %eax movl 84(%esp), %edx movl $LC4, 112(%esp) movl %eax, 116(%esp) movl %edx, 120(%esp) addl $92, %esp popl %ebx popl %esi popl %edi popl %ebp jmp _printf .p2align 4,,7 L33: cmpl %eax, 32(%esp) ja L31 jmp L24 .def ___main; .scl 2; .type 32; .endef .p2align 4,,15 .globl _main .def _main; .scl 2; .type 32; .endef _main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp pushl %edi pushl %esi xorl %esi, %esi pushl %ebx pushl %ecx subl $72, %esp call ___main movl $-1884901888, 8(%esp) movl $2, 12(%esp) movl $1410065408, (%esp) movl $2, 4(%esp) call _longArithmetic call _clock movl $0, 40(%esp) movl $2340, 48(%esp) movl %eax, 36(%esp) L35: movl 48(%esp), %eax subl $1560, %eax movl %eax, 64(%esp) movl 48(%esp), %eax movl %eax, 60(%esp) movl 40(%esp), %eax movl %eax, 52(%esp) addl $40, %eax movl %eax, 28(%esp) L41: movl 60(%esp), %eax movl $0, 44(%esp) movl %eax, 56(%esp) movl 64(%esp), %eax movl %eax, 68(%esp) movl 52(%esp), %eax addl $40, %eax movl %eax, 32(%esp) L39: movl 44(%esp), %ebp movl 32(%esp), %ebx movl 68(%esp), %edi addl 52(%esp), %ebp addl 44(%esp), %ebx L37: movl %ebp, %edx movl %edi, %ecx L44: leal (%edx,%ecx), %eax addl $1, %edx addl %eax, %esi addl $39, %ecx cmpl %ebx, %edx jne L44 addl $39, %edi addl $1, %ebp addl $1, %ebx cmpl 56(%esp), %edi jne L37 addl $1, 44(%esp) addl $39, 56(%esp) addl $39, 68(%esp) cmpl $40, 44(%esp) jne L39 addl $1, 52(%esp) movl 28(%esp), %eax addl $39, 64(%esp) addl $39, 60(%esp) cmpl %eax, 52(%esp) jne L41 addl $1, 40(%esp) addl $39, 48(%esp) cmpl $40, 40(%esp) jne L35 call _clock movl %esi, 12(%esp) subl 36(%esp), %eax pushl %eax fildl (%esp) addl $4, %esp fstpl 4(%esp) movl $LC0, (%esp) call _printf
Private
[
?
]
Run code
Submit