diff options
author | miod <> | 2014-12-07 15:55:58 +0000 |
---|---|---|
committer | miod <> | 2014-12-07 15:55:58 +0000 |
commit | 7b2dca192e4d7b709c9f3f00542509fcd3b58b39 (patch) | |
tree | 1bcb120b12cbccfa0ccbdffff9a2f365a3532eb6 /src | |
parent | 2a5c8a2aac92f6b7274d00080eb7e865b9d4ff56 (diff) | |
download | openbsd-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.pl | 14 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/asm/sha512-mips.pl | 8 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/aes/asm/aes-mips.pl | 14 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/sha/asm/sha512-mips.pl | 8 |
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 | ||
52 | if ($flavour =~ /64/i) { | ||
53 | $LA="dla"; | ||
54 | } else { | ||
55 | $LA="la"; | ||
56 | } | ||
57 | |||
52 | if ($flavour =~ /64|n32/i) { | 58 | if ($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 | ||
50 | if ($flavour =~ /64/i) { | ||
51 | $LA="dla"; | ||
52 | } else { | ||
53 | $LA="la"; | ||
54 | } | ||
55 | |||
50 | if ($flavour =~ /64|n32/i) { | 56 | if ($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 | ||
52 | if ($flavour =~ /64/i) { | ||
53 | $LA="dla"; | ||
54 | } else { | ||
55 | $LA="la"; | ||
56 | } | ||
57 | |||
52 | if ($flavour =~ /64|n32/i) { | 58 | if ($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 | ||
50 | if ($flavour =~ /64/i) { | ||
51 | $LA="dla"; | ||
52 | } else { | ||
53 | $LA="la"; | ||
54 | } | ||
55 | |||
50 | if ($flavour =~ /64|n32/i) { | 56 | if ($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) |