File Browser control - some code optimization for r9682

git-svn-id: svn://kolibrios.org@9690 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Marat Zakiyanov 2022-02-06 19:47:41 +00:00
parent 2e3c29de7d
commit 8f544cdd1d

View File

@ -517,6 +517,21 @@ align 4
mov [ebx],dl mov [ebx],dl
jmp .size_convert_end jmp .size_convert_end
;----------------------------------------- ;-----------------------------------------
.qword_div:
mov eax,[edx-40+32]
mov ebx,[edx-40+32+4]
@@: ; /1024
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
dec ecx
jnz @b
; /(1024*1024)
shr eax,20
test eax,eax
ret
;-----------------------------------------
align 4 align 4
.copy_size: .copy_size:
;/0x1000000000000000 - EB ;/0x1000000000000000 - EB
@ -528,88 +543,34 @@ align 4
mov [eax+6],dword ' ' mov [eax+6],dword ' '
mov [eax+6+4],word ' ' mov [eax+6+4],word ' '
push ebx edx push ebx edx
mov eax,[edx-40+32] push ecx
mov ebx,[edx-40+32+4] mov ecx,4
; /1024 call .qword_div
shrd eax,ebx,5 ; /32 pop ecx
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /1024
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /1024
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /1024
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /(1024*1024)
shr eax,20
test eax,eax
jz @f jz @f
mov dl,byte 'E' ; Exa Byte mov dl,byte 'E' ; Exa Byte
jmp .call_decimal_string jmp .call_decimal_string
@@: @@:
mov eax,[edx-40+32] push ecx
mov ebx,[edx-40+32+4] mov ecx,3
; /1024 call .qword_div
shrd eax,ebx,5 ; /32 pop ecx
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /1024
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /1024
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /(1024*1024)
shr eax,20
test eax,eax
jz @f jz @f
mov dl,byte 'P' ; Peta Byte mov dl,byte 'P' ; Peta Byte
jmp .call_decimal_string jmp .call_decimal_string
@@: @@:
mov eax,[edx-40+32] push ecx
mov ebx,[edx-40+32+4] mov ecx,2
; /1024 call .qword_div
shrd eax,ebx,5 ; /32 pop ecx
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /1024
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /(1024*1024)
shr eax,20
test eax,eax
jz @f jz @f
mov dl,byte 'T' ; Tera Byte mov dl,byte 'T' ; Tera Byte
jmp .call_decimal_string jmp .call_decimal_string
@@: @@:
mov eax,[edx-40+32] push ecx
mov ebx,[edx-40+32+4] mov ecx,1
; /1024 call .qword_div
shrd eax,ebx,5 ; /32 pop ecx
shr ebx,5 ; /32
shrd eax,ebx,5 ; /32
shr ebx,5 ; /32
; /(1024*1024)
shr eax,20
test eax,eax
jz @f jz @f
mov dl,byte 'G' ; Giga Byte mov dl,byte 'G' ; Giga Byte
jmp .call_decimal_string jmp .call_decimal_string