summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/asm/x86w32.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/bn/asm/x86w32.asm')
-rw-r--r--src/lib/libcrypto/bn/asm/x86w32.asm34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/lib/libcrypto/bn/asm/x86w32.asm b/src/lib/libcrypto/bn/asm/x86w32.asm
index fc6f917714..957d71e3b1 100644
--- a/src/lib/libcrypto/bn/asm/x86w32.asm
+++ b/src/lib/libcrypto/bn/asm/x86w32.asm
@@ -6,11 +6,11 @@ F_TEXT SEGMENT WORD USE16 PUBLIC 'CODE'
6F_TEXT ENDS 6F_TEXT ENDS
7_DATA SEGMENT WORD USE16 PUBLIC 'DATA' 7_DATA SEGMENT WORD USE16 PUBLIC 'DATA'
8_DATA ENDS 8_DATA ENDS
9CONST SEGMENT WORD USE16 PUBLIC 'CONST' 9_CONST SEGMENT WORD USE16 PUBLIC 'CONST'
10CONST ENDS 10_CONST ENDS
11_BSS SEGMENT WORD USE16 PUBLIC 'BSS' 11_BSS SEGMENT WORD USE16 PUBLIC 'BSS'
12_BSS ENDS 12_BSS ENDS
13DGROUP GROUP CONST, _BSS, _DATA 13DGROUP GROUP _CONST, _BSS, _DATA
14 ASSUME DS: DGROUP, SS: DGROUP 14 ASSUME DS: DGROUP, SS: DGROUP
15F_TEXT SEGMENT 15F_TEXT SEGMENT
16 ASSUME CS: F_TEXT 16 ASSUME CS: F_TEXT
@@ -89,7 +89,7 @@ $L555:
89 mov bp,WORD PTR [bp+26] ; load num 89 mov bp,WORD PTR [bp+26] ; load num
90 and bp,3 90 and bp,3
91 dec bp 91 dec bp
92 js $L547 92 js $L547m
93 93
94 mov eax,ecx 94 mov eax,ecx
95 mul DWORD PTR es:[bx] ; w* *a 95 mul DWORD PTR es:[bx] ; w* *a
@@ -100,7 +100,7 @@ $L555:
100 mov DWORD PTR ds:[di],eax 100 mov DWORD PTR ds:[di],eax
101 mov esi,edx 101 mov esi,edx
102 dec bp 102 dec bp
103 js $L547 ; Note that we are now testing for -1 103 js $L547m ; Note that we are now testing for -1
104 ; 104 ;
105 mov eax,ecx 105 mov eax,ecx
106 mul DWORD PTR es:[bx+4] ; w* *a 106 mul DWORD PTR es:[bx+4] ; w* *a
@@ -111,7 +111,7 @@ $L555:
111 mov DWORD PTR ds:[di+4],eax 111 mov DWORD PTR ds:[di+4],eax
112 mov esi,edx 112 mov esi,edx
113 dec bp 113 dec bp
114 js $L547 114 js $L547m
115 ; 115 ;
116 mov eax,ecx 116 mov eax,ecx
117 mul DWORD PTR es:[bx+8] ; w* *a 117 mul DWORD PTR es:[bx+8] ; w* *a
@@ -121,7 +121,7 @@ $L555:
121 adc edx,0 121 adc edx,0
122 mov DWORD PTR ds:[di+8],eax 122 mov DWORD PTR ds:[di+8],eax
123 mov esi,edx 123 mov esi,edx
124$L547: 124$L547m:
125 mov eax,esi 125 mov eax,esi
126 mov edx,esi 126 mov edx,esi
127 shr edx,16 127 shr edx,16
@@ -315,37 +315,35 @@ _bn_add_words PROC FAR
315; ap = 22 315; ap = 22
316; rp = 18 316; rp = 18
317 xor esi,esi ;c=0; 317 xor esi,esi ;c=0;
318 mov bx,WORD PTR [bp+18] ; load low r
318 mov si,WORD PTR [bp+22] ; load a 319 mov si,WORD PTR [bp+22] ; load a
319 mov es,WORD PTR [bp+24] ; load a 320 mov es,WORD PTR [bp+24] ; load a
320 mov di,WORD PTR [bp+26] ; load b 321 mov di,WORD PTR [bp+26] ; load b
321 mov ds,WORD PTR [bp+28] ; load b 322 mov ds,WORD PTR [bp+28] ; load b
322 323
323 mov dx,WORD PTR [bp+30] ; load num 324 mov dx,WORD PTR [bp+30] ; load num
324 dec dx
325 js $L547
326 xor ecx,ecx 325 xor ecx,ecx
326 dec dx
327 js $L547a
327 328
328$L5477: 329$L5477:
329 xor ebx,ebx
330 mov eax,DWORD PTR es:[si] ; *a 330 mov eax,DWORD PTR es:[si] ; *a
331 add eax,ecx 331 add eax,ecx
332 adc ebx,0 332 mov ecx,0
333 adc ecx,0
333 add si,4 ; a++ 334 add si,4 ; a++
334 add eax,DWORD PTR ds:[di] ; + *b 335 add eax,DWORD PTR ds:[di] ; + *b
335 mov ecx,ebx
336 adc ecx,0 336 adc ecx,0
337 add di,4
338 mov bx,WORD PTR [bp+18]
339 mov ds,WORD PTR [bp+20] 337 mov ds,WORD PTR [bp+20]
338 add di,4
340 mov DWORD PTR ds:[bx],eax 339 mov DWORD PTR ds:[bx],eax
341 add bx,4
342 mov ds,WORD PTR [bp+28] 340 mov ds,WORD PTR [bp+28]
343 mov WORD PTR [bp+18],bx 341 add bx,4
344 dec dx 342 dec dx
345 js $L547 ; Note that we are now testing for -1 343 js $L547a ; Note that we are now testing for -1
346 jmp $L5477 344 jmp $L5477
347 ; 345 ;
348$L547: 346$L547a:
349 mov eax,ecx 347 mov eax,ecx
350 mov edx,ecx 348 mov edx,ecx
351 shr edx,16 349 shr edx,16