summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormiod <>2014-12-07 15:55:58 +0000
committermiod <>2014-12-07 15:55:58 +0000
commit7b2dca192e4d7b709c9f3f00542509fcd3b58b39 (patch)
tree1bcb120b12cbccfa0ccbdffff9a2f365a3532eb6 /src
parent2a5c8a2aac92f6b7274d00080eb7e865b9d4ff56 (diff)
downloadopenbsd-7b2dca192e4d7b709c9f3f00542509fcd3b58b39.tar.gz
openbsd-7b2dca192e4d7b709c9f3f00542509fcd3b58b39.tar.bz2
openbsd-7b2dca192e4d7b709c9f3f00542509fcd3b58b39.zip
Make sure to load absolute symbol address with `dla' instead of `la' when
generating code for 64-bit mips userland.
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/aes/asm/aes-mips.pl14
-rw-r--r--src/lib/libcrypto/sha/asm/sha512-mips.pl8
-rw-r--r--src/lib/libssl/src/crypto/aes/asm/aes-mips.pl14
-rw-r--r--src/lib/libssl/src/crypto/sha/asm/sha512-mips.pl8
4 files changed, 34 insertions, 10 deletions
diff --git a/src/lib/libcrypto/aes/asm/aes-mips.pl b/src/lib/libcrypto/aes/asm/aes-mips.pl
index 5307c05cac..2f6ff74ffe 100644
--- a/src/lib/libcrypto/aes/asm/aes-mips.pl
+++ b/src/lib/libcrypto/aes/asm/aes-mips.pl
@@ -49,6 +49,12 @@
49# 49#
50$flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64 50$flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64
51 51
52if ($flavour =~ /64/i) {
53 $LA="dla";
54} else {
55 $LA="la";
56}
57
52if ($flavour =~ /64|n32/i) { 58if ($flavour =~ /64|n32/i) {
53 $PTR_ADD="dadd"; # incidentally works even on n32 59 $PTR_ADD="dadd"; # incidentally works even on n32
54 $PTR_SUB="dsub"; # incidentally works even on n32 60 $PTR_SUB="dsub"; # incidentally works even on n32
@@ -385,7 +391,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
385___ 391___
386$code.=<<___; 392$code.=<<___;
387 .set reorder 393 .set reorder
388 la $Tbl,AES_Te # PIC-ified 'load address' 394 $LA $Tbl,AES_Te # PIC-ified 'load address'
389 395
390 lwl $s0,0+$MSB($inp) 396 lwl $s0,0+$MSB($inp)
391 lwl $s1,4+$MSB($inp) 397 lwl $s1,4+$MSB($inp)
@@ -721,7 +727,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
721___ 727___
722$code.=<<___; 728$code.=<<___;
723 .set reorder 729 .set reorder
724 la $Tbl,AES_Td # PIC-ified 'load address' 730 $LA $Tbl,AES_Td # PIC-ified 'load address'
725 731
726 lwl $s0,0+$MSB($inp) 732 lwl $s0,0+$MSB($inp)
727 lwl $s1,4+$MSB($inp) 733 lwl $s1,4+$MSB($inp)
@@ -1060,7 +1066,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
1060___ 1066___
1061$code.=<<___; 1067$code.=<<___;
1062 .set reorder 1068 .set reorder
1063 la $Tbl,AES_Te # PIC-ified 'load address' 1069 $LA $Tbl,AES_Te # PIC-ified 'load address'
1064 1070
1065 bal _mips_AES_set_encrypt_key 1071 bal _mips_AES_set_encrypt_key
1066 1072
@@ -1115,7 +1121,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
1115___ 1121___
1116$code.=<<___; 1122$code.=<<___;
1117 .set reorder 1123 .set reorder
1118 la $Tbl,AES_Te # PIC-ified 'load address' 1124 $LA $Tbl,AES_Te # PIC-ified 'load address'
1119 1125
1120 bal _mips_AES_set_encrypt_key 1126 bal _mips_AES_set_encrypt_key
1121 1127
diff --git a/src/lib/libcrypto/sha/asm/sha512-mips.pl b/src/lib/libcrypto/sha/asm/sha512-mips.pl
index 2714794c2f..495a000695 100644
--- a/src/lib/libcrypto/sha/asm/sha512-mips.pl
+++ b/src/lib/libcrypto/sha/asm/sha512-mips.pl
@@ -47,6 +47,12 @@
47# 47#
48$flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64 48$flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64
49 49
50if ($flavour =~ /64/i) {
51 $LA="dla";
52} else {
53 $LA="la";
54}
55
50if ($flavour =~ /64|n32/i) { 56if ($flavour =~ /64|n32/i) {
51 $PTR_ADD="dadd"; # incidentally works even on n32 57 $PTR_ADD="dadd"; # incidentally works even on n32
52 $PTR_SUB="dsub"; # incidentally works even on n32 58 $PTR_SUB="dsub"; # incidentally works even on n32
@@ -284,7 +290,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
284___ 290___
285$code.=<<___; 291$code.=<<___;
286 .set reorder 292 .set reorder
287 la $Ktbl,K${label} # PIC-ified 'load address' 293 $LA $Ktbl,K${label} # PIC-ified 'load address'
288 294
289 $LD $A,0*$SZ($ctx) # load context 295 $LD $A,0*$SZ($ctx) # load context
290 $LD $B,1*$SZ($ctx) 296 $LD $B,1*$SZ($ctx)
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 @@
49# 49#
50$flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64 50$flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64
51 51
52if ($flavour =~ /64/i) {
53 $LA="dla";
54} else {
55 $LA="la";
56}
57
52if ($flavour =~ /64|n32/i) { 58if ($flavour =~ /64|n32/i) {
53 $PTR_ADD="dadd"; # incidentally works even on n32 59 $PTR_ADD="dadd"; # incidentally works even on n32
54 $PTR_SUB="dsub"; # incidentally works even on n32 60 $PTR_SUB="dsub"; # incidentally works even on n32
@@ -385,7 +391,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
385___ 391___
386$code.=<<___; 392$code.=<<___;
387 .set reorder 393 .set reorder
388 la $Tbl,AES_Te # PIC-ified 'load address' 394 $LA $Tbl,AES_Te # PIC-ified 'load address'
389 395
390 lwl $s0,0+$MSB($inp) 396 lwl $s0,0+$MSB($inp)
391 lwl $s1,4+$MSB($inp) 397 lwl $s1,4+$MSB($inp)
@@ -721,7 +727,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
721___ 727___
722$code.=<<___; 728$code.=<<___;
723 .set reorder 729 .set reorder
724 la $Tbl,AES_Td # PIC-ified 'load address' 730 $LA $Tbl,AES_Td # PIC-ified 'load address'
725 731
726 lwl $s0,0+$MSB($inp) 732 lwl $s0,0+$MSB($inp)
727 lwl $s1,4+$MSB($inp) 733 lwl $s1,4+$MSB($inp)
@@ -1060,7 +1066,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
1060___ 1066___
1061$code.=<<___; 1067$code.=<<___;
1062 .set reorder 1068 .set reorder
1063 la $Tbl,AES_Te # PIC-ified 'load address' 1069 $LA $Tbl,AES_Te # PIC-ified 'load address'
1064 1070
1065 bal _mips_AES_set_encrypt_key 1071 bal _mips_AES_set_encrypt_key
1066 1072
@@ -1115,7 +1121,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
1115___ 1121___
1116$code.=<<___; 1122$code.=<<___;
1117 .set reorder 1123 .set reorder
1118 la $Tbl,AES_Te # PIC-ified 'load address' 1124 $LA $Tbl,AES_Te # PIC-ified 'load address'
1119 1125
1120 bal _mips_AES_set_encrypt_key 1126 bal _mips_AES_set_encrypt_key
1121 1127
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 @@
47# 47#
48$flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64 48$flavour = shift; # supported flavours are o32,n32,64,nubi32,nubi64
49 49
50if ($flavour =~ /64/i) {
51 $LA="dla";
52} else {
53 $LA="la";
54}
55
50if ($flavour =~ /64|n32/i) { 56if ($flavour =~ /64|n32/i) {
51 $PTR_ADD="dadd"; # incidentally works even on n32 57 $PTR_ADD="dadd"; # incidentally works even on n32
52 $PTR_SUB="dsub"; # incidentally works even on n32 58 $PTR_SUB="dsub"; # incidentally works even on n32
@@ -284,7 +290,7 @@ $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
284___ 290___
285$code.=<<___; 291$code.=<<___;
286 .set reorder 292 .set reorder
287 la $Ktbl,K${label} # PIC-ified 'load address' 293 $LA $Ktbl,K${label} # PIC-ified 'load address'
288 294
289 $LD $A,0*$SZ($ctx) # load context 295 $LD $A,0*$SZ($ctx) # load context
290 $LD $B,1*$SZ($ctx) 296 $LD $B,1*$SZ($ctx)