aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2016-05-27 21:50:49 +0200
committerAndy Polyakov <appro@openssl.org>2016-05-28 22:17:59 +0200
commit8640f21093ae02c838e183f04ea52f781b5c98d6 (patch)
treec2274592c413850c3c55296002ee7c3bca08942d /crypto
parentff823ee89b678a92a6f74898609f73f51dae38a7 (diff)
downloadopenssl-8640f21093ae02c838e183f04ea52f781b5c98d6.tar.gz
poly1305/asm/poly1305-mips.pl: adhere to standard frame layout.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto')
-rwxr-xr-xcrypto/poly1305/asm/poly1305-mips.pl44
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
___
}
{