From: Andy Polyakov Date: Fri, 27 May 2016 19:50:49 +0000 (+0200) Subject: poly1305/asm/poly1305-mips.pl: adhere to standard frame layout. X-Git-Tag: OpenSSL_1_1_0-pre6~663 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8640f21093ae02c838e183f04ea52f781b5c98d6;p=oweals%2Fopenssl.git poly1305/asm/poly1305-mips.pl: adhere to standard frame layout. Reviewed-by: Richard Levitte --- diff --git a/crypto/poly1305/asm/poly1305-mips.pl b/crypto/poly1305/asm/poly1305-mips.pl index b5bce4775d..d2b3e90d93 100755 --- a/crypto/poly1305/asm/poly1305-mips.pl +++ b/crypto/poly1305/asm/poly1305-mips.pl @@ -170,20 +170,27 @@ $code.=<<___; poly1305_blocks: .set noreorder dsrl $len,4 # number of complete blocks - beqz $len,.Lno_data + bnez $len,poly1305_blocks_internal nop + jr $ra + nop +.end poly1305_blocks - .frame $sp,8*8,$ra +.align 5 +.ent poly1305_blocks_internal +poly1305_blocks_internal: + .frame $sp,6*8,$ra .mask $SAVED_REGS_MASK,-8 - dsub $sp,8*8 - sd $s5,0($sp) - sd $s4,8($sp) + .set noreorder + dsub $sp,6*8 + sd $s5,40($sp) + sd $s4,32($sp) ___ $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue - sd $s3,16($sp) - sd $s2,24($sp) - sd $s1,32($sp) - sd $s0,40($sp) + sd $s3,24($sp) + sd $s2,16($sp) + sd $s1,8($sp) + sd $s0,0($sp) ___ $code.=<<___; .set reorder @@ -311,22 +318,19 @@ $code.=<<___; sd $h2,16($ctx) .set noreorder - ld $s5,0($sp) # epilogue - ld $s4,8($sp) + ld $s5,40($sp) # epilogue + ld $s4,32($sp) ___ $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi epilogue - ld $s3,16($sp) - ld $s2,24($sp) - ld $s1,32($sp) - ld $s0,40($sp) + ld $s3,24($sp) + ld $s2,16($sp) + ld $s1,8($sp) + ld $s0,0($sp) ___ $code.=<<___; - dadd $sp,8*8 - -.Lno_data: jr $ra - nop -.end poly1305_blocks + dadd $sp,6*8 +.end poly1305_blocks_internal ___ } {