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
@ -832,7 +793,7 @@ fb_get_icon_number:
je .end je .end
dec ebp dec ebp
test ebp,ebp test ebp,ebp
je .end je .end
@@: @@:
mov edx,fb_ini_file_end mov edx,fb_ini_file_end
sub edx,ebp sub edx,ebp
@ -870,27 +831,27 @@ fb_get_icon_number:
cmp eax,fb_ini_file_start cmp eax,fb_ini_file_start
je @f je @f
dec eax dec eax
cmp [eax],byte 15 cmp [eax],byte 15
ja .end ja .end
@@: @@:
xor ebx,ebx xor ebx,ebx
xor eax,eax xor eax,eax
mov ecx,9 mov ecx,9
call .calculate call .calculate
cmp al,0x30 cmp al,0x30
jb .end jb .end
cmp al,0x39 cmp al,0x39
ja .end ja .end
sub eax,0x30 sub eax,0x30
@@: @@:
call .calculate_1 call .calculate_1
cmp al,0x30 cmp al,0x30
jb @f jb @f
cmp al,0x39 cmp al,0x39
ja @f ja @f
sub eax,0x30 sub eax,0x30
lea ebx,[ebx+ebx*4] lea ebx,[ebx+ebx*4]
shl ebx,1 shl ebx,1
dec ecx dec ecx