#15658: System freeze after 3-rd icon when booting
-----------------------------+----------------------------
Reporter: X512 | Owner: nobody
Type: bug | Status: closed
Priority: normal | Milestone: Unscheduled
Component: System/Kernel | Version: R1/Development
Resolution: fixed | Keywords:
Blocked By: | Blocking:
Has a Patch: 0 | Platform: x86
-----------------------------+----------------------------
Comment (by X512):
Does generated code of system_time OK? It looks less efficient than older
version. system_time is time critical function and should run as fast as
possible.
{{{
00000b54 <system_time>:
b54: 55 push ebp
b55: 89 e5 mov ebp,esp
b57: 83 ec 5c sub esp,0x5c
b5a: 57 push edi
b5b: 56 push esi
b5c: 53 push ebx
b5d: e8 fc ff ff ff call b5e <system_time+0xa>
b62: 89 45 c8 mov DWORD PTR [ebp-56],eax
b65: 89 55 cc mov DWORD PTR [ebp-52],edx
b68: 89 45 f0 mov DWORD PTR [ebp-16],eax
b6b: 89 55 f4 mov DWORD PTR [ebp-12],edx
b6e: c7 45 f8 00 00 00 00 mov DWORD PTR [ebp-8],0x0
b75: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-4],0x0
b7c: 89 55 b0 mov DWORD PTR [ebp-80],edx
b7f: c7 45 b4 00 00 00 00 mov DWORD PTR [ebp-76],0x0
b86: 8b 0d 00 00 00 00 mov ecx,DWORD PTR ds:0x0
b8c: 8b 45 b0 mov eax,DWORD PTR [ebp-80]
b8f: f7 e1 mul ecx
b91: 8b 75 b0 mov esi,DWORD PTR [ebp-80]
b94: 31 db xor ebx,ebx
b96: 0f af f3 imul esi,ebx
b99: 89 45 c0 mov DWORD PTR [ebp-64],eax
b9c: 8b 45 b4 mov eax,DWORD PTR [ebp-76]
b9f: 0f af c1 imul eax,ecx
ba2: 01 f2 add edx,esi
ba4: 89 55 c4 mov DWORD PTR [ebp-60],edx
ba7: 8b 55 cc mov edx,DWORD PTR [ebp-52]
baa: 23 15 bc 00 00 00 and edx,DWORD PTR ds:0xbc
bb0: 89 55 b4 mov DWORD PTR [ebp-76],edx
bb3: 01 45 c4 add DWORD PTR [ebp-60],eax
bb6: 8b 45 c8 mov eax,DWORD PTR [ebp-56]
bb9: 23 05 b8 00 00 00 and eax,DWORD PTR ds:0xb8
bbf: 89 45 b0 mov DWORD PTR [ebp-80],eax
bc2: f7 e1 mul ecx
bc4: 8b 75 b0 mov esi,DWORD PTR [ebp-80]
bc7: 0f af f3 imul esi,ebx
bca: 89 45 b8 mov DWORD PTR [ebp-72],eax
bcd: 8b 45 b4 mov eax,DWORD PTR [ebp-76]
bd0: 0f af c1 imul eax,ecx
bd3: 01 f2 add edx,esi
bd5: 89 55 bc mov DWORD PTR [ebp-68],edx
bd8: 8b 55 c4 mov edx,DWORD PTR [ebp-60]
bdb: 8b 75 c4 mov esi,DWORD PTR [ebp-60]
bde: 31 ff xor edi,edi
be0: 01 45 bc add DWORD PTR [ebp-68],eax
be3: 8b 45 c0 mov eax,DWORD PTR [ebp-64]
be6: 89 c2 mov edx,eax
be8: 31 c0 xor eax,eax
bea: 8b 4d b8 mov ecx,DWORD PTR [ebp-72]
bed: 8b 5d bc mov ebx,DWORD PTR [ebp-68]
bf0: 01 c1 add ecx,eax
bf2: 11 d3 adc ebx,edx
bf4: 39 da cmp edx,ebx
bf6: 77 06 ja bfe <system_time+0xaa>
bf8: 75 0a jne c04 <system_time+0xb0>
bfa: 39 c8 cmp eax,ecx
bfc: 76 06 jbe c04 <system_time+0xb0>
bfe: 83 c6 01 add esi,0x1
c01: 83 d7 00 adc edi,0x0
c04: 89 4d d0 mov DWORD PTR [ebp-48],ecx
c07: 89 5d d4 mov DWORD PTR [ebp-44],ebx
c0a: 89 75 d8 mov DWORD PTR [ebp-40],esi
c0d: 89 7d dc mov DWORD PTR [ebp-36],edi
c10: 89 d9 mov ecx,ebx
c12: 31 db xor ebx,ebx
c14: 89 f0 mov eax,esi
c16: 89 fa mov edx,edi
c18: 89 c2 mov edx,eax
c1a: 31 c0 xor eax,eax
c1c: 09 c1 or ecx,eax
c1e: 09 d3 or ebx,edx
c20: 89 4d e0 mov DWORD PTR [ebp-32],ecx
c23: 89 5d e4 mov DWORD PTR [ebp-28],ebx
c26: 89 7d e8 mov DWORD PTR [ebp-24],edi
c29: c7 45 ec 00 00 00 00 mov DWORD PTR [ebp-20],0x0
c30: 89 c8 mov eax,ecx
c32: 89 da mov edx,ebx
c34: 5b pop ebx
c35: 5e pop esi
c36: 5f pop edi
c37: 89 ec mov esp,ebp
c39: 5d pop ebp
c3a: c3 ret
c3b: 90 nop
}}}
--
Ticket URL: <https://dev.haiku-os.org/ticket/15658#comment:6>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.