Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6847 → Rev 6851

/programs/fs/kfar/trunk/zlib/trees.asm
201,7 → 201,7
mov eax,[value]
mov ecx,Buf_size
sub ecx,[edi+deflate_state.bi_valid]
shr eax,cl
sar eax,cl
mov [edi+deflate_state.bi_buf],ax
mov eax,[length]
sub eax,Buf_size
1408,12 → 1408,8
cmp ecx,[blcodes]
jge .cycle0end ;for (..;..<..;..)
; Tracev((stderr, "\nbl code %2d ", bl_order[ecx]));
mov eax,ecx
add eax,bl_order
movzx eax,byte[eax]
imul eax,sizeof.ct_data
add eax,edi
movzx eax,word[eax+deflate_state.bl_tree+Len]
movzx eax,byte[ecx+bl_order]
movzx eax,word[edi+sizeof.ct_data*eax+deflate_state.bl_tree+Len]
stdcall send_bits, edi, eax, 3
inc ecx
jmp .cycle0
1556,7 → 1552,7
; s->last_lit));
 
cmp eax,[opt_lenb]
jg .end1 ;if (..<=..)
ja .end1 ;if (..<=..)
mov [opt_lenb],eax
jmp .end1
.end0: ;else
1577,7 → 1573,7
mov eax,[stored_len]
add eax,4
cmp eax,[opt_lenb]
jg .end2
ja .end2
cmp dword[buf],0
je .end2 ;if (..<=.. && ..!=0)
;4: two words for the lengths
1666,7 → 1662,6
align 4
proc _tr_tally uses ebx edi, s:dword, dist:dword, lc:dword
mov edi,[s]
zlib_debug '_tr_tally'
mov eax,[edi+deflate_state.last_lit]
shl eax,1
add eax,[edi+deflate_state.d_buf]
1681,9 → 1676,7
jne @f ;if (..==0)
; lc is the unmatched char
mov eax,[lc]
imul eax,sizeof.ct_data
add eax,edi
inc word[eax+deflate_state.dyn_ltree+Freq]
inc word[edi+sizeof.ct_data*eax+deflate_state.dyn_ltree+Freq]
jmp .end0
align 4
@@: ;else
1703,12 → 1696,9
.end2:
mov eax,[lc]
movzx eax,byte[eax+_length_code]
add eax,LITERALS+1
imul eax,sizeof.ct_data
inc word[edi+eax+deflate_state.dyn_ltree+Freq]
inc word[edi+sizeof.ct_data*eax+deflate_state.dyn_ltree+sizeof.ct_data*(LITERALS+1)+Freq]
d_code [dist]
imul eax,sizeof.ct_data
inc word[edi+eax+deflate_state.dyn_dtree+Freq]
inc word[edi+sizeof.ct_data*eax+deflate_state.dyn_dtree+Freq]
.end0:
 
if TRUNCATE_BLOCK eq 1
1733,14 → 1723,12
; if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
.end1:
end if
mov ebx,[edi+deflate_state.last_lit]
mov edi,[edi+deflate_state.lit_bufsize]
dec edi
mov ebx,[edi+deflate_state.lit_bufsize]
dec ebx
xor eax,eax
cmp ebx,edi
jne @f
inc eax ;return (..==..)
@@:
cmp [edi+deflate_state.last_lit],ebx
sete al ;return (..==..)
 
; We avoid equality with lit_bufsize because of wraparound at 64K
; on 16 bit machines and because stored blocks are restricted to
; 64K-1 bytes.
1828,7 → 1816,7
@@:
mov eax,[edi+deflate_state.last_lit]
cmp [lx],eax
jl .cycle0 ;while (..<..)
jb .cycle0 ;while (..<..)
align 4
.end0:
 
1849,8 → 1837,7
; (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
; IN assertion: the fields Freq of dyn_ltree are set.
 
;int (s)
; deflate_state* s
;int (deflate_state* s)
align 4
proc detect_data_type uses ebx ecx edi, s:dword
; black_mask is the bit mask of black-listed bytes
1860,7 → 1847,6
black_mask dd 0xf3ffc07f
endl
mov edi,[s]
zlib_debug 'detect_data_type'
 
; Check for non-textual ("black-listed") bytes.
xor ecx,ecx
1948,8 → 1934,7
; ===========================================================================
; Flush the bit buffer, keeping at most 7 bits in it.
 
;void (s)
; deflate_state* s
;void (deflate_state* s)
align 4
proc bi_flush uses eax ecx edi, s:dword
mov edi,[s]
2030,6 → 2015,8
add [edi+deflate_state.bits_sent],ecx
end if
mov ecx,[len]
; test ecx,ecx
; jz .end_f
mov esi,[buf]
jmp .end0
align 4
2039,5 → 2026,6
put_byte edi, bl
.end0:
loop @b
; .end_f:
ret
endp