avoid read-ahead into invalid memory in P4Optimized::Add

pull/2/head
weidai 2003-10-31 02:40:42 +00:00
parent 43d4ad3e75
commit c5dc93b4dd
1 changed files with 16 additions and 36 deletions

View File

@ -1205,46 +1205,36 @@ CRYPTOPP_NAKED word P4Optimized::Add(word *C, const word *A, const word *B, unsi
AS2( mov edi, [edx])
AS2( mov ebp, [ebx])
AS1( jmp carry1AddP4)
AS1(loopstartAddP4:)
AS2( mov edi, [edx+8])
AS2( add ecx, 8)
AS2( add edx, 8)
AS2( mov ebp, [ebx])
AS2( add edi, eax)
AS1( jc carry1AddP4)
AS2( xor eax, eax)
AS1(carry1continueAddP4:)
AS1(carry1AddP4:)
AS2( add edi, ebp)
AS2( mov ebp, 1)
AS2( mov [ecx], edi)
AS2( mov edi, [edx+4])
AS2( cmovc eax, ebp)
AS2( mov ebp, [ebx+4])
AS2( lea ebx, [ebx+8])
AS2( add ebx, 8)
AS2( add edi, eax)
AS1( jc carry2AddP4)
AS2( xor eax, eax)
AS1(carry2continueAddP4:)
AS1(carry2AddP4:)
AS2( add edi, ebp)
AS2( mov ebp, 1)
AS2( cmovc eax, ebp)
AS2( mov [ecx+4], edi)
AS2( add ecx, 8)
AS2( mov edi, [edx+8])
AS2( add edx, 8)
AS2( add esi, 2)
AS2( mov ebp, [ebx])
AS1( jnz loopstartAddP4)
AS1( jmp loopendAddP4)
AS1(carry1AddP4:)
AS2( mov eax, 1)
AS1( jmp carry1continueAddP4)
AS1(carry2AddP4:)
AS2( mov eax, 1)
AS1( jmp carry2continueAddP4)
AS1(loopendAddP4:)
@ -1262,46 +1252,36 @@ CRYPTOPP_NAKED word P4Optimized::Subtract(word *C, const word *A, const word *B,
AS2( mov edi, [edx])
AS2( mov ebp, [ebx])
AS1( jmp carry1SubP4)
AS1(loopstartSubP4:)
AS2( mov edi, [edx+8])
AS2( add edx, 8)
AS2( add ecx, 8)
AS2( mov ebp, [ebx])
AS2( sub edi, eax)
AS1( jc carry1SubP4)
AS2( xor eax, eax)
AS1(carry1continueSubP4:)
AS1(carry1SubP4:)
AS2( sub edi, ebp)
AS2( mov ebp, 1)
AS2( mov [ecx], edi)
AS2( mov edi, [edx+4])
AS2( cmovc eax, ebp)
AS2( mov ebp, [ebx+4])
AS2( lea ebx, [ebx+8])
AS2( add ebx, 8)
AS2( sub edi, eax)
AS1( jc carry2SubP4)
AS2( xor eax, eax)
AS1(carry2continueSubP4:)
AS1(carry2SubP4:)
AS2( sub edi, ebp)
AS2( mov ebp, 1)
AS2( cmovc eax, ebp)
AS2( mov [ecx+4], edi)
AS2( add ecx, 8)
AS2( mov edi, [edx+8])
AS2( add edx, 8)
AS2( add esi, 2)
AS2( mov ebp, [ebx])
AS1( jnz loopstartSubP4)
AS1( jmp loopendSubP4)
AS1(carry1SubP4:)
AS2( mov eax, 1)
AS1( jmp carry1continueSubP4)
AS1(carry2SubP4:)
AS2( mov eax, 1)
AS1( jmp carry2continueSubP4)
AS1(loopendSubP4:)