via-mont.pl (302408) | via-mont.pl (337982) |
---|---|
1#!/usr/bin/env perl 2# 3# ==================================================================== 4# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL 5# project. The module is, however, dual licensed under OpenSSL and 6# CRYPTOGAMS licenses depending on where you obtain it. For further 7# details see http://www.openssl.org/~appro/cryptogams/. 8# ==================================================================== --- 189 unchanged lines hidden (view full) --- 198 &mov ("eax",&DWP(0,"esi","edx",4)); 199 &sbb ("eax",&DWP(0,"ebp","edx",4)); 200 &mov (&DWP(0,"edi","edx",4),"eax"); # rp[i]=tp[i]-np[i] 201 &lea ("edx",&DWP(1,"edx")); # i++ 202 &loop (&label("sub")); # doesn't affect CF! 203 204 &mov ("eax",&DWP(0,"esi","edx",4)); # upmost overflow bit 205 &sbb ("eax",0); | 1#!/usr/bin/env perl 2# 3# ==================================================================== 4# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL 5# project. The module is, however, dual licensed under OpenSSL and 6# CRYPTOGAMS licenses depending on where you obtain it. For further 7# details see http://www.openssl.org/~appro/cryptogams/. 8# ==================================================================== --- 189 unchanged lines hidden (view full) --- 198 &mov ("eax",&DWP(0,"esi","edx",4)); 199 &sbb ("eax",&DWP(0,"ebp","edx",4)); 200 &mov (&DWP(0,"edi","edx",4),"eax"); # rp[i]=tp[i]-np[i] 201 &lea ("edx",&DWP(1,"edx")); # i++ 202 &loop (&label("sub")); # doesn't affect CF! 203 204 &mov ("eax",&DWP(0,"esi","edx",4)); # upmost overflow bit 205 &sbb ("eax",0); |
206 &and ("esi","eax"); 207 ¬ ("eax"); 208 &mov ("ebp","edi"); 209 &and ("ebp","eax"); 210 &or ("esi","ebp"); # tp=carry?tp:rp | |
211 212 &mov ("ecx","edx"); # num | 206 207 &mov ("ecx","edx"); # num |
213 &xor ("edx","edx"); # i=0 | 208 &mov ("edx",0); # i=0 |
214 215&set_label("copy",8); | 209 210&set_label("copy",8); |
216 &mov ("eax",&DWP(0,"esi","edx",4)); 217 &mov (&DWP(64,"esp","edx",4),"ecx"); # zap tp | 211 &mov ("ebx",&DWP(0,"esi","edx",4)); 212 &mov ("eax",&DWP(0,"edi","edx",4)); 213 &mov (&DWP(0,"esi","edx",4),"ecx"); # zap tp 214 &cmovc ("eax","ebx"); |
218 &mov (&DWP(0,"edi","edx",4),"eax"); 219 &lea ("edx",&DWP(1,"edx")); # i++ 220 &loop (&label("copy")); 221 222 &mov ("ebp",$sp); 223 &xor ("eax","eax"); 224 225 &mov ("ecx",64/4); --- 17 unchanged lines hidden --- | 215 &mov (&DWP(0,"edi","edx",4),"eax"); 216 &lea ("edx",&DWP(1,"edx")); # i++ 217 &loop (&label("copy")); 218 219 &mov ("ebp",$sp); 220 &xor ("eax","eax"); 221 222 &mov ("ecx",64/4); --- 17 unchanged lines hidden --- |