diff options
author | Niels Möller <nisse@lysator.liu.se> | 2022-10-30 11:15:47 +0100 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2022-10-30 11:15:47 +0100 |
commit | 261f52f4590d4bc8fbaa8762c72bdedf8fbc629a (patch) | |
tree | e1e5fd89d49c3421a51b388b21a00f77824222df | |
parent | f72c33d46a9c4e5c3d205562cf4b2b86109c7d9e (diff) | |
download | nettle-261f52f4590d4bc8fbaa8762c72bdedf8fbc629a.tar.gz |
Delete old copy
-rw-r--r-- | x86_64/poly1305-internal.asm | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/x86_64/poly1305-internal.asm b/x86_64/poly1305-internal.asm index 95c39a91..7ce415a4 100644 --- a/x86_64/poly1305-internal.asm +++ b/x86_64/poly1305-internal.asm @@ -160,110 +160,6 @@ undefine(`H1') undefine(`F0') undefine(`F1') -C const uint8_t * -C _nettle_poly1305_blocks (struct poly1305_ctx *ctx, size_t blocks, const uint8_t *m) - -define(`BLOCKS', `%rsi') -define(`MP_PARAM', `%rdx') C Moved to MP, to not collide with mul instruction. - -define(`MP', `%r8') C May clobber, both with unix and windows conventions. -define(`T0', `%rbx') -define(`T1', `%rcx') -define(`H0', `%rbp') -define(`H1', `%r9') -define(`H2', `%r10') -define(`F0', `%r11') -define(`F1', `%r12') -PROLOGUE(_nettle_poly1305_blocks) - W64_ENTRY(3, 0) - mov MP_PARAM, MP - test BLOCKS, BLOCKS - jz .Lend - - push %rbx - push %rbp - push %r12 - mov P1305_H0 (CTX), H0 - mov P1305_H1 (CTX), H1 - mov P1305_H2 (CTX), H2 - ALIGN(16) -.Loop: - mov (MP), T0 - mov 8(MP), T1 - add $16, MP - - add H0, T0 - adc H1, T1 - adc $1, H2 - - mov P1305_R1 (CTX), %rax - mul T0 C R1*T0 - mov %rax, F0 - mov %rdx, F1 - - mov T0, %rax C Last use of T0 input - mov P1305_R0 (CTX), T0 - mul T0 C R0*T0 - mov %rax, H0 - mov %rdx, H1 - - mov T1, %rax - mul T0 C R0*T1 - add %rax, F0 - adc %rdx, F1 - - mov P1305_S1 (CTX), T0 - mov T1, %rax C Last use of T1 input - mul T0 C S1*T1 - add %rax, H0 - adc %rdx, H1 - - mov H2, %rax - mul T0 C S1*H2 - add %rax, F0 - adc %rdx, F1 - - mov H2, T0 - and $3, H2 - - shr $2, T0 - mov P1305_S0 (CTX), %rax - mul T0 C S0*(H2 >> 2) - add %rax, H0 - adc %rdx, H1 - - imul P1305_R0 (CTX), H2 C R0*(H2 & 3) - add F0, H1 - adc F1, H2 - - dec BLOCKS - jnz .Loop - - mov H0, P1305_H0 (CTX) - mov H1, P1305_H1 (CTX) - mov H2, P1305_H2 (CTX) - - pop %r12 - pop %rbp - pop %rbx - -.Lend: - mov MP, %rax - W64_EXIT(3, 0) - ret -EPILOGUE(_nettle_poly1305_blocks) -undefine(`BLOCKS') -undefine(`MP_PARAM') -undefine(`MP') -undefine(`T0', `%rbx') -undefine(`T1', `%rcx') -undefine(`H0', `%r8') -undefine(`H1', `%r9') -undefine(`H2', `%r10') -undefine(`F0', `%r11') -undefine(`F1', `%r12') - - C _poly1305_digest (struct poly1305_ctx *ctx, uint8_t *s) define(`S', `%rsi') |