diff options
Diffstat (limited to 'src/bigint')
-rw-r--r-- | src/bigint/asm_amd64/asm_macr.h | 125 | ||||
-rw-r--r-- | src/bigint/asm_ia32/asm_macr.h | 131 | ||||
-rw-r--r-- | src/bigint/info.txt | 2 | ||||
-rw-r--r-- | src/bigint/mp_amd64/info.txt (renamed from src/bigint/mp_amd64/xxxinfo.txt) | 0 | ||||
-rw-r--r-- | src/bigint/mp_ia32/info.txt (renamed from src/bigint/mp_ia32/xxxinfo.txt) | 2 |
5 files changed, 2 insertions, 258 deletions
diff --git a/src/bigint/asm_amd64/asm_macr.h b/src/bigint/asm_amd64/asm_macr.h deleted file mode 100644 index 3cdd42dc6..000000000 --- a/src/bigint/asm_amd64/asm_macr.h +++ /dev/null @@ -1,125 +0,0 @@ -/************************************************* -* Assembly Macros Header File * -* (C) 1999-2008 Jack Lloyd * -*************************************************/ - -#ifndef BOTAN_AMD64_ASM_MACROS_H__ -#define BOTAN_AMD64_ASM_MACROS_H__ - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif - -/************************************************* -* General/Global Macros * -*************************************************/ -#define ALIGN .p2align 4,,15 - -#define START_LISTING(FILENAME) \ - .file #FILENAME; \ - .text; \ - ALIGN; - -/************************************************* -* 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/bigint/asm_ia32/asm_macr.h b/src/bigint/asm_ia32/asm_macr.h deleted file mode 100644 index 6d5dbb59d..000000000 --- a/src/bigint/asm_ia32/asm_macr.h +++ /dev/null @@ -1,131 +0,0 @@ -/************************************************* -* Assembly Macros Header File * -* (C) 1999-2008 Jack Lloyd * -*************************************************/ - -#ifndef BOTAN_IA32_ASM_MACROS_H__ -#define BOTAN_IA32_ASM_MACROS_H__ - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif - -/************************************************* -* General/Global Macros * -*************************************************/ -#define ALIGN .p2align 4,,15 - -#define START_LISTING(FILENAME) \ - .file #FILENAME; \ - .text; \ - .p2align 4,,15; - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif - -/************************************************* -* Function Definitions * -*************************************************/ -#define START_FUNCTION(func_name) \ - .align 8; \ - 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/bigint/info.txt b/src/bigint/info.txt index 966d719d6..33b738d49 100644 --- a/src/bigint/info.txt +++ b/src/bigint/info.txt @@ -6,7 +6,7 @@ define BIGINT <requires> hex -mp_generic +mp_ia32 </requires> <add> diff --git a/src/bigint/mp_amd64/xxxinfo.txt b/src/bigint/mp_amd64/info.txt index 797d3833a..797d3833a 100644 --- a/src/bigint/mp_amd64/xxxinfo.txt +++ b/src/bigint/mp_amd64/info.txt diff --git a/src/bigint/mp_ia32/xxxinfo.txt b/src/bigint/mp_ia32/info.txt index 98c66e190..51f98fda8 100644 --- a/src/bigint/mp_ia32/xxxinfo.txt +++ b/src/bigint/mp_ia32/info.txt @@ -1,4 +1,4 @@ -realname "MPI Core (x86)" +realname "MPI Core (IA-32)" mp_bits 32 |