Lines Matching +full:mips +full:- +full:cm

2 # SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause
5 # Written by Andy Polyakov, @dot-asm, initially for use with OpenSSL.
8 # Poly1305 hash for RISC-V.
12 # In the essence it's pretty straightforward transliteration of MIPS
13 # module [without big-endian option].
15 # 1.8 cycles per byte on U74, >100% faster than compiler-generated
34 for (@ARGV) { $output=$_ if (/\w[\w\-]*\.\w+$/); }
51 # 64-bit code path...
86 andi $inp,$inp,-8 # align $inp
107 addi $tmp0,$tmp0,-63 # 0x00000000ffffffc1
109 addi $tmp0,$tmp0,-1 # 0x0ffffffc0fffffff
112 addi $tmp0,$tmp0,-3 # 0x0ffffffc0ffffffc
124 .size poly1305_init,.-poly1305_init
138 andi $len,$len,-16 # complete blocks only
141 caddi $sp,$sp,-4*__SIZEOF_POINTER__
149 andi $inp,$inp,-8 # align $inp
182 andi $tmp0,$h2,-4 # modulo-scheduled reduction
246 .size poly1305_blocks,.-poly1305_blocks
263 andi $in0,$tmp2,-4 # final reduction
341 .size poly1305_emit,.-poly1305_emit
342 .string "Poly1305 for RISC-V, CRYPTOGAMS by \@dot-asm"
347 # 32-bit code path
430 addi $tmp0,$tmp0,-1 # 0x0fffffff
432 addi $tmp0,$tmp0,-3 # 0x0ffffffc
454 .size poly1305_init,.-poly1305_init
470 andi $len,$len,-16 # complete blocks only
474 cm.push {ra,s0-s8}, -48
476 caddi $sp,$sp,-__SIZEOF_POINTER__*12
491 andi $inp,$inp,-4 # align $inp
536 srliw $t3,$h4,2 # modulo-scheduled reduction
537 andi $t4,$h4,-4
692 cm.popret {ra,s0-s8}, 48
708 .size poly1305_blocks,.-poly1305_blocks
728 andi $in0,$tmp4,-4
827 .size poly1305_emit,.-poly1305_emit
828 .string "Poly1305 for RISC-V, CRYPTOGAMS by \@dot-asm"
835 s/\(x([0-9]+)\)/(c$1)/ and s/\b([ls][bhwd]u?)\b/c$1/;
836 s/\b(PUSH|POP)(\s+)x([0-9]+)/$1$2c$3/ or
838 s/\bcaddi?\b/cincoffset/ and s/\bx([0-9]+,)/c$1/g or
839 m/\bcmove\b/ and s/\bx([0-9]+)/c$1/g;