aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/utils
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2015-07-25 00:00:51 -0400
committerJack Lloyd <[email protected]>2015-07-25 00:00:51 -0400
commit46c134b0f9524a47e7ee74b798e83fcc33b74202 (patch)
tree084b82e407e3dc92bdd70063d14e3302a43a2fd7 /src/lib/utils
parent0689b07d9ddc7c10a868691b1ae33dd1c5432490 (diff)
Remove the x86 asm versions of MD4, MD5, SHA-1 and Serpent
With modern compilers, all are slower than the C++ and SSE2 versions of the same algos. GH #216
Diffstat (limited to 'src/lib/utils')
-rw-r--r--src/lib/utils/asm_x86_32/asm_x86_32.h128
-rw-r--r--src/lib/utils/asm_x86_32/info.txt26
-rw-r--r--src/lib/utils/asm_x86_64/asm_x86_64.h127
-rw-r--r--src/lib/utils/asm_x86_64/info.txt24
4 files changed, 0 insertions, 305 deletions
diff --git a/src/lib/utils/asm_x86_32/asm_x86_32.h b/src/lib/utils/asm_x86_32/asm_x86_32.h
deleted file mode 100644
index 7149b8db5..000000000
--- a/src/lib/utils/asm_x86_32/asm_x86_32.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
-* Assembly Macros for 32-bit x86
-* (C) 1999-2008 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_ASM_MACROS_X86_32_H__
-#define BOTAN_ASM_MACROS_X86_32_H__
-
-/*
-* General/Global Macros
-*/
-#define ALIGN .p2align 4,,15
-
-#define START_LISTING(FILENAME) \
- .file #FILENAME; \
- .text; \
- ALIGN;
-
-#if defined(__ELF__)
-.section .note.GNU-stack,"",%progbits
-#endif
-
-/*
-* Function Definitions
-*/
-#define START_FUNCTION(func_name) \
- ALIGN; \
- .global func_name; \
- .type func_name,@function; \
-func_name:
-
-#define END_FUNCTION(func_name) \
- ret
-
-/*
-* Loop Control
-*/
-#define START_LOOP(LABEL) \
- ALIGN; \
- LABEL##_LOOP:
-
-#define LOOP_UNTIL_EQ(REG, NUM, LABEL) \
- cmpl IMM(NUM), REG; \
- jne LABEL##_LOOP
-
-#define LOOP_UNTIL_LT(REG, NUM, LABEL) \
- cmpl IMM(NUM), REG; \
- jge LABEL##_LOOP
-
-/*
- Conditional Jumps
-*/
-#define JUMP_IF_ZERO(REG, LABEL) \
- cmpl IMM(0), REG; \
- jz LABEL
-
-#define JUMP_IF_LT(REG, NUM, LABEL) \
- cmpl IMM(NUM), REG; \
- jl LABEL
-
-/*
-* Register Names
-*/
-#define EAX %eax
-#define EBX %ebx
-#define ECX %ecx
-#define EDX %edx
-#define EBP %ebp
-#define EDI %edi
-#define ESI %esi
-#define ESP %esp
-
-/*
-* Memory Access Operations
-*/
-#define ARRAY1(REG, NUM) (NUM)(REG)
-#define ARRAY4(REG, NUM) 4*(NUM)(REG)
-#define ARRAY4_INDIRECT(BASE, OFFSET, NUM) 4*(NUM)(BASE,OFFSET,4)
-#define ARG(NUM) 4*(PUSHED) + ARRAY4(ESP, NUM)
-
-#define ASSIGN(TO, FROM) movl FROM, TO
-#define ASSIGN_BYTE(TO, FROM) movzbl FROM, TO
-
-#define PUSH(REG) pushl REG
-#define POP(REG) popl REG
-
-#define SPILL_REGS() \
- PUSH(EBP) ; \
- PUSH(EDI) ; \
- PUSH(ESI) ; \
- PUSH(EBX)
-
-#define RESTORE_REGS() \
- POP(EBX) ; \
- POP(ESI) ; \
- POP(EDI) ; \
- POP(EBP)
-
-/*
-* ALU Operations
-*/
-#define IMM(VAL) $VAL
-
-#define ADD(TO, FROM) addl FROM, TO
-#define ADD_IMM(TO, NUM) ADD(TO, IMM(NUM))
-#define ADD_W_CARRY(TO1, TO2, FROM) addl FROM, TO1; adcl IMM(0), TO2;
-#define SUB_IMM(TO, NUM) subl IMM(NUM), TO
-#define ADD2_IMM(TO, FROM, NUM) leal NUM(FROM), TO
-#define ADD3_IMM(TO, FROM, NUM) leal NUM(TO,FROM,1), TO
-#define MUL(REG) mull REG
-
-#define SHL_IMM(REG, SHIFT) shll IMM(SHIFT), REG
-#define SHR_IMM(REG, SHIFT) shrl IMM(SHIFT), REG
-#define SHL2_3(TO, FROM) leal 0(,FROM,8), TO
-
-#define XOR(TO, FROM) xorl FROM, TO
-#define AND(TO, FROM) andl FROM, TO
-#define OR(TO, FROM) orl FROM, TO
-#define NOT(REG) notl REG
-#define ZEROIZE(REG) XOR(REG, REG)
-
-#define ROTL_IMM(REG, NUM) roll IMM(NUM), REG
-#define ROTR_IMM(REG, NUM) rorl IMM(NUM), REG
-#define BSWAP(REG) bswapl REG
-
-#endif
diff --git a/src/lib/utils/asm_x86_32/info.txt b/src/lib/utils/asm_x86_32/info.txt
deleted file mode 100644
index 8eeefe70e..000000000
--- a/src/lib/utils/asm_x86_32/info.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-load_on dep
-
-<header:internal>
-asm_x86_32.h
-</header:internal>
-
-<arch>
-x86_32
-</arch>
-
-# ELF systems
-<os>
-android
-linux
-freebsd
-dragonfly
-netbsd
-openbsd
-solaris
-</os>
-
-<cc>
-gcc
-clang
-icc
-</cc>
diff --git a/src/lib/utils/asm_x86_64/asm_x86_64.h b/src/lib/utils/asm_x86_64/asm_x86_64.h
deleted file mode 100644
index eaf4388de..000000000
--- a/src/lib/utils/asm_x86_64/asm_x86_64.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
-* Assembly Macros for 64-bit x86
-* (C) 1999-2008 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_ASM_MACROS_X86_64_H__
-#define BOTAN_ASM_MACROS_X86_64_H__
-
-/*
-* General/Global Macros
-*/
-#define ALIGN .p2align 4,,15
-
-#define START_LISTING(FILENAME) \
- .file #FILENAME; \
- .text; \
- ALIGN;
-
-#if defined(__ELF__)
-.section .note.GNU-stack,"",%progbits
-#endif
-
-/*
-* Function Definitions
-*/
-#define START_FUNCTION(func_name) \
- ALIGN; \
- .global func_name; \
- .type func_name,@function; \
-func_name:
-
-#define END_FUNCTION(func_name) \
- ret
-
-/*
-* Conditional Jumps
-*/
-#define JUMP_IF_ZERO(REG, LABEL) \
- cmp IMM(0), REG; \
- jz LABEL
-
-#define JUMP_IF_LT(REG, NUM, LABEL) \
- cmp IMM(NUM), REG; \
- jl LABEL
-
-/*
-* Register Names
-*/
-#define R0 %rax
-#define R1 %rbx
-#define R2 %rcx
-#define R2_32 %ecx
-#define R3 %rdx
-#define R3_32 %edx
-#define R4 %rsp
-#define R5 %rbp
-#define R6 %rsi
-#define R6_32 %esi
-#define R7 %rdi
-#define R8 %r8
-#define R9 %r9
-#define R9_32 %r9d
-#define R10 %r10
-#define R11 %r11
-#define R12 %r12
-#define R13 %r13
-#define R14 %r14
-#define R15 %r15
-#define R16 %r16
-
-#define ARG_1 R7
-#define ARG_2 R6
-#define ARG_2_32 R6_32
-#define ARG_3 R3
-#define ARG_3_32 R3_32
-#define ARG_4 R2
-#define ARG_4_32 R2_32
-#define ARG_5 R8
-#define ARG_6 R9
-#define ARG_6_32 R9_32
-
-#define TEMP_1 R10
-#define TEMP_2 R11
-#define TEMP_3 ARG_6
-#define TEMP_4 ARG_5
-#define TEMP_5 ARG_4
-#define TEMP_5_32 ARG_4_32
-#define TEMP_6 ARG_3
-#define TEMP_7 ARG_2
-#define TEMP_8 ARG_1
-#define TEMP_9 R0
-
-/*
-* Memory Access Operations
-*/
-#define ARRAY8(REG, NUM) 8*(NUM)(REG)
-#define ARRAY4(REG, NUM) 4*(NUM)(REG)
-
-#define ASSIGN(TO, FROM) mov FROM, TO
-
-/*
-* ALU Operations
-*/
-#define IMM(VAL) $VAL
-
-#define ADD(TO, FROM) add FROM, TO
-#define ADD_LAST_CARRY(REG) adc IMM(0), REG
-#define ADD_IMM(TO, NUM) ADD(TO, IMM(NUM))
-#define ADD_W_CARRY(TO1, TO2, FROM) add FROM, TO1; adc IMM(0), TO2;
-#define SUB_IMM(TO, NUM) sub IMM(NUM), TO
-#define MUL(REG) mul REG
-
-#define XOR(TO, FROM) xor FROM, TO
-#define AND(TO, FROM) and FROM, TO
-#define OR(TO, FROM) or FROM, TO
-#define NOT(REG) not REG
-#define ZEROIZE(REG) XOR(REG, REG)
-
-#define RETURN_VALUE_IS(V) ASSIGN(%rax, V)
-
-#define ROTL_IMM(REG, NUM) rol IMM(NUM), REG
-#define ROTR_IMM(REG, NUM) ror IMM(NUM), REG
-#define ADD3_IMM(TO, FROM, NUM) lea NUM(TO,FROM,1), TO
-
-#endif
diff --git a/src/lib/utils/asm_x86_64/info.txt b/src/lib/utils/asm_x86_64/info.txt
deleted file mode 100644
index 8e381486d..000000000
--- a/src/lib/utils/asm_x86_64/info.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-load_on dep
-
-<header:internal>
-asm_x86_64.h
-</header:internal>
-
-<arch>
-x86_64
-</arch>
-
-<cc>
-clang
-gcc
-icc
-</cc>
-
-# ELF systems
-<os>
-android
-linux
-netbsd
-openbsd
-solaris
-</os>