From 7b2dca192e4d7b709c9f3f00542509fcd3b58b39 Mon Sep 17 00:00:00 2001 From: miod <> Date: Sun, 7 Dec 2014 15:55:58 +0000 Subject: Make sure to load absolute symbol address with `dla' instead of `la' when generating code for 64-bit mips userland. --- src/lib/libssl/src/crypto/aes/asm/aes-mips.pl | 14 ++++++++++---- src/lib/libssl/src/crypto/sha/asm/sha512-mips.pl | 8 +++++++- 2 files changed, 17 insertions(+), 5 deletions(-) (limited to 'src/lib/libssl') diff --git a/src/lib/libssl/src/crypto/aes/asm/aes-mips.pl b/src/lib/libssl/src/crypto/aes/asm/aes-mips.pl index 5307c05cac..2f6ff74ffe 100644 --- a/src/lib/libssl/src/crypto/aes/asm/aes-mips.pl +++ b/src/lib/libssl/src/crypto/aes/asm/aes-mips.pl @@ -49,6 +49,12 @@ # $flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64 +if ($flavour =~ /64/i) { + $LA="dla"; +} else { + $LA="la"; +} + if ($flavour =~ /64|n32/i) { $PTR_ADD="dadd"; # incidentally works even on n32 $PTR_SUB="dsub"; # incidentally works even on n32 @@ -385,7 +391,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification ___ $code.=<<___; .set reorder - la $Tbl,AES_Te # PIC-ified 'load address' + $LA $Tbl,AES_Te # PIC-ified 'load address' lwl $s0,0+$MSB($inp) lwl $s1,4+$MSB($inp) @@ -721,7 +727,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification ___ $code.=<<___; .set reorder - la $Tbl,AES_Td # PIC-ified 'load address' + $LA $Tbl,AES_Td # PIC-ified 'load address' lwl $s0,0+$MSB($inp) lwl $s1,4+$MSB($inp) @@ -1060,7 +1066,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification ___ $code.=<<___; .set reorder - la $Tbl,AES_Te # PIC-ified 'load address' + $LA $Tbl,AES_Te # PIC-ified 'load address' bal _mips_AES_set_encrypt_key @@ -1115,7 +1121,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification ___ $code.=<<___; .set reorder - la $Tbl,AES_Te # PIC-ified 'load address' + $LA $Tbl,AES_Te # PIC-ified 'load address' bal _mips_AES_set_encrypt_key diff --git a/src/lib/libssl/src/crypto/sha/asm/sha512-mips.pl b/src/lib/libssl/src/crypto/sha/asm/sha512-mips.pl index 2714794c2f..495a000695 100644 --- a/src/lib/libssl/src/crypto/sha/asm/sha512-mips.pl +++ b/src/lib/libssl/src/crypto/sha/asm/sha512-mips.pl @@ -47,6 +47,12 @@ # $flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64 +if ($flavour =~ /64/i) { + $LA="dla"; +} else { + $LA="la"; +} + if ($flavour =~ /64|n32/i) { $PTR_ADD="dadd"; # incidentally works even on n32 $PTR_SUB="dsub"; # incidentally works even on n32 @@ -284,7 +290,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification ___ $code.=<<___; .set reorder - la $Ktbl,K${label} # PIC-ified 'load address' + $LA $Ktbl,K${label} # PIC-ified 'load address' $LD $A,0*$SZ($ctx) # load context $LD $B,1*$SZ($ctx) -- cgit v1.2.3-55-g6feb