Index: third_party/boringssl/mac-x86_64/crypto/rand/rdrand-x86_64.S |
diff --git a/third_party/boringssl/mac-x86_64/crypto/rand/rdrand-x86_64.S b/third_party/boringssl/mac-x86_64/crypto/rand/rdrand-x86_64.S |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f0df296e1a3c8bb13de7dd57e51bd55f998f0261 |
--- /dev/null |
+++ b/third_party/boringssl/mac-x86_64/crypto/rand/rdrand-x86_64.S |
@@ -0,0 +1,48 @@ |
+#if defined(__x86_64__) |
+.text |
+ |
+ |
+ |
+ |
+.globl _CRYPTO_rdrand |
+.private_extern _CRYPTO_rdrand |
+ |
+.p2align 4 |
+_CRYPTO_rdrand: |
+ xorq %rax,%rax |
+ |
+ |
+.byte 0x48, 0x0f, 0xc7, 0xf1 |
+ |
+ adcq %rax,%rax |
+ movq %rcx,0(%rdi) |
+ .byte 0xf3,0xc3 |
+ |
+ |
+ |
+ |
+ |
+.globl _CRYPTO_rdrand_multiple8_buf |
+.private_extern _CRYPTO_rdrand_multiple8_buf |
+ |
+.p2align 4 |
+_CRYPTO_rdrand_multiple8_buf: |
+ testq %rsi,%rsi |
+ jz L$out |
+ movq $8,%rdx |
+L$loop: |
+ |
+ |
+.byte 0x48, 0x0f, 0xc7, 0xf1 |
+ jnc L$err |
+ movq %rcx,0(%rdi) |
+ addq %rdx,%rdi |
+ subq %rdx,%rsi |
+ jnz L$loop |
+L$out: |
+ movq $1,%rax |
+ .byte 0xf3,0xc3 |
+L$err: |
+ xorq %rax,%rax |
+ .byte 0xf3,0xc3 |
+#endif |