Loading crypto/bn/asm/ppc.pl +8 −13 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ if ($opf =~ /32\.s/) { $UDIV= "divwu"; # unsigned divide $UCMPI= "cmplwi"; # unsigned compare with immediate $UCMP= "cmplw"; # unsigned compare $COUNTZ="cntlzw"; # count leading zeros $CNTLZ= "cntlzw"; # count leading zeros $SHL= "slw"; # shift left $SHR= "srw"; # unsigned shift right $SHRI= "srwi"; # unsigned shift right by immediate Loading @@ -139,7 +139,7 @@ if ($opf =~ /32\.s/) { $UDIV= "divdu"; # unsigned divide $UCMPI= "cmpldi"; # unsigned compare with immediate $UCMP= "cmpld"; # unsigned compare $COUNTZ="cntlzd"; # count leading zeros $CNTLZ= "cntlzd"; # count leading zeros $SHL= "sld"; # shift left $SHR= "srd"; # unsigned shift right $SHRI= "srdi"; # unsigned shift right by immediate Loading Loading @@ -1710,17 +1710,12 @@ Lppcasm_add_adios: bclr BO_ALWAYS,CR0_LT Lppcasm_div1: xor r0,r0,r0 #r0=0 $COUNTZ r7,r5 #r7 = num leading 0s in d. subfic r8,r7,$BITS #r8 = BN_num_bits_word(d) cmpi 0,0,r8,$BITS # bc BO_IF,CR0_EQ,Lppcasm_div2 #proceed if (r8==$BITS) li r9,1 # r9=1 $SHL r10,r9,r8 # r9<<=r8 $UCMP 0,r3,r10 # bc BO_IF_NOT,CR0_GT,Lppcasm_div2 #or if (h > (1<<r8)) $UDIV r3,r3,r0 #if not assert(0) divide by 0! #that's how we signal overflow bclr BO_ALWAYS,CR0_LT #return. NEVER REACHED. li r8,$BITS $CNTLZ. r7,r5 #r7 = num leading 0s in d. bc BO_IF,CR0_EQ,Lppcasm_div2 #proceed if no leading zeros subf r8,r7,r8 #r8 = BN_num_bits_word(d) $SHR. r9,r3,r8 #are there any bits above r8'th? tw 16,r9,r0 #if there're, signal to dump core... Lppcasm_div2: $UCMP 0,r3,r5 #h>=d? bc BO_IF,CR0_LT,Lppcasm_div3 #goto Lppcasm_div3 if not Loading Loading
crypto/bn/asm/ppc.pl +8 −13 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ if ($opf =~ /32\.s/) { $UDIV= "divwu"; # unsigned divide $UCMPI= "cmplwi"; # unsigned compare with immediate $UCMP= "cmplw"; # unsigned compare $COUNTZ="cntlzw"; # count leading zeros $CNTLZ= "cntlzw"; # count leading zeros $SHL= "slw"; # shift left $SHR= "srw"; # unsigned shift right $SHRI= "srwi"; # unsigned shift right by immediate Loading @@ -139,7 +139,7 @@ if ($opf =~ /32\.s/) { $UDIV= "divdu"; # unsigned divide $UCMPI= "cmpldi"; # unsigned compare with immediate $UCMP= "cmpld"; # unsigned compare $COUNTZ="cntlzd"; # count leading zeros $CNTLZ= "cntlzd"; # count leading zeros $SHL= "sld"; # shift left $SHR= "srd"; # unsigned shift right $SHRI= "srdi"; # unsigned shift right by immediate Loading Loading @@ -1710,17 +1710,12 @@ Lppcasm_add_adios: bclr BO_ALWAYS,CR0_LT Lppcasm_div1: xor r0,r0,r0 #r0=0 $COUNTZ r7,r5 #r7 = num leading 0s in d. subfic r8,r7,$BITS #r8 = BN_num_bits_word(d) cmpi 0,0,r8,$BITS # bc BO_IF,CR0_EQ,Lppcasm_div2 #proceed if (r8==$BITS) li r9,1 # r9=1 $SHL r10,r9,r8 # r9<<=r8 $UCMP 0,r3,r10 # bc BO_IF_NOT,CR0_GT,Lppcasm_div2 #or if (h > (1<<r8)) $UDIV r3,r3,r0 #if not assert(0) divide by 0! #that's how we signal overflow bclr BO_ALWAYS,CR0_LT #return. NEVER REACHED. li r8,$BITS $CNTLZ. r7,r5 #r7 = num leading 0s in d. bc BO_IF,CR0_EQ,Lppcasm_div2 #proceed if no leading zeros subf r8,r7,r8 #r8 = BN_num_bits_word(d) $SHR. r9,r3,r8 #are there any bits above r8'th? tw 16,r9,r0 #if there're, signal to dump core... Lppcasm_div2: $UCMP 0,r3,r5 #h>=d? bc BO_IF,CR0_LT,Lppcasm_div3 #goto Lppcasm_div3 if not Loading