summaryrefslogtreecommitdiff
path: root/cipher/arcfour-amd64.S
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@iki.fi>2015-05-03 17:06:56 +0300
committerJussi Kivilinna <jussi.kivilinna@iki.fi>2015-05-14 10:18:06 +0300
commitc46b015bedba7ce0db68929bd33a86a54ab3d919 (patch)
tree412ff5dd1f1a421331684d5f9b6bf51f3c38d99c /cipher/arcfour-amd64.S
parentee8fc4edcb3466b03246c8720b90731bf274ff1d (diff)
downloadlibgcrypt-c46b015bedba7ce0db68929bd33a86a54ab3d919.tar.gz
Enable AMD64 arcfour implementation on WIN64
* cipher/arcfour-amd64.S: Enable when HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined. (ELF): New macro to mask lines with ELF specific commands. * cipher/arcfour.c (USE_AMD64_ASM): Enable when HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined. (do_encrypt, do_decrypt) [HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS]: Use assembly block to call AMD64 assembly function. -- Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'cipher/arcfour-amd64.S')
-rw-r--r--cipher/arcfour-amd64.S13
1 files changed, 10 insertions, 3 deletions
diff --git a/cipher/arcfour-amd64.S b/cipher/arcfour-amd64.S
index 8b8031a1..2e52ea00 100644
--- a/cipher/arcfour-amd64.S
+++ b/cipher/arcfour-amd64.S
@@ -15,12 +15,19 @@
#ifdef __x86_64__
#include <config.h>
-#if defined(USE_ARCFOUR) && defined(HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS)
+#if defined(USE_ARCFOUR) && (defined(HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS) || \
+ defined(HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS))
+
+#ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS
+# define ELF(...) __VA_ARGS__
+#else
+# define ELF(...) /*_*/
+#endif
.text
.align 16
.globl _gcry_arcfour_amd64
-.type _gcry_arcfour_amd64,@function
+ELF(.type _gcry_arcfour_amd64,@function)
_gcry_arcfour_amd64:
push %rbp
push %rbx
@@ -91,7 +98,7 @@ _gcry_arcfour_amd64:
pop %rbp
ret
.L__gcry_arcfour_amd64_end:
-.size _gcry_arcfour_amd64,.L__gcry_arcfour_amd64_end-_gcry_arcfour_amd64
+ELF(.size _gcry_arcfour_amd64,.L__gcry_arcfour_amd64_end-_gcry_arcfour_amd64)
#endif
#endif