diff options
author | Andy Polyakov <appro@openssl.org> | 2016-05-27 21:50:49 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2016-05-28 22:17:59 +0200 |
commit | 8640f21093ae02c838e183f04ea52f781b5c98d6 (patch) | |
tree | c2274592c413850c3c55296002ee7c3bca08942d /crypto/poly1305 | |
parent | ff823ee89b678a92a6f74898609f73f51dae38a7 (diff) |
poly1305/asm/poly1305-mips.pl: adhere to standard frame layout.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto/poly1305')
-rwxr-xr-x | crypto/poly1305/asm/poly1305-mips.pl | 44 |
1 files changed, 24 insertions, 20 deletions
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 ___ } { |