]> WPIA git - cassiopeia.git/blobdiff - lib/openssl/crypto/bn/asm/mips3-mont.pl
upd: openssl to 1.1.0
[cassiopeia.git] / lib / openssl / crypto / bn / asm / mips3-mont.pl
diff --git a/lib/openssl/crypto/bn/asm/mips3-mont.pl b/lib/openssl/crypto/bn/asm/mips3-mont.pl
deleted file mode 100644 (file)
index 8f9156e..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-#!/usr/bin/env perl
-#
-# ====================================================================
-# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
-# project. The module is, however, dual licensed under OpenSSL and
-# CRYPTOGAMS licenses depending on where you obtain it. For further
-# details see http://www.openssl.org/~appro/cryptogams/.
-# ====================================================================
-
-# This module doesn't present direct interest for OpenSSL, because it
-# doesn't provide better performance for longer keys. While 512-bit
-# RSA private key operations are 40% faster, 1024-bit ones are hardly
-# faster at all, while longer key operations are slower by up to 20%.
-# It might be of interest to embedded system developers though, as
-# it's smaller than 1KB, yet offers ~3x improvement over compiler
-# generated code.
-#
-# The module targets N32 and N64 MIPS ABIs and currently is a bit
-# IRIX-centric, i.e. is likely to require adaptation for other OSes.
-
-# int bn_mul_mont(
-$rp="a0";      # BN_ULONG *rp,
-$ap="a1";      # const BN_ULONG *ap,
-$bp="a2";      # const BN_ULONG *bp,
-$np="a3";      # const BN_ULONG *np,
-$n0="a4";      # const BN_ULONG *n0,
-$num="a5";     # int num);
-
-$lo0="a6";
-$hi0="a7";
-$lo1="v0";
-$hi1="v1";
-$aj="t0";
-$bi="t1";
-$nj="t2";
-$tp="t3";
-$alo="s0";
-$ahi="s1";
-$nlo="s2";
-$nhi="s3";
-$tj="s4";
-$i="s5";
-$j="s6";
-$fp="t8";
-$m1="t9";
-
-$FRAME=8*(2+8);
-
-$code=<<___;
-#include <asm.h>
-#include <regdef.h>
-
-.text
-
-.set   noat
-.set   reorder
-
-.align 5
-.globl bn_mul_mont
-.ent   bn_mul_mont
-bn_mul_mont:
-       .set    noreorder
-       PTR_SUB sp,64
-       move    $fp,sp
-       .frame  $fp,64,ra
-       slt     AT,$num,4
-       li      v0,0
-       beqzl   AT,.Lproceed
-       nop
-       jr      ra
-       PTR_ADD sp,$fp,64
-       .set    reorder
-.align 5
-.Lproceed:
-       ld      $n0,0($n0)
-       ld      $bi,0($bp)      # bp[0]
-       ld      $aj,0($ap)      # ap[0]
-       ld      $nj,0($np)      # np[0]
-       PTR_SUB sp,16           # place for two extra words
-       sll     $num,3
-       li      AT,-4096
-       PTR_SUB sp,$num
-       and     sp,AT
-
-       sd      s0,0($fp)
-       sd      s1,8($fp)
-       sd      s2,16($fp)
-       sd      s3,24($fp)
-       sd      s4,32($fp)
-       sd      s5,40($fp)
-       sd      s6,48($fp)
-       sd      s7,56($fp)
-
-       dmultu  $aj,$bi
-       ld      $alo,8($ap)
-       ld      $nlo,8($np)
-       mflo    $lo0
-       mfhi    $hi0
-       dmultu  $lo0,$n0
-       mflo    $m1
-
-       dmultu  $alo,$bi
-       mflo    $alo
-       mfhi    $ahi
-
-       dmultu  $nj,$m1
-       mflo    $lo1
-       mfhi    $hi1
-       dmultu  $nlo,$m1
-       daddu   $lo1,$lo0
-       sltu    AT,$lo1,$lo0
-       daddu   $hi1,AT
-       mflo    $nlo
-       mfhi    $nhi
-
-       move    $tp,sp
-       li      $j,16
-.align 4
-.L1st:
-       .set    noreorder
-       PTR_ADD $aj,$ap,$j
-       ld      $aj,($aj)
-       PTR_ADD $nj,$np,$j
-       ld      $nj,($nj)
-
-       dmultu  $aj,$bi
-       daddu   $lo0,$alo,$hi0
-       daddu   $lo1,$nlo,$hi1
-       sltu    AT,$lo0,$hi0
-       sltu    s7,$lo1,$hi1
-       daddu   $hi0,$ahi,AT
-       daddu   $hi1,$nhi,s7
-       mflo    $alo
-       mfhi    $ahi
-
-       daddu   $lo1,$lo0
-       sltu    AT,$lo1,$lo0
-       dmultu  $nj,$m1
-       daddu   $hi1,AT
-       addu    $j,8
-       sd      $lo1,($tp)
-       sltu    s7,$j,$num
-       mflo    $nlo
-       mfhi    $nhi
-
-       bnez    s7,.L1st
-       PTR_ADD $tp,8
-       .set    reorder
-
-       daddu   $lo0,$alo,$hi0
-       sltu    AT,$lo0,$hi0
-       daddu   $hi0,$ahi,AT
-
-       daddu   $lo1,$nlo,$hi1
-       sltu    s7,$lo1,$hi1
-       daddu   $hi1,$nhi,s7
-       daddu   $lo1,$lo0
-       sltu    AT,$lo1,$lo0
-       daddu   $hi1,AT
-
-       sd      $lo1,($tp)
-
-       daddu   $hi1,$hi0
-       sltu    AT,$hi1,$hi0
-       sd      $hi1,8($tp)
-       sd      AT,16($tp)
-
-       li      $i,8
-.align 4
-.Louter:
-       PTR_ADD $bi,$bp,$i
-       ld      $bi,($bi)
-       ld      $aj,($ap)
-       ld      $alo,8($ap)
-       ld      $tj,(sp)
-
-       dmultu  $aj,$bi
-       ld      $nj,($np)
-       ld      $nlo,8($np)
-       mflo    $lo0
-       mfhi    $hi0
-       daddu   $lo0,$tj
-       dmultu  $lo0,$n0
-       sltu    AT,$lo0,$tj
-       daddu   $hi0,AT
-       mflo    $m1
-
-       dmultu  $alo,$bi
-       mflo    $alo
-       mfhi    $ahi
-
-       dmultu  $nj,$m1
-       mflo    $lo1
-       mfhi    $hi1
-
-       dmultu  $nlo,$m1
-       daddu   $lo1,$lo0
-       sltu    AT,$lo1,$lo0
-       daddu   $hi1,AT
-       mflo    $nlo
-       mfhi    $nhi
-
-       move    $tp,sp
-       li      $j,16
-       ld      $tj,8($tp)
-.align 4
-.Linner:
-       .set    noreorder
-       PTR_ADD $aj,$ap,$j
-       ld      $aj,($aj)
-       PTR_ADD $nj,$np,$j
-       ld      $nj,($nj)
-
-       dmultu  $aj,$bi
-       daddu   $lo0,$alo,$hi0
-       daddu   $lo1,$nlo,$hi1
-       sltu    AT,$lo0,$hi0
-       sltu    s7,$lo1,$hi1
-       daddu   $hi0,$ahi,AT
-       daddu   $hi1,$nhi,s7
-       mflo    $alo
-       mfhi    $ahi
-
-       daddu   $lo0,$tj
-       addu    $j,8
-       dmultu  $nj,$m1
-       sltu    AT,$lo0,$tj
-       daddu   $lo1,$lo0
-       daddu   $hi0,AT
-       sltu    s7,$lo1,$lo0
-       ld      $tj,16($tp)
-       daddu   $hi1,s7
-       sltu    AT,$j,$num
-       mflo    $nlo
-       mfhi    $nhi
-       sd      $lo1,($tp)
-       bnez    AT,.Linner
-       PTR_ADD $tp,8
-       .set    reorder
-
-       daddu   $lo0,$alo,$hi0
-       sltu    AT,$lo0,$hi0
-       daddu   $hi0,$ahi,AT
-       daddu   $lo0,$tj
-       sltu    s7,$lo0,$tj
-       daddu   $hi0,s7
-
-       ld      $tj,16($tp)
-       daddu   $lo1,$nlo,$hi1
-       sltu    AT,$lo1,$hi1
-       daddu   $hi1,$nhi,AT
-       daddu   $lo1,$lo0
-       sltu    s7,$lo1,$lo0
-       daddu   $hi1,s7
-       sd      $lo1,($tp)
-
-       daddu   $lo1,$hi1,$hi0
-       sltu    $hi1,$lo1,$hi0
-       daddu   $lo1,$tj
-       sltu    AT,$lo1,$tj
-       daddu   $hi1,AT
-       sd      $lo1,8($tp)
-       sd      $hi1,16($tp)
-
-       addu    $i,8
-       sltu    s7,$i,$num
-       bnez    s7,.Louter
-\f
-       .set    noreorder
-       PTR_ADD $tj,sp,$num     # &tp[num]
-       move    $tp,sp
-       move    $ap,sp
-       li      $hi0,0          # clear borrow bit
-
-.align 4
-.Lsub: ld      $lo0,($tp)
-       ld      $lo1,($np)
-       PTR_ADD $tp,8
-       PTR_ADD $np,8
-       dsubu   $lo1,$lo0,$lo1  # tp[i]-np[i]
-       sgtu    AT,$lo1,$lo0
-       dsubu   $lo0,$lo1,$hi0
-       sgtu    $hi0,$lo0,$lo1
-       sd      $lo0,($rp)
-       or      $hi0,AT
-       sltu    AT,$tp,$tj
-       bnez    AT,.Lsub
-       PTR_ADD $rp,8
-
-       dsubu   $hi0,$hi1,$hi0  # handle upmost overflow bit
-       move    $tp,sp
-       PTR_SUB $rp,$num        # restore rp
-       not     $hi1,$hi0
-
-       and     $ap,$hi0,sp
-       and     $bp,$hi1,$rp
-       or      $ap,$ap,$bp     # ap=borrow?tp:rp
-
-.align 4
-.Lcopy:        ld      $aj,($ap)
-       PTR_ADD $ap,8
-       PTR_ADD $tp,8
-       sd      zero,-8($tp)
-       sltu    AT,$tp,$tj
-       sd      $aj,($rp)
-       bnez    AT,.Lcopy
-       PTR_ADD $rp,8
-
-       ld      s0,0($fp)
-       ld      s1,8($fp)
-       ld      s2,16($fp)
-       ld      s3,24($fp)
-       ld      s4,32($fp)
-       ld      s5,40($fp)
-       ld      s6,48($fp)
-       ld      s7,56($fp)
-       li      v0,1
-       jr      ra
-       PTR_ADD sp,$fp,64
-       .set    reorder
-END(bn_mul_mont)
-.rdata
-.asciiz        "Montgomery Multiplication for MIPS III/IV, CRYPTOGAMS by <appro\@openssl.org>"
-___
-
-print $code;
-close STDOUT;