Lines Matching +full:- +full:d2
2 # SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause
5 # Written by Andy Polyakov, @dot-asm, originally for the OpenSSL
16 # R1x000 ~5.5/+130% (big-endian)
17 # Octeon II 2.50/+70% (little-endian)
21 # Add 32-bit code path.
25 # Modulo-scheduling reduction allows to omit dependency chain at the
30 # R1x000 ~9.8/? (big-endian)
31 # Octeon II 3.65/+140% (little-endian)
32 # MT7621/1004K 4.75/? (little-endian)
48 # - never ever touch $tp, "thread pointer", former $gp [o32 can be
50 # - copy return value to $t0, former $v0 [or to $a0 if you're adapting
52 # - on O32 populate $a4-$a7 with 'lw $aN,4*N($sp)' if necessary;
72 # 64-bit code path
202 daddiu $tmp0,-63 # 0x00000000ffffffc1
204 daddiu $tmp0,-1 # 0x0ffffffc0fffffff
207 daddiu $tmp0,-3 # 0x0ffffffc0ffffffc
224 my ($h0,$h1,$h2,$r0,$r1,$rs1,$d0,$d1,$d2) =
247 .mask $SAVED_REGS_MASK|0x000c0000,-8
253 .mask $SAVED_REGS_MASK,-8
259 $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue
358 dsrl $tmp1,$h2,2 # modulo-scheduled reduction
373 daddu $d2,$h2,$padbit
379 daddu $d2,$tmp1
380 daddu $d2,$tmp0
397 dmultu ($rs1,$d2) # h2*5*r1
400 mflo ($tmp2,$rs1,$d2)
402 dmultu ($r0,$d2) # h2*r0
405 mflo ($tmp3,$r0,$d2)
428 $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi epilogue
459 li $in0,-4 # final reduction
535 .asciiz "Poly1305 for MIPS64, CRYPTOGAMS by \@dot-asm"
541 # 32-bit code path
731 my ($d0,$d1,$d2,$d3) =
742 .mask $SAVED_REGS_MASK,-4
754 $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue
796 lw $d2,8($inp)
807 srlv $at,$d2,$t1
808 sllv $d2,$d2,$shr
812 or $d2,$d2,$at
820 sllv $at,$d2,$t1
821 srlv $d2,$d2,$shr
825 or $d2,$d2,$at
833 lwl $d2,8+MSB($inp)
837 lwr $d2,8+LSB($inp)
844 wsbh $d2,$d2
848 rotr $d2,$d2,16
867 srl $at,$d2,24
869 srl $t0,$d2,8
871 andi $t1,$d2,0xFF00
872 sll $d2,$d2,24
875 or $d2,$at
879 or $d2,$t0
889 srl $t0,$h4,2 # modulo-scheduled reduction
905 addu $d2,$d2,$h2
907 sltu $h2,$d2,$h2
908 addu $d2,$d2,$h1
909 sltu $h1,$d2,$h1
921 maddu $rs2,$d2 # d2*s2
930 maddu $rs3,$d2 # d2*s3
939 maddu $r0,$d2 # d2*r0
950 maddu $r1,$d2 # d2*r1
976 multu ($rs2,$d2) # d2*s2
977 mflo ($a3,$rs2,$d2)
978 mfhi ($t1,$rs2,$d2)
1006 multu ($rs3,$d2) # d2*s3
1009 mflo ($a3,$rs3,$d2)
1010 mfhi ($t1,$rs3,$d2)
1044 multu ($r0,$d2) # d2*r0
1047 mflo ($at,$r0,$d2)
1048 mfhi ($t0,$r0,$d2)
1089 multu ($r1,$d2) # d2*r1
1093 mflo ($at,$r1,$d2)
1094 mfhi ($t0,$r1,$d2)
1136 $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue
1165 li $in0,-4 # final reduction
1261 .asciiz "Poly1305 for MIPS32, CRYPTOGAMS by \@dot-asm"