diff options
Diffstat (limited to 'src/math/bigint/mulop_ia32/mp_mulop.S')
-rw-r--r-- | src/math/bigint/mulop_ia32/mp_mulop.S | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/src/math/bigint/mulop_ia32/mp_mulop.S b/src/math/bigint/mulop_ia32/mp_mulop.S deleted file mode 100644 index 34cd58112..000000000 --- a/src/math/bigint/mulop_ia32/mp_mulop.S +++ /dev/null @@ -1,64 +0,0 @@ -/* -* Multiply/Add Algorithm in IA-32 assembler -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include <botan/internal/asm_macr_ia32.h> - -START_LISTING(mp_muladd.S) - -START_FUNCTION(bigint_mul_add_words) - SPILL_REGS() -#define PUSHED 4 - -#define LOOP_CTR ESI - ASSIGN(LOOP_CTR, ARG(3)) /* x_size */ - ZEROIZE(EDI) - - ASSIGN(ECX, ARG(1)) /* z[] */ - ASSIGN(EBX, ARG(2)) /* x[] */ - ASSIGN(EBP, ARG(4)) /* y */ - -#define MULADD_OP(N) \ - ASSIGN(EAX, ARRAY4(EBX, N)) ; \ - MUL(EBP) ; \ - ADD_W_CARRY(EAX, EDX, EDI) ; \ - ASSIGN(EDI, EDX) ; \ - ADD_W_CARRY(ARRAY4(ECX, N), EDI, EAX) ; - - JUMP_IF_ZERO(LOOP_CTR, .MUL_ADD_DONE) - JUMP_IF_LT(LOOP_CTR, 8, .MULADD1_LOOP) - -START_LOOP(.MULADD8) - MULADD_OP(0) - MULADD_OP(1) - MULADD_OP(2) - MULADD_OP(3) - MULADD_OP(4) - MULADD_OP(5) - MULADD_OP(6) - MULADD_OP(7) - - SUB_IMM(LOOP_CTR, 8) - ADD_IMM(EBX, 32) - ADD_IMM(ECX, 32) -LOOP_UNTIL_LT(LOOP_CTR, 8, .MULADD8) - - JUMP_IF_ZERO(LOOP_CTR, .MUL_ADD_DONE) - -START_LOOP(.MULADD1) - MULADD_OP(0) - - SUB_IMM(LOOP_CTR, 1) - ADD_IMM(EBX, 4) - ADD_IMM(ECX, 4) -LOOP_UNTIL_EQ(LOOP_CTR, 0, .MULADD1) - -.MUL_ADD_DONE: - - ASSIGN(EAX, EDI) -#undef PUSHED - RESTORE_REGS() -END_FUNCTION(bigint_mul_add_words) |