Aktív témák

  • P.H.

    senior tag

    Procuction Code. P4 ready. Core2-n, K10-en, Bulldozeren, P4-en 12%-kal gyorsabb, mint a W..R.r.

    @samechar:
    {@80} {0**} cmp edx,ebp
    {1**} jae @initrepeat
    @compression:
    {2} cmp cl,[esi+edx+01h]
    {0} lea edx,[edx+01h]
    {1} jz @samechar
    @initrepeat:
    { } { x1 } and ebp,00h
    {@90} { **} cmp edx,(03+01)
    { **} jae @special { long jump instruction }
    { } mov ch,cl
    { } { x1 } mov ss:[esp+_ENCODED],edi
    @repeat:
    {@A0} {0-} lea edi,[eax+ebx]
    {1} and eax,(__WINDOW-1)
    {2**} cmp edi,-(__WINDOW)
    {0**} jbe @pre_encode
    {@B0} {1} add edi,esi
    {2} mov eax,[esp+_PREV+eax*04h]
    {0**} cmp ch,[edi+ebp]
    {1**} jnz @repeat
    {2**} cmp cl,[edi+00h]
    {0**} jnz @repeat
    {@C0} {1-} xor edx,edx
    @length:
    {@C2} {0**} cmp edx,[esp+_MAXRANGE]
    {1**} jae @maximum_repeat
    {2} movzx ecx,byte ptr [esi+edx+01h]
    {0} cmp cl,[edi+edx+01h]
    {@D1} {1} lea edx,[edx+01h]
    {2} jz @length
    {0} movzx ecx,byte ptr [esi+00h]
    {1} mov ch,[esi+ebp]
    {2**} cmp edx,ebp
    {0**} jbe @repeat
    {@E0} {1-} mov ebp,edx
    {2} mov ch,[esi+edx]
    {0} mov [esp+_MOVEDIST],edi
    {2} jmp @repeat
    { x6 } test ebx,00000000h
    {@F0} { x4 } xor ebp,ebp; xor esi,esi
    @maximum_repeat:
    {@F4} {0} mov [esp+_MOVEDIST],edi
    {1} mov ebp,00000028
    {2-} xor eax,eax
    {0-} xor ebx,ebx
    {@00} {1} mov edi,[esp+_ENCODED]
    {2**} cmp edx,00000258
    {0**} jz @indexed
    {1} movzx ecx,byte ptr [esi+00h]
    {2-} mov ebp,edx
    @pre_encode:
    {@11} {0} mov edi,[esp+_ENCODED]
    {1-} xor ebx,ebx
    {2*} sub ebp,03h
    {0*} jb @encode_alpha
    {@20} {1-} movzx eax,bl
    {2} lea edx,[ebp+03h]
    { } jz @indexed
    @encode_length:
    {---} bsr ecx,ebp
    {0*} sub ecx,02h
    {1*} jle @indexed
    {@30} {2-} mov ebx,ebp
    {0} shr ebp,cl
    {1-} mov eax,ebp
    {2} lea ebp,[ebp+ecx*04h+00h]
    {0} shl eax,cl
    {1} xor ebx,eax
    {2-} mov eax,ecx
    @indexed:
    {@40} {0} mov ecx,dword ptr [ZFIXED_ENCODE+257*04h+ebp*0
    {1} mov ebp,[esp+_ZIPPED]
    {2} add al,cl
    {0} shl ebx,cl
    {1} shr ecx,10h
    {@52} {2} or ebx,ecx
    {0-} mov ecx,edi
    {1} and ecx,07h
    {2} shr edi,03h
    {0} shl ebx,cl
    {1} or bl,[edi+ebp]
    {@61} {2} add ecx,eax
    {0} mov eax,[esp+_MOVEDIST]
    @writelength:
    {0} mov [edi+ebp],bl
    {1} add edi,01h
    {2} shr ebx,08h
    {0*} sub ecx,08h
    {@72} {1*} jge @writelength
    @encode_distance:
    { } { x3 } mov ebp,00000000h
    { } sub eax,esi
    { } xor eax,-1
    {@80} { } lea edi,[edi*08h+ecx*08h+00]
    { } jz @distindexed
    {---} bsr ecx,eax
    {0*} sub ecx,01h
    {1*} js @distindexed
    {2-} mov ebx,eax
    {@90} {0} shr eax,cl
    {1-} mov ebp,eax
    {2} lea eax,[ecx*02h+eax]
    {0} shl ebp,cl
    {1} xor ebx,ebp
    {2-} mov ebp,ecx
    {0} shl ebx,05h
    @distindexed:
    {@A0} {0} or ebx,dword ptr [REVERSE2_5+eax*04h]
    {1-} mov ecx,edi
    {0} shr edi,03h
    {2} mov eax,[esp+_ZIPPED]
    {@B0} {1} and ecx,07h
    {2} shl ebx,cl
    {0} or bl,[edi+eax]
    {1} lea ecx,[ecx+ebp+05h]
    {2} mov ebp,[esp+_HASH]
    @writedistance:
    {@C0} {0} mov [edi+eax],bl
    {1} add edi,01h
    {2} shr ebx,08h
    {0*} sub ecx,08h
    {1*} jge @writedistance
    { } add edx,esi
    {@D0} { } lea edi,[edi*08h+ecx]
    { -} mov eax,ebp
    { } jmp @administration
    { x9 } xor eax,eax; xor ebp,ebp; mov edx,00000000h
    {@00} { x4 } xor edx,edx; xor ecx,ecx
    @encode_alpha:
    {@04} {0} mov ebp,[esp+_ZIPPED]
    {1-} movzx edx,cl
    {2-} mov ecx,edi
    {0} shr edi,03h
    {@10} {1} mov edx,dword ptr [ZFIXED_ENCODE+edx*04h]
    {2} and ecx,07h
    {0} movzx eax,dx
    {1} shr edx,10h
    {@20} {2} shl edx,cl
    {0} add ecx,eax
    {1} mov eax,[esp+_HASH]
    {2} or dl,[edi+ebp]
    @writechar:
    {0} mov [edi+ebp],dl
    {1} add edi,01h
    {@31} {2} shr edx,08h
    {0*} sub ecx,08h
    {1*} jge @writechar
    { } lea edx,[esi+01h]
    { } lea edi,[edi*08h+ecx+00h]
    @administration:
    {@20} {0} mov ecx,[esp+_LAST+eax*04h]
    {1} mov [esp+_LAST+eax*04h],esi
    {2} shl eax,__BITS
    {0} and eax,__LOOKUP-1
    {1-} mov ebp,esi
    {2} xor al,[esi+03h]
    {0} add esi,01h
    {1} and ebp,(__WINDOW-1)
    {2} mov [esp+_PREV+ebp*04h],ecx
    {0**} cmp esi,edx
    {1**} jnz @administration
    @nextloop:
    {0} mov [esp+_HASH],eax
    {@70} {1} mov ebp,[esp+_LEN]
    {2} sub ebx,esi
    {0} mov eax,[esp+_LAST+eax*04h]
    {1-} xor edx,edx
    {2} movzx ecx,byte ptr [esi+00h]
    {0*} sub ebp,esi
    {1*} jz @finalize
    {2**} cmp ebp,00000258
    {@90} {0**} jae @compression
    { } mov [esp+_MAXRANGE],ebp
    { } jmp @compression
    { x1 } nop
    {@80} { x1 } nop
    @special:

    [ Szerkesztve ]

    Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

Aktív témák