summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorderaadt <>2017-12-11 05:48:01 +0000
committerderaadt <>2017-12-11 05:48:01 +0000
commit739b09b33140a7cde6da09372fc371d59f4751c7 (patch)
treef45f495aceb89570179a0b9f1d0c3150b6da956e
parentf470834311fadde98f690758b95be8f61963fddb (diff)
downloadopenbsd-739b09b33140a7cde6da09372fc371d59f4751c7.tar.gz
openbsd-739b09b33140a7cde6da09372fc371d59f4751c7.tar.bz2
openbsd-739b09b33140a7cde6da09372fc371d59f4751c7.zip
http://repzret.org/p/repzret/
My read of this: Long time ago (Think Conan, not dinasaurs) during the race to make speedier processors, a cpu vendor built a pipeline with a bad stall, and proposed a tremendously hasky workaround. A wizard adopted this into his perl scroll, and failed to reflect later when no compiler adopted the practice. This relic remains at the tail end of some functions in OpenSSL as ".byte 0xf3,0xc3". Banish it straight to hell. ok mlarkin, others also stared blankly
-rwxr-xr-xsrc/lib/libcrypto/aes/asm/aes-x86_64.pl10
-rw-r--r--src/lib/libcrypto/camellia/asm/cmll-x86_64.pl4
-rwxr-xr-xsrc/lib/libcrypto/perlasm/x86_64-xlate.pl2
3 files changed, 8 insertions, 8 deletions
diff --git a/src/lib/libcrypto/aes/asm/aes-x86_64.pl b/src/lib/libcrypto/aes/asm/aes-x86_64.pl
index c37fd55648..9072f603a9 100755
--- a/src/lib/libcrypto/aes/asm/aes-x86_64.pl
+++ b/src/lib/libcrypto/aes/asm/aes-x86_64.pl
@@ -352,7 +352,7 @@ ___
352___ 352___
353 } 353 }
354$code.=<<___; 354$code.=<<___;
355 .byte 0xf3,0xc3 # rep ret 355 retq
356.size _x86_64_AES_encrypt,.-_x86_64_AES_encrypt 356.size _x86_64_AES_encrypt,.-_x86_64_AES_encrypt
357___ 357___
358 358
@@ -580,7 +580,7 @@ $code.=<<___;
580 xor 4($key),$s1 580 xor 4($key),$s1
581 xor 8($key),$s2 581 xor 8($key),$s2
582 xor 12($key),$s3 582 xor 12($key),$s3
583 .byte 0xf3,0xc3 # rep ret 583 retq
584.size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact 584.size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact
585___ 585___
586 586
@@ -925,7 +925,7 @@ ___
925___ 925___
926 } 926 }
927$code.=<<___; 927$code.=<<___;
928 .byte 0xf3,0xc3 # rep ret 928 retq
929.size _x86_64_AES_decrypt,.-_x86_64_AES_decrypt 929.size _x86_64_AES_decrypt,.-_x86_64_AES_decrypt
930___ 930___
931 931
@@ -1179,7 +1179,7 @@ $code.=<<___;
1179 xor 4($key),$s1 1179 xor 4($key),$s1
1180 xor 8($key),$s2 1180 xor 8($key),$s2
1181 xor 12($key),$s3 1181 xor 12($key),$s3
1182 .byte 0xf3,0xc3 # rep ret 1182 retq
1183.size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact 1183.size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact
1184___ 1184___
1185 1185
@@ -1496,7 +1496,7 @@ $code.=<<___;
1496.Lbadpointer: 1496.Lbadpointer:
1497 mov \$-1,%rax 1497 mov \$-1,%rax
1498.Lexit: 1498.Lexit:
1499 .byte 0xf3,0xc3 # rep ret 1499 retq
1500.size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key 1500.size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
1501___ 1501___
1502 1502
diff --git a/src/lib/libcrypto/camellia/asm/cmll-x86_64.pl b/src/lib/libcrypto/camellia/asm/cmll-x86_64.pl
index a171c654b2..df6bf11a28 100644
--- a/src/lib/libcrypto/camellia/asm/cmll-x86_64.pl
+++ b/src/lib/libcrypto/camellia/asm/cmll-x86_64.pl
@@ -218,7 +218,7 @@ $code.=<<___;
218 mov $t2,@S[2] 218 mov $t2,@S[2]
219 mov $t3,@S[3] 219 mov $t3,@S[3]
220 220
221 .byte 0xf3,0xc3 # rep ret 221 retq
222.size _x86_64_Camellia_encrypt,.-_x86_64_Camellia_encrypt 222.size _x86_64_Camellia_encrypt,.-_x86_64_Camellia_encrypt
223 223
224# V1.x API 224# V1.x API
@@ -329,7 +329,7 @@ $code.=<<___;
329 mov $t0,@S[2] 329 mov $t0,@S[2]
330 mov $t1,@S[3] 330 mov $t1,@S[3]
331 331
332 .byte 0xf3,0xc3 # rep ret 332 retq
333.size _x86_64_Camellia_decrypt,.-_x86_64_Camellia_decrypt 333.size _x86_64_Camellia_decrypt,.-_x86_64_Camellia_decrypt
334___ 334___
335 335
diff --git a/src/lib/libcrypto/perlasm/x86_64-xlate.pl b/src/lib/libcrypto/perlasm/x86_64-xlate.pl
index a8393d2730..5f7f585549 100755
--- a/src/lib/libcrypto/perlasm/x86_64-xlate.pl
+++ b/src/lib/libcrypto/perlasm/x86_64-xlate.pl
@@ -149,7 +149,7 @@ my %globals;
149 $epilogue = "movq 8(%rsp),%rdi\n\t" . 149 $epilogue = "movq 8(%rsp),%rdi\n\t" .
150 "movq 16(%rsp),%rsi\n\t"; 150 "movq 16(%rsp),%rsi\n\t";
151 } 151 }
152 $epilogue . ".byte 0xf3,0xc3"; 152 $epilogue . "retq";
153 } elsif ($self->{op} eq "call" && !$elf && $current_segment eq ".init") { 153 } elsif ($self->{op} eq "call" && !$elf && $current_segment eq ".init") {
154 ".p2align\t3\n\t.quad"; 154 ".p2align\t3\n\t.quad";
155 } else { 155 } else {