diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2015-05-03 17:06:56 +0300 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2015-05-14 10:18:06 +0300 |
commit | c46b015bedba7ce0db68929bd33a86a54ab3d919 (patch) | |
tree | 412ff5dd1f1a421331684d5f9b6bf51f3c38d99c /cipher/arcfour-amd64.S | |
parent | ee8fc4edcb3466b03246c8720b90731bf274ff1d (diff) | |
download | libgcrypt-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.S | 13 |
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 |