Subversion Repositories Kolibri OS

Rev

Rev 131 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 131 Rev 3013
Line 560... Line 560...
560
    ret
560
    ret
Line 561... Line 561...
561
 
561
 
562
UCRC:
562
UCRC:
563
; in:  esi - data to calculate CRC
563
; in:  esi - data to calculate CRC
564
;      ecx - its length
564
;      ecx - its length
565
;      [CRC32] - previous CRC32
565
;      [_CRC32_] - previous CRC32
566
; out: [CRC32]- partial CRC32 (no pre- & post-conditioning!)
566
; out: [_CRC32_]- partial CRC32 (no pre- & post-conditioning!)
567
    pusha
567
    pusha
568
    cmp  dword[CRC32table+4],0x77073096
568
    cmp  dword[CRC32table+4],0x77073096
569
    je   .tbl_rdy
569
    je   .tbl_rdy
570
    call makeCRC
570
    call makeCRC
571
  .tbl_rdy:
571
  .tbl_rdy:
572
    mov  eax,[CRC32]
572
    mov  eax,[_CRC32_]
573
    not  eax
573
    not  eax
574
  .m1:
574
  .m1:
575
    movzx ebx,al
575
    movzx ebx,al
576
    shr  eax,8
576
    shr  eax,8
577
    xor  bl,[esi]
577
    xor  bl,[esi]
578
    xor  eax,[CRC32table+ebx*4]
578
    xor  eax,[CRC32table+ebx*4]
579
    inc  esi
579
    inc  esi
580
    loop .m1
580
    loop .m1
581
    not  eax
581
    not  eax
582
    mov  [CRC32],eax
582
    mov  [_CRC32_],eax
583
    popa
583
    popa
Line 584... Line 584...
584
    ret
584
    ret
585
 
585