rebase on newer SUPERCOP, use PIE, some other stuff

This commit is contained in:
cathugger
2022-05-05 13:22:34 +00:00
parent 0819ccd81d
commit f374555fd4
83 changed files with 2062 additions and 1955 deletions

View File

@@ -101,13 +101,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_choose_t
# qhasm: enter CRYPTO_NAMESPACE(choose_t)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_choose_t
.globl crypto_sign_ed25519_amd64_64_choose_t
_crypto_sign_ed25519_amd64_64_choose_t:
crypto_sign_ed25519_amd64_64_choose_t:
.globl _CRYPTO_NAMESPACE(choose_t)
.globl CRYPTO_NAMESPACE(choose_t)
_CRYPTO_NAMESPACE(choose_t):
CRYPTO_NAMESPACE(choose_t):
mov %rsp,%r11
and $31,%r11
add $64,%r11

View File

@@ -0,0 +1,39 @@
.section .rodata
.globl CRYPTO_NAMESPACE(121666)
.globl CRYPTO_NAMESPACE(MU0)
.globl CRYPTO_NAMESPACE(MU1)
.globl CRYPTO_NAMESPACE(MU2)
.globl CRYPTO_NAMESPACE(MU3)
.globl CRYPTO_NAMESPACE(MU4)
.globl CRYPTO_NAMESPACE(ORDER0)
.globl CRYPTO_NAMESPACE(ORDER1)
.globl CRYPTO_NAMESPACE(ORDER2)
.globl CRYPTO_NAMESPACE(ORDER3)
.globl CRYPTO_NAMESPACE(EC2D0)
.globl CRYPTO_NAMESPACE(EC2D1)
.globl CRYPTO_NAMESPACE(EC2D2)
.globl CRYPTO_NAMESPACE(EC2D3)
.globl CRYPTO_NAMESPACE(38)
.p2align 4
CRYPTO_NAMESPACE(121666): .quad 121666
CRYPTO_NAMESPACE(MU0): .quad 0xED9CE5A30A2C131B
CRYPTO_NAMESPACE(MU1): .quad 0x2106215D086329A7
CRYPTO_NAMESPACE(MU2): .quad 0xFFFFFFFFFFFFFFEB
CRYPTO_NAMESPACE(MU3): .quad 0xFFFFFFFFFFFFFFFF
CRYPTO_NAMESPACE(MU4): .quad 0x000000000000000F
CRYPTO_NAMESPACE(ORDER0): .quad 0x5812631A5CF5D3ED
CRYPTO_NAMESPACE(ORDER1): .quad 0x14DEF9DEA2F79CD6
CRYPTO_NAMESPACE(ORDER2): .quad 0x0000000000000000
CRYPTO_NAMESPACE(ORDER3): .quad 0x1000000000000000
CRYPTO_NAMESPACE(EC2D0): .quad 0xEBD69B9426B2F146
CRYPTO_NAMESPACE(EC2D1): .quad 0x00E0149A8283B156
CRYPTO_NAMESPACE(EC2D2): .quad 0x198E80F2EEF3D130
CRYPTO_NAMESPACE(EC2D3): .quad 0xA406D9DC56DFFCE7
CRYPTO_NAMESPACE(38): .quad 38

View File

@@ -1,39 +0,0 @@
.data
.globl crypto_sign_ed25519_amd64_64_121666
.globl crypto_sign_ed25519_amd64_64_MU0
.globl crypto_sign_ed25519_amd64_64_MU1
.globl crypto_sign_ed25519_amd64_64_MU2
.globl crypto_sign_ed25519_amd64_64_MU3
.globl crypto_sign_ed25519_amd64_64_MU4
.globl crypto_sign_ed25519_amd64_64_ORDER0
.globl crypto_sign_ed25519_amd64_64_ORDER1
.globl crypto_sign_ed25519_amd64_64_ORDER2
.globl crypto_sign_ed25519_amd64_64_ORDER3
.globl crypto_sign_ed25519_amd64_64_EC2D0
.globl crypto_sign_ed25519_amd64_64_EC2D1
.globl crypto_sign_ed25519_amd64_64_EC2D2
.globl crypto_sign_ed25519_amd64_64_EC2D3
.globl crypto_sign_ed25519_amd64_64_38
.p2align 4
crypto_sign_ed25519_amd64_64_121666: .quad 121666
crypto_sign_ed25519_amd64_64_MU0: .quad 0xED9CE5A30A2C131B
crypto_sign_ed25519_amd64_64_MU1: .quad 0x2106215D086329A7
crypto_sign_ed25519_amd64_64_MU2: .quad 0xFFFFFFFFFFFFFFEB
crypto_sign_ed25519_amd64_64_MU3: .quad 0xFFFFFFFFFFFFFFFF
crypto_sign_ed25519_amd64_64_MU4: .quad 0x000000000000000F
crypto_sign_ed25519_amd64_64_ORDER0: .quad 0x5812631A5CF5D3ED
crypto_sign_ed25519_amd64_64_ORDER1: .quad 0x14DEF9DEA2F79CD6
crypto_sign_ed25519_amd64_64_ORDER2: .quad 0x0000000000000000
crypto_sign_ed25519_amd64_64_ORDER3: .quad 0x1000000000000000
crypto_sign_ed25519_amd64_64_EC2D0: .quad 0xEBD69B9426B2F146
crypto_sign_ed25519_amd64_64_EC2D1: .quad 0x00E0149A8283B156
crypto_sign_ed25519_amd64_64_EC2D2: .quad 0x198E80F2EEF3D130
crypto_sign_ed25519_amd64_64_EC2D3: .quad 0xA406D9DC56DFFCE7
crypto_sign_ed25519_amd64_64_38: .quad 38

View File

@@ -1,9 +1,9 @@
#define crypto_sign ed25519_amd64_64_sign
#define crypto_sign_keypair ed25519_amd64_64_keygen
#define crypto_sign_seckey ed25519_amd64_64_seckey
#define crypto_sign_seckey_expand ed25519_amd64_64_seckey_expand
#define crypto_sign_pubkey ed25519_amd64_64_pubkey
#define crypto_sign_open ed25519_amd64_64_open
#define crypto_sign_open_batch ed25519_amd64_64_open_batch
#define crypto_sign CRYPTO_NAMESPACE(sign)
#define crypto_sign_keypair CRYPTO_NAMESPACE(keygen)
#define crypto_sign_seckey CRYPTO_NAMESPACE(seckey)
#define crypto_sign_seckey_expand CRYPTO_NAMESPACE(seckey_expand)
#define crypto_sign_pubkey CRYPTO_NAMESPACE(pubkey)
#define crypto_sign_open CRYPTO_NAMESPACE(open)
#define crypto_sign_open_batch CRYPTO_NAMESPACE(open_batch)
#include "ed25519.h"

View File

@@ -3,24 +3,24 @@
#include <stddef.h>
#define fe25519 crypto_sign_ed25519_amd64_64_fe25519
#define fe25519_freeze crypto_sign_ed25519_amd64_64_fe25519_freeze
#define fe25519_unpack crypto_sign_ed25519_amd64_64_fe25519_unpack
#define fe25519_pack crypto_sign_ed25519_amd64_64_fe25519_pack
#define fe25519_iszero_vartime crypto_sign_ed25519_amd64_64_fe25519_iszero_vartime
#define fe25519_iseq_vartime crypto_sign_ed25519_amd64_64_fe25519_iseq_vartime
#define fe25519_cmov crypto_sign_ed25519_amd64_64_fe25519_cmov
#define fe25519_setint crypto_sign_ed25519_amd64_64_fe25519_setint
#define fe25519_neg crypto_sign_ed25519_amd64_64_fe25519_neg
#define fe25519_getparity crypto_sign_ed25519_amd64_64_fe25519_getparity
#define fe25519_add crypto_sign_ed25519_amd64_64_fe25519_add
#define fe25519_sub crypto_sign_ed25519_amd64_64_fe25519_sub
#define fe25519_mul crypto_sign_ed25519_amd64_64_fe25519_mul
#define fe25519_mul121666 crypto_sign_ed25519_amd64_64_fe25519_mul121666
#define fe25519_square crypto_sign_ed25519_amd64_64_fe25519_square
#define fe25519_invert crypto_sign_ed25519_amd64_64_fe25519_invert
#define fe25519_batchinvert crypto_sign_ed25519_amd64_64_fe25519_batchinvert
#define fe25519_pow2523 crypto_sign_ed25519_amd64_64_fe25519_pow2523
#define fe25519 CRYPTO_NAMESPACE(fe25519)
#define fe25519_freeze CRYPTO_NAMESPACE(fe25519_freeze)
#define fe25519_unpack CRYPTO_NAMESPACE(fe25519_unpack)
#define fe25519_pack CRYPTO_NAMESPACE(fe25519_pack)
#define fe25519_iszero_vartime CRYPTO_NAMESPACE(fe25519_iszero_vartime)
#define fe25519_iseq_vartime CRYPTO_NAMESPACE(fe25519_iseq_vartime)
#define fe25519_cmov CRYPTO_NAMESPACE(fe25519_cmov)
#define fe25519_setint CRYPTO_NAMESPACE(fe25519_setint)
#define fe25519_neg CRYPTO_NAMESPACE(fe25519_neg)
#define fe25519_getparity CRYPTO_NAMESPACE(fe25519_getparity)
#define fe25519_add CRYPTO_NAMESPACE(fe25519_add)
#define fe25519_sub CRYPTO_NAMESPACE(fe25519_sub)
#define fe25519_mul CRYPTO_NAMESPACE(fe25519_mul)
#define fe25519_mul121666 CRYPTO_NAMESPACE(fe25519_mul121666)
#define fe25519_square CRYPTO_NAMESPACE(fe25519_square)
#define fe25519_invert CRYPTO_NAMESPACE(fe25519_invert)
#define fe25519_batchinvert CRYPTO_NAMESPACE(fe25519_batchinvert)
#define fe25519_pow2523 CRYPTO_NAMESPACE(fe25519_pow2523)
typedef struct
{

View File

@@ -65,13 +65,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_fe25519_add
# qhasm: enter CRYPTO_NAMESPACE(fe25519_add)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_fe25519_add
.globl crypto_sign_ed25519_amd64_64_fe25519_add
_crypto_sign_ed25519_amd64_64_fe25519_add:
crypto_sign_ed25519_amd64_64_fe25519_add:
.globl _CRYPTO_NAMESPACE(fe25519_add)
.globl CRYPTO_NAMESPACE(fe25519_add)
_CRYPTO_NAMESPACE(fe25519_add):
CRYPTO_NAMESPACE(fe25519_add):
mov %rsp,%r11
and $31,%r11
add $0,%r11

View File

@@ -63,13 +63,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_fe25519_freeze
# qhasm: enter CRYPTO_NAMESPACE(fe25519_freeze)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_fe25519_freeze
.globl crypto_sign_ed25519_amd64_64_fe25519_freeze
_crypto_sign_ed25519_amd64_64_fe25519_freeze:
crypto_sign_ed25519_amd64_64_fe25519_freeze:
.globl _CRYPTO_NAMESPACE(fe25519_freeze)
.globl CRYPTO_NAMESPACE(fe25519_freeze)
_CRYPTO_NAMESPACE(fe25519_freeze):
CRYPTO_NAMESPACE(fe25519_freeze):
mov %rsp,%r11
and $31,%r11
add $64,%r11

View File

@@ -89,13 +89,13 @@
# qhasm: int64 muli38
# qhasm: enter crypto_sign_ed25519_amd64_64_fe25519_mul
# qhasm: enter CRYPTO_NAMESPACE(fe25519_mul)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_fe25519_mul
.globl crypto_sign_ed25519_amd64_64_fe25519_mul
_crypto_sign_ed25519_amd64_64_fe25519_mul:
crypto_sign_ed25519_amd64_64_fe25519_mul:
.globl _CRYPTO_NAMESPACE(fe25519_mul)
.globl CRYPTO_NAMESPACE(fe25519_mul)
_CRYPTO_NAMESPACE(fe25519_mul):
CRYPTO_NAMESPACE(fe25519_mul):
mov %rsp,%r11
and $31,%r11
add $64,%r11
@@ -651,8 +651,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -669,8 +669,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -692,8 +692,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -715,8 +715,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6

View File

@@ -83,13 +83,13 @@
# qhasm: int64 squarei38
# qhasm: enter crypto_sign_ed25519_amd64_64_fe25519_square
# qhasm: enter CRYPTO_NAMESPACE(fe25519_square)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_fe25519_square
.globl crypto_sign_ed25519_amd64_64_fe25519_square
_crypto_sign_ed25519_amd64_64_fe25519_square:
crypto_sign_ed25519_amd64_64_fe25519_square:
.globl _CRYPTO_NAMESPACE(fe25519_square)
.globl CRYPTO_NAMESPACE(fe25519_square)
_CRYPTO_NAMESPACE(fe25519_square):
CRYPTO_NAMESPACE(fe25519_square):
mov %rsp,%r11
and $31,%r11
add $64,%r11
@@ -425,8 +425,8 @@ adc %rdx,%rcx
# asm 2: mov <squarer4=%r11,>squarerax=%rax
mov %r11,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: squarer4 = squarerax
# asm 1: mov <squarerax=int64#7,>squarer4=int64#2
@@ -443,8 +443,8 @@ mov %r12,%rax
# asm 2: mov <squarerdx=%rdx,>squarer5=%r11
mov %rdx,%r11
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer5 += squarerax
# asm 1: add <squarerax=int64#7,<squarer5=int64#9
@@ -466,8 +466,8 @@ mov $0,%r12
# asm 2: adc <squarerdx=%rdx,<squarer6=%r12
adc %rdx,%r12
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer6 += squarerax
# asm 1: add <squarerax=int64#7,<squarer6=int64#10
@@ -489,8 +489,8 @@ mov $0,%rcx
# asm 2: adc <squarerdx=%rdx,<squarer7=%rcx
adc %rdx,%rcx
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer7 += squarerax
# asm 1: add <squarerax=int64#7,<squarer7=int64#4

View File

@@ -65,13 +65,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_fe25519_sub
# qhasm: enter CRYPTO_NAMESPACE(fe25519_sub)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_fe25519_sub
.globl crypto_sign_ed25519_amd64_64_fe25519_sub
_crypto_sign_ed25519_amd64_64_fe25519_sub:
crypto_sign_ed25519_amd64_64_fe25519_sub:
.globl _CRYPTO_NAMESPACE(fe25519_sub)
.globl CRYPTO_NAMESPACE(fe25519_sub)
_CRYPTO_NAMESPACE(fe25519_sub):
CRYPTO_NAMESPACE(fe25519_sub):
mov %rsp,%r11
and $31,%r11
add $0,%r11

View File

@@ -4,24 +4,24 @@
#include "fe25519.h"
#include "sc25519.h"
#define ge25519 crypto_sign_ed25519_amd64_64_ge25519
#define ge25519_base crypto_sign_ed25519_amd64_64_ge25519_base
#define ge25519_unpackneg_vartime crypto_sign_ed25519_amd64_64_unpackneg_vartime
#define ge25519_pack crypto_sign_ed25519_amd64_64_pack
#define ge25519_isneutral_vartime crypto_sign_ed25519_amd64_64_isneutral_vartime
#define ge25519_add crypto_sign_ed25519_amd64_64_ge25519_add
#define ge25519_double crypto_sign_ed25519_amd64_64_ge25519_double
#define ge25519_double_scalarmult_vartime crypto_sign_ed25519_amd64_64_double_scalarmult_vartime
#define ge25519_multi_scalarmult_vartime crypto_sign_ed25519_amd64_64_ge25519_multi_scalarmult_vartime
#define ge25519_scalarmult_base crypto_sign_ed25519_amd64_64_scalarmult_base
#define ge25519_p1p1_to_p2 crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p2
#define ge25519_p1p1_to_p3 crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p3
#define ge25519_add_p1p1 crypto_sign_ed25519_amd64_64_ge25519_add_p1p1
#define ge25519_dbl_p1p1 crypto_sign_ed25519_amd64_64_ge25519_dbl_p1p1
#define choose_t crypto_sign_ed25519_amd64_64_choose_t
#define ge25519_nielsadd2 crypto_sign_ed25519_amd64_64_ge25519_nielsadd2
#define ge25519_nielsadd_p1p1 crypto_sign_ed25519_amd64_64_ge25519_nielsadd_p1p1
#define ge25519_pnielsadd_p1p1 crypto_sign_ed25519_amd64_64_ge25519_pnielsadd_p1p1
#define ge25519 CRYPTO_NAMESPACE(ge25519)
#define ge25519_base CRYPTO_NAMESPACE(ge25519_base)
#define ge25519_unpackneg_vartime CRYPTO_NAMESPACE(unpackneg_vartime)
#define ge25519_pack CRYPTO_NAMESPACE(pack)
#define ge25519_isneutral_vartime CRYPTO_NAMESPACE(isneutral_vartime)
#define ge25519_add CRYPTO_NAMESPACE(ge25519_add)
#define ge25519_double CRYPTO_NAMESPACE(ge25519_double)
#define ge25519_double_scalarmult_vartime CRYPTO_NAMESPACE(double_scalarmult_vartime)
#define ge25519_multi_scalarmult_vartime CRYPTO_NAMESPACE(ge25519_multi_scalarmult_vartime)
#define ge25519_scalarmult_base CRYPTO_NAMESPACE(scalarmult_base)
#define ge25519_p1p1_to_p2 CRYPTO_NAMESPACE(ge25519_p1p1_to_p2)
#define ge25519_p1p1_to_p3 CRYPTO_NAMESPACE(ge25519_p1p1_to_p3)
#define ge25519_add_p1p1 CRYPTO_NAMESPACE(ge25519_add_p1p1)
#define ge25519_dbl_p1p1 CRYPTO_NAMESPACE(ge25519_dbl_p1p1)
#define choose_t CRYPTO_NAMESPACE(choose_t)
#define ge25519_nielsadd2 CRYPTO_NAMESPACE(ge25519_nielsadd2)
#define ge25519_nielsadd_p1p1 CRYPTO_NAMESPACE(ge25519_nielsadd_p1p1)
#define ge25519_pnielsadd_p1p1 CRYPTO_NAMESPACE(ge25519_pnielsadd_p1p1)
#define ge25519_p3 ge25519

View File

@@ -225,13 +225,13 @@
# qhasm: int64 subt1
# qhasm: enter crypto_sign_ed25519_amd64_64_ge25519_add_p1p1
# qhasm: enter CRYPTO_NAMESPACE(ge25519_add_p1p1)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_ge25519_add_p1p1
.globl crypto_sign_ed25519_amd64_64_ge25519_add_p1p1
_crypto_sign_ed25519_amd64_64_ge25519_add_p1p1:
crypto_sign_ed25519_amd64_64_ge25519_add_p1p1:
.globl _CRYPTO_NAMESPACE(ge25519_add_p1p1)
.globl CRYPTO_NAMESPACE(ge25519_add_p1p1)
_CRYPTO_NAMESPACE(ge25519_add_p1p1):
CRYPTO_NAMESPACE(ge25519_add_p1p1):
mov %rsp,%r11
and $31,%r11
add $192,%r11
@@ -1207,8 +1207,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -1225,8 +1225,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -1248,8 +1248,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -1271,8 +1271,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -1889,8 +1889,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -1907,8 +1907,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -1930,8 +1930,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -1953,8 +1953,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -2741,8 +2741,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -2759,8 +2759,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -2782,8 +2782,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -2805,8 +2805,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -2938,10 +2938,10 @@ mov $0,%r11
# asm 2: movq <c0_stack=56(%rsp),>mulx0=%r12
movq 56(%rsp),%r12
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D0
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D0,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D0,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D0,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D0)
# asm 1: movq CRYPTO_NAMESPACE(EC2D0),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D0),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D0)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx0
# asm 1: mul <mulx0=int64#10
@@ -2958,10 +2958,10 @@ mov %rax,%r13
# asm 2: mov <mulrdx=%rdx,>c1=%r14
mov %rdx,%r14
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D1
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D1,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D1,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D1,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D1)
# asm 1: movq CRYPTO_NAMESPACE(EC2D1),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D1),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D1)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx0
# asm 1: mul <mulx0=int64#10
@@ -2983,10 +2983,10 @@ mov $0,%r15
# asm 2: adc <mulrdx=%rdx,<c2=%r15
adc %rdx,%r15
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D2
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D2,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D2,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D2,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D2)
# asm 1: movq CRYPTO_NAMESPACE(EC2D2),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D2),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D2)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx0
# asm 1: mul <mulx0=int64#10
@@ -3008,10 +3008,10 @@ mov $0,%rbx
# asm 2: adc <mulrdx=%rdx,<c3=%rbx
adc %rdx,%rbx
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D3
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D3,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D3,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D3,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D3)
# asm 1: movq CRYPTO_NAMESPACE(EC2D3),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D3),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D3)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx0
# asm 1: mul <mulx0=int64#10
@@ -3033,10 +3033,10 @@ adc %rdx,%r8
# asm 2: movq <c1_stack=64(%rsp),>mulx1=%r12
movq 64(%rsp),%r12
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D0
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D0,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D0,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D0,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D0)
# asm 1: movq CRYPTO_NAMESPACE(EC2D0),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D0),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D0)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx1
# asm 1: mul <mulx1=int64#10
@@ -3058,10 +3058,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D1
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D1,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D1,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D1,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D1)
# asm 1: movq CRYPTO_NAMESPACE(EC2D1),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D1),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D1)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx1
# asm 1: mul <mulx1=int64#10
@@ -3093,10 +3093,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D2
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D2,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D2,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D2,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D2)
# asm 1: movq CRYPTO_NAMESPACE(EC2D2),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D2),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D2)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx1
# asm 1: mul <mulx1=int64#10
@@ -3128,10 +3128,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D3
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D3,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D3,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D3,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D3)
# asm 1: movq CRYPTO_NAMESPACE(EC2D3),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D3),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D3)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx1
# asm 1: mul <mulx1=int64#10
@@ -3163,10 +3163,10 @@ adc %rdx,%r9
# asm 2: movq <c2_stack=72(%rsp),>mulx2=%r12
movq 72(%rsp),%r12
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D0
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D0,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D0,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D0,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D0)
# asm 1: movq CRYPTO_NAMESPACE(EC2D0),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D0),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D0)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx2
# asm 1: mul <mulx2=int64#10
@@ -3188,10 +3188,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D1
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D1,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D1,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D1,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D1)
# asm 1: movq CRYPTO_NAMESPACE(EC2D1),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D1),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D1)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx2
# asm 1: mul <mulx2=int64#10
@@ -3223,10 +3223,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D2
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D2,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D2,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D2,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D2)
# asm 1: movq CRYPTO_NAMESPACE(EC2D2),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D2),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D2)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx2
# asm 1: mul <mulx2=int64#10
@@ -3258,10 +3258,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D3
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D3,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D3,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D3,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D3)
# asm 1: movq CRYPTO_NAMESPACE(EC2D3),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D3),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D3)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx2
# asm 1: mul <mulx2=int64#10
@@ -3293,10 +3293,10 @@ adc %rdx,%r10
# asm 2: movq <c3_stack=80(%rsp),>mulx3=%r12
movq 80(%rsp),%r12
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D0
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D0,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D0,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D0,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D0)
# asm 1: movq CRYPTO_NAMESPACE(EC2D0),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D0),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D0)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx3
# asm 1: mul <mulx3=int64#10
@@ -3318,10 +3318,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D1
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D1,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D1,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D1,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D1)
# asm 1: movq CRYPTO_NAMESPACE(EC2D1),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D1),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D1)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx3
# asm 1: mul <mulx3=int64#10
@@ -3353,10 +3353,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D2
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D2,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D2,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D2,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D2)
# asm 1: movq CRYPTO_NAMESPACE(EC2D2),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D2),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D2)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx3
# asm 1: mul <mulx3=int64#10
@@ -3388,10 +3388,10 @@ mov $0,%rbp
# asm 2: adc <mulrdx=%rdx,<mulc=%rbp
adc %rdx,%rbp
# qhasm: mulrax = *(uint64 *)&crypto_sign_ed25519_amd64_64_EC2D3
# asm 1: movq crypto_sign_ed25519_amd64_64_EC2D3,>mulrax=int64#7
# asm 2: movq crypto_sign_ed25519_amd64_64_EC2D3,>mulrax=%rax
movq crypto_sign_ed25519_amd64_64_EC2D3,%rax
# qhasm: mulrax = *(uint64 *)&CRYPTO_NAMESPACE(EC2D3)
# asm 1: movq CRYPTO_NAMESPACE(EC2D3),>mulrax=int64#7
# asm 2: movq CRYPTO_NAMESPACE(EC2D3),>mulrax=%rax
movq CRYPTO_NAMESPACE(EC2D3)(%rip),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * mulx3
# asm 1: mul <mulx3=int64#10
@@ -3423,8 +3423,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -3441,8 +3441,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -3464,8 +3464,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -3487,8 +3487,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -4105,8 +4105,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -4123,8 +4123,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -4146,8 +4146,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -4169,8 +4169,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6

View File

@@ -233,13 +233,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_ge25519_dbl_p1p1
# qhasm: enter CRYPTO_NAMESPACE(ge25519_dbl_p1p1)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_ge25519_dbl_p1p1
.globl crypto_sign_ed25519_amd64_64_ge25519_dbl_p1p1
_crypto_sign_ed25519_amd64_64_ge25519_dbl_p1p1:
crypto_sign_ed25519_amd64_64_ge25519_dbl_p1p1:
.globl _CRYPTO_NAMESPACE(ge25519_dbl_p1p1)
.globl CRYPTO_NAMESPACE(ge25519_dbl_p1p1)
_CRYPTO_NAMESPACE(ge25519_dbl_p1p1):
CRYPTO_NAMESPACE(ge25519_dbl_p1p1):
mov %rsp,%r11
and $31,%r11
add $192,%r11
@@ -575,8 +575,8 @@ adc %rdx,%rcx
# asm 2: mov <squarer4=%r11,>squarerax=%rax
mov %r11,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: squarer4 = squarerax
# asm 1: mov <squarerax=int64#7,>squarer4=int64#9
@@ -593,8 +593,8 @@ mov %r12,%rax
# asm 2: mov <squarerdx=%rdx,>squarer5=%r12
mov %rdx,%r12
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer5 += squarerax
# asm 1: add <squarerax=int64#7,<squarer5=int64#10
@@ -616,8 +616,8 @@ mov $0,%r13
# asm 2: adc <squarerdx=%rdx,<squarer6=%r13
adc %rdx,%r13
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer6 += squarerax
# asm 1: add <squarerax=int64#7,<squarer6=int64#11
@@ -639,8 +639,8 @@ mov $0,%rcx
# asm 2: adc <squarerdx=%rdx,<squarer7=%rcx
adc %rdx,%rcx
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer7 += squarerax
# asm 1: add <squarerax=int64#7,<squarer7=int64#4
@@ -1042,8 +1042,8 @@ adc %rdx,%rcx
# asm 2: mov <squarer4=%r11,>squarerax=%rax
mov %r11,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: squarer4 = squarerax
# asm 1: mov <squarerax=int64#7,>squarer4=int64#9
@@ -1060,8 +1060,8 @@ mov %r12,%rax
# asm 2: mov <squarerdx=%rdx,>squarer5=%r12
mov %rdx,%r12
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer5 += squarerax
# asm 1: add <squarerax=int64#7,<squarer5=int64#10
@@ -1083,8 +1083,8 @@ mov $0,%r13
# asm 2: adc <squarerdx=%rdx,<squarer6=%r13
adc %rdx,%r13
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer6 += squarerax
# asm 1: add <squarerax=int64#7,<squarer6=int64#11
@@ -1106,8 +1106,8 @@ mov $0,%rcx
# asm 2: adc <squarerdx=%rdx,<squarer7=%rcx
adc %rdx,%rcx
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer7 += squarerax
# asm 1: add <squarerax=int64#7,<squarer7=int64#4
@@ -1509,8 +1509,8 @@ adc %rdx,%rcx
# asm 2: mov <squarer4=%r11,>squarerax=%rax
mov %r11,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: squarer4 = squarerax
# asm 1: mov <squarerax=int64#7,>squarer4=int64#9
@@ -1527,8 +1527,8 @@ mov %r12,%rax
# asm 2: mov <squarerdx=%rdx,>squarer5=%r12
mov %rdx,%r12
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer5 += squarerax
# asm 1: add <squarerax=int64#7,<squarer5=int64#10
@@ -1550,8 +1550,8 @@ mov $0,%r13
# asm 2: adc <squarerdx=%rdx,<squarer6=%r13
adc %rdx,%r13
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer6 += squarerax
# asm 1: add <squarerax=int64#7,<squarer6=int64#11
@@ -1573,8 +1573,8 @@ mov $0,%rcx
# asm 2: adc <squarerdx=%rdx,<squarer7=%rcx
adc %rdx,%rcx
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer7 += squarerax
# asm 1: add <squarerax=int64#7,<squarer7=int64#4
@@ -2631,8 +2631,8 @@ adc %rdx,%rsi
# asm 2: mov <squarer4=%r10,>squarerax=%rax
mov %r10,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: squarer4 = squarerax
# asm 1: mov <squarerax=int64#7,>squarer4=int64#8
@@ -2649,8 +2649,8 @@ mov %r11,%rax
# asm 2: mov <squarerdx=%rdx,>squarer5=%r11
mov %rdx,%r11
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer5 += squarerax
# asm 1: add <squarerax=int64#7,<squarer5=int64#9
@@ -2672,8 +2672,8 @@ mov $0,%r12
# asm 2: adc <squarerdx=%rdx,<squarer6=%r12
adc %rdx,%r12
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer6 += squarerax
# asm 1: add <squarerax=int64#7,<squarer6=int64#10
@@ -2695,8 +2695,8 @@ mov $0,%rsi
# asm 2: adc <squarerdx=%rdx,<squarer7=%rsi
adc %rdx,%rsi
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? squarer7 += squarerax
# asm 1: add <squarerax=int64#7,<squarer7=int64#2

View File

@@ -7,7 +7,7 @@
#define S2_SWINDOWSIZE 7
#define PRE2_SIZE (1<<(S2_SWINDOWSIZE-2))
ge25519_niels pre2[PRE2_SIZE] = {
static const ge25519_niels pre2[PRE2_SIZE] = {
#include "ge25519_base_slide_multiples.data"
};

View File

@@ -293,13 +293,13 @@
# qhasm: int64 subt1
# qhasm: enter crypto_sign_ed25519_amd64_64_ge25519_nielsadd2
# qhasm: enter CRYPTO_NAMESPACE(ge25519_nielsadd2)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_ge25519_nielsadd2
.globl crypto_sign_ed25519_amd64_64_ge25519_nielsadd2
_crypto_sign_ed25519_amd64_64_ge25519_nielsadd2:
crypto_sign_ed25519_amd64_64_ge25519_nielsadd2:
.globl _CRYPTO_NAMESPACE(ge25519_nielsadd2)
.globl CRYPTO_NAMESPACE(ge25519_nielsadd2)
_CRYPTO_NAMESPACE(ge25519_nielsadd2):
CRYPTO_NAMESPACE(ge25519_nielsadd2):
mov %rsp,%r11
and $31,%r11
add $192,%r11
@@ -1060,8 +1060,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#4
@@ -1078,8 +1078,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r8
mov %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#5
@@ -1101,8 +1101,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr6=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#6
@@ -1124,8 +1124,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr7=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#8
@@ -1742,8 +1742,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#4
@@ -1760,8 +1760,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r8
mov %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#5
@@ -1783,8 +1783,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr6=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#6
@@ -1806,8 +1806,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr7=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#8
@@ -2594,8 +2594,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -2612,8 +2612,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -2635,8 +2635,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -2658,8 +2658,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6
@@ -3531,8 +3531,8 @@ adc %rdx,%r9
# asm 2: mov <mulr4=%rsi,>mulrax=%rax
mov %rsi,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -3549,8 +3549,8 @@ mov %rcx,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -3572,8 +3572,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -3595,8 +3595,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6
@@ -4213,8 +4213,8 @@ adc %rdx,%r9
# asm 2: mov <mulr4=%rsi,>mulrax=%rax
mov %rsi,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -4231,8 +4231,8 @@ mov %rcx,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -4254,8 +4254,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -4277,8 +4277,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6
@@ -4895,8 +4895,8 @@ adc %rdx,%r9
# asm 2: mov <mulr4=%rsi,>mulrax=%rax
mov %rsi,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -4913,8 +4913,8 @@ mov %rcx,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -4936,8 +4936,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -4959,8 +4959,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6
@@ -5577,8 +5577,8 @@ adc %rdx,%r9
# asm 2: mov <mulr4=%rsi,>mulrax=%rax
mov %rsi,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -5595,8 +5595,8 @@ mov %rcx,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -5618,8 +5618,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -5641,8 +5641,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6

View File

@@ -297,13 +297,13 @@
# qhasm: int64 subt1
# qhasm: enter crypto_sign_ed25519_amd64_64_ge25519_nielsadd_p1p1
# qhasm: enter CRYPTO_NAMESPACE(ge25519_nielsadd_p1p1)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_ge25519_nielsadd_p1p1
.globl crypto_sign_ed25519_amd64_64_ge25519_nielsadd_p1p1
_crypto_sign_ed25519_amd64_64_ge25519_nielsadd_p1p1:
crypto_sign_ed25519_amd64_64_ge25519_nielsadd_p1p1:
.globl _CRYPTO_NAMESPACE(ge25519_nielsadd_p1p1)
.globl CRYPTO_NAMESPACE(ge25519_nielsadd_p1p1)
_CRYPTO_NAMESPACE(ge25519_nielsadd_p1p1):
CRYPTO_NAMESPACE(ge25519_nielsadd_p1p1):
mov %rsp,%r11
and $31,%r11
add $128,%r11
@@ -1069,8 +1069,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -1087,8 +1087,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -1110,8 +1110,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -1133,8 +1133,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -1751,8 +1751,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -1769,8 +1769,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -1792,8 +1792,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -1815,8 +1815,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -2603,8 +2603,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#4
@@ -2621,8 +2621,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r8
mov %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#5
@@ -2644,8 +2644,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr6=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#6
@@ -2667,8 +2667,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr7=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#8

View File

@@ -101,13 +101,13 @@
# qhasm: int64 muli38
# qhasm: enter crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p2
# qhasm: enter CRYPTO_NAMESPACE(ge25519_p1p1_to_p2)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p2
.globl crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p2
_crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p2:
crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p2:
.globl _CRYPTO_NAMESPACE(ge25519_p1p1_to_p2)
.globl CRYPTO_NAMESPACE(ge25519_p1p1_to_p2)
_CRYPTO_NAMESPACE(ge25519_p1p1_to_p2):
CRYPTO_NAMESPACE(ge25519_p1p1_to_p2):
mov %rsp,%r11
and $31,%r11
add $64,%r11
@@ -658,8 +658,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#4
@@ -676,8 +676,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r8
mov %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#5
@@ -699,8 +699,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr6=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#6
@@ -722,8 +722,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr7=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#8
@@ -1340,8 +1340,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#4
@@ -1358,8 +1358,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r8
mov %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#5
@@ -1381,8 +1381,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr6=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#6
@@ -1404,8 +1404,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr7=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#8
@@ -2022,8 +2022,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -2040,8 +2040,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -2063,8 +2063,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -2086,8 +2086,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6

View File

@@ -109,13 +109,13 @@
# qhasm: int64 muli38
# qhasm: enter crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p3
# qhasm: enter CRYPTO_NAMESPACE(ge25519_p1p1_to_p3)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p3
.globl crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p3
_crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p3:
crypto_sign_ed25519_amd64_64_ge25519_p1p1_to_p3:
.globl _CRYPTO_NAMESPACE(ge25519_p1p1_to_p3)
.globl CRYPTO_NAMESPACE(ge25519_p1p1_to_p3)
_CRYPTO_NAMESPACE(ge25519_p1p1_to_p3):
CRYPTO_NAMESPACE(ge25519_p1p1_to_p3):
mov %rsp,%r11
and $31,%r11
add $64,%r11
@@ -666,8 +666,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#4
@@ -684,8 +684,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r8
mov %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#5
@@ -707,8 +707,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr6=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#6
@@ -730,8 +730,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr7=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#8
@@ -1348,8 +1348,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#4
@@ -1366,8 +1366,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r8
mov %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#5
@@ -1389,8 +1389,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr6=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#6
@@ -1412,8 +1412,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr7=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#8
@@ -2030,8 +2030,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#4
@@ -2048,8 +2048,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r8
mov %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#5
@@ -2071,8 +2071,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr6=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#6
@@ -2094,8 +2094,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr7=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#8
@@ -2712,8 +2712,8 @@ adc %rdx,%r10
# asm 2: mov <mulr4=%rcx,>mulrax=%rax
mov %rcx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -2730,8 +2730,8 @@ mov %r8,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -2753,8 +2753,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -2776,8 +2776,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6

View File

@@ -225,13 +225,13 @@
# qhasm: int64 subt1
# qhasm: enter crypto_sign_ed25519_amd64_64_ge25519_pnielsadd_p1p1
# qhasm: enter CRYPTO_NAMESPACE(ge25519_pnielsadd_p1p1)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_ge25519_pnielsadd_p1p1
.globl crypto_sign_ed25519_amd64_64_ge25519_pnielsadd_p1p1
_crypto_sign_ed25519_amd64_64_ge25519_pnielsadd_p1p1:
crypto_sign_ed25519_amd64_64_ge25519_pnielsadd_p1p1:
.globl _CRYPTO_NAMESPACE(ge25519_pnielsadd_p1p1)
.globl CRYPTO_NAMESPACE(ge25519_pnielsadd_p1p1)
_CRYPTO_NAMESPACE(ge25519_pnielsadd_p1p1):
CRYPTO_NAMESPACE(ge25519_pnielsadd_p1p1):
mov %rsp,%r11
and $31,%r11
add $128,%r11
@@ -997,8 +997,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -1015,8 +1015,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -1038,8 +1038,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -1061,8 +1061,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -1679,8 +1679,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -1697,8 +1697,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -1720,8 +1720,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -1743,8 +1743,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -2531,8 +2531,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#5
@@ -2549,8 +2549,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%r9
mov %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#6
@@ -2572,8 +2572,8 @@ mov $0,%r10
# asm 2: adc <mulrdx=%rdx,<mulr6=%r10
adc %rdx,%r10
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#8
@@ -2595,8 +2595,8 @@ mov $0,%r11
# asm 2: adc <mulrdx=%rdx,<mulr7=%r11
adc %rdx,%r11
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#9
@@ -3213,8 +3213,8 @@ adc %rdx,%r11
# asm 2: mov <mulr4=%r8,>mulrax=%rax
mov %r8,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: mulr4 = mulrax
# asm 1: mov <mulrax=int64#7,>mulr4=int64#2
@@ -3231,8 +3231,8 @@ mov %r9,%rax
# asm 2: mov <mulrdx=%rdx,>mulr5=%rcx
mov %rdx,%rcx
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr5 += mulrax
# asm 1: add <mulrax=int64#7,<mulr5=int64#4
@@ -3254,8 +3254,8 @@ mov $0,%r8
# asm 2: adc <mulrdx=%rdx,<mulr6=%r8
adc %rdx,%r8
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr6 += mulrax
# asm 1: add <mulrax=int64#7,<mulr6=int64#5
@@ -3277,8 +3277,8 @@ mov $0,%r9
# asm 2: adc <mulrdx=%rdx,<mulr7=%r9
adc %rdx,%r9
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&crypto_sign_ed25519_amd64_64_38
mulq crypto_sign_ed25519_amd64_64_38
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_NAMESPACE(38)
mulq CRYPTO_NAMESPACE(38)(%rip)
# qhasm: carry? mulr7 += mulrax
# asm 1: add <mulrax=int64#7,<mulr7=int64#6

View File

@@ -11,10 +11,8 @@ static const ge25519_niels ge25519_base_multiples_niels[] = {
#endif
};
#ifdef SMALLTABLES
/* d */
static const fe25519 ecd = {{0x75EB4DCA135978A3, 0x00700A4D4141D8AB, 0x8CC740797779E898, 0x52036CEE2B6FFE73}};
#endif
void ge25519_scalarmult_base(ge25519_p3 *r, const sc25519 *s)
{

View File

@@ -93,13 +93,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_heap_rootreplaced
# qhasm: enter CRYPTO_NAMESPACE(heap_rootreplaced)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_heap_rootreplaced
.globl crypto_sign_ed25519_amd64_64_heap_rootreplaced
_crypto_sign_ed25519_amd64_64_heap_rootreplaced:
crypto_sign_ed25519_amd64_64_heap_rootreplaced:
.globl _CRYPTO_NAMESPACE(heap_rootreplaced)
.globl CRYPTO_NAMESPACE(heap_rootreplaced)
_CRYPTO_NAMESPACE(heap_rootreplaced):
CRYPTO_NAMESPACE(heap_rootreplaced):
mov %rsp,%r11
and $31,%r11
add $64,%r11

View File

@@ -93,13 +93,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_heap_rootreplaced_1limb
# qhasm: enter CRYPTO_NAMESPACE(heap_rootreplaced_1limb)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_heap_rootreplaced_1limb
.globl crypto_sign_ed25519_amd64_64_heap_rootreplaced_1limb
_crypto_sign_ed25519_amd64_64_heap_rootreplaced_1limb:
crypto_sign_ed25519_amd64_64_heap_rootreplaced_1limb:
.globl _CRYPTO_NAMESPACE(heap_rootreplaced_1limb)
.globl CRYPTO_NAMESPACE(heap_rootreplaced_1limb)
_CRYPTO_NAMESPACE(heap_rootreplaced_1limb):
CRYPTO_NAMESPACE(heap_rootreplaced_1limb):
mov %rsp,%r11
and $31,%r11
add $64,%r11

View File

@@ -93,13 +93,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_heap_rootreplaced_2limbs
# qhasm: enter CRYPTO_NAMESPACE(heap_rootreplaced_2limbs)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_heap_rootreplaced_2limbs
.globl crypto_sign_ed25519_amd64_64_heap_rootreplaced_2limbs
_crypto_sign_ed25519_amd64_64_heap_rootreplaced_2limbs:
crypto_sign_ed25519_amd64_64_heap_rootreplaced_2limbs:
.globl _CRYPTO_NAMESPACE(heap_rootreplaced_2limbs)
.globl CRYPTO_NAMESPACE(heap_rootreplaced_2limbs)
_CRYPTO_NAMESPACE(heap_rootreplaced_2limbs):
CRYPTO_NAMESPACE(heap_rootreplaced_2limbs):
mov %rsp,%r11
and $31,%r11
add $64,%r11

View File

@@ -93,13 +93,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_heap_rootreplaced_3limbs
# qhasm: enter CRYPTO_NAMESPACE(heap_rootreplaced_3limbs)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_heap_rootreplaced_3limbs
.globl crypto_sign_ed25519_amd64_64_heap_rootreplaced_3limbs
_crypto_sign_ed25519_amd64_64_heap_rootreplaced_3limbs:
crypto_sign_ed25519_amd64_64_heap_rootreplaced_3limbs:
.globl _CRYPTO_NAMESPACE(heap_rootreplaced_3limbs)
.globl CRYPTO_NAMESPACE(heap_rootreplaced_3limbs)
_CRYPTO_NAMESPACE(heap_rootreplaced_3limbs):
CRYPTO_NAMESPACE(heap_rootreplaced_3limbs):
mov %rsp,%r11
and $31,%r11
add $64,%r11

View File

@@ -1,7 +1,7 @@
#ifndef HRAM_H
#define HRAM_H
#define get_hram crypto_sign_ed25519_amd64_64_get_hram
#define get_hram CRYPTO_NAMESPACE(get_hram)
extern void get_hram(unsigned char *hram, const unsigned char *sm, const unsigned char *pk, unsigned char *playground, unsigned long long smlen);

View File

@@ -3,15 +3,15 @@
#include "sc25519.h"
#define heap_init crypto_sign_ed25519_amd64_64_heap_init
#define heap_extend crypto_sign_ed25519_amd64_64_heap_extend
#define heap_pop crypto_sign_ed25519_amd64_64_heap_pop
#define heap_push crypto_sign_ed25519_amd64_64_heap_push
#define heap_get2max crypto_sign_ed25519_amd64_64_heap_get2max
#define heap_rootreplaced crypto_sign_ed25519_amd64_64_heap_rootreplaced
#define heap_rootreplaced_3limbs crypto_sign_ed25519_amd64_64_heap_rootreplaced_3limbs
#define heap_rootreplaced_2limbs crypto_sign_ed25519_amd64_64_heap_rootreplaced_2limbs
#define heap_rootreplaced_1limb crypto_sign_ed25519_amd64_64_heap_rootreplaced_1limb
#define heap_init CRYPTO_NAMESPACE(heap_init)
#define heap_extend CRYPTO_NAMESPACE(heap_extend)
#define heap_pop CRYPTO_NAMESPACE(heap_pop)
#define heap_push CRYPTO_NAMESPACE(heap_push)
#define heap_get2max CRYPTO_NAMESPACE(heap_get2max)
#define heap_rootreplaced CRYPTO_NAMESPACE(heap_rootreplaced)
#define heap_rootreplaced_3limbs CRYPTO_NAMESPACE(heap_rootreplaced_3limbs)
#define heap_rootreplaced_2limbs CRYPTO_NAMESPACE(heap_rootreplaced_2limbs)
#define heap_rootreplaced_1limb CRYPTO_NAMESPACE(heap_rootreplaced_1limb)
void heap_init(unsigned long long *h, unsigned long long hlen, sc25519 *scalars);

View File

@@ -1,24 +1,24 @@
#ifndef SC25519_H
#define SC25519_H
#define sc25519 crypto_sign_ed25519_amd64_64_sc25519
#define shortsc25519 crypto_sign_ed25519_amd64_64_shortsc25519
#define sc25519_from32bytes crypto_sign_ed25519_amd64_64_sc25519_from32bytes
#define shortsc25519_from16bytes crypto_sign_ed25519_amd64_64_shortsc25519_from16bytes
#define sc25519_from64bytes crypto_sign_ed25519_amd64_64_sc25519_from64bytes
#define sc25519_from_shortsc crypto_sign_ed25519_amd64_64_sc25519_from_shortsc
#define sc25519_to32bytes crypto_sign_ed25519_amd64_64_sc25519_to32bytes
#define sc25519_iszero_vartime crypto_sign_ed25519_amd64_64_sc25519_iszero_vartime
#define sc25519_isshort_vartime crypto_sign_ed25519_amd64_64_sc25519_isshort_vartime
#define sc25519_lt crypto_sign_ed25519_amd64_64_sc25519_lt
#define sc25519_add crypto_sign_ed25519_amd64_64_sc25519_add
#define sc25519_sub_nored crypto_sign_ed25519_amd64_64_sc25519_sub_nored
#define sc25519_mul crypto_sign_ed25519_amd64_64_sc25519_mul
#define sc25519_mul_shortsc crypto_sign_ed25519_amd64_64_sc25519_mul_shortsc
#define sc25519_window4 crypto_sign_ed25519_amd64_64_sc25519_window4
#define sc25519_slide crypto_sign_ed25519_amd64_64_sc25519_slide
#define sc25519_2interleave2 crypto_sign_ed25519_amd64_64_sc25519_2interleave2
#define sc25519_barrett crypto_sign_ed25519_amd64_64_sc25519_barrett
#define sc25519 CRYPTO_NAMESPACE(sc25519)
#define shortsc25519 CRYPTO_NAMESPACE(shortsc25519)
#define sc25519_from32bytes CRYPTO_NAMESPACE(sc25519_from32bytes)
#define shortsc25519_from16bytes CRYPTO_NAMESPACE(shortsc25519_from16bytes)
#define sc25519_from64bytes CRYPTO_NAMESPACE(sc25519_from64bytes)
#define sc25519_from_shortsc CRYPTO_NAMESPACE(sc25519_from_shortsc)
#define sc25519_to32bytes CRYPTO_NAMESPACE(sc25519_to32bytes)
#define sc25519_iszero_vartime CRYPTO_NAMESPACE(sc25519_iszero_vartime)
#define sc25519_isshort_vartime CRYPTO_NAMESPACE(sc25519_isshort_vartime)
#define sc25519_lt CRYPTO_NAMESPACE(sc25519_lt)
#define sc25519_add CRYPTO_NAMESPACE(sc25519_add)
#define sc25519_sub_nored CRYPTO_NAMESPACE(sc25519_sub_nored)
#define sc25519_mul CRYPTO_NAMESPACE(sc25519_mul)
#define sc25519_mul_shortsc CRYPTO_NAMESPACE(sc25519_mul_shortsc)
#define sc25519_window4 CRYPTO_NAMESPACE(sc25519_window4)
#define sc25519_slide CRYPTO_NAMESPACE(sc25519_slide)
#define sc25519_2interleave2 CRYPTO_NAMESPACE(sc25519_2interleave2)
#define sc25519_barrett CRYPTO_NAMESPACE(sc25519_barrett)
typedef struct
{

View File

@@ -63,13 +63,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_sc25519_add
# qhasm: enter CRYPTO_NAMESPACE(sc25519_add)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_sc25519_add
.globl crypto_sign_ed25519_amd64_64_sc25519_add
_crypto_sign_ed25519_amd64_64_sc25519_add:
crypto_sign_ed25519_amd64_64_sc25519_add:
.globl _CRYPTO_NAMESPACE(sc25519_add)
.globl CRYPTO_NAMESPACE(sc25519_add)
_CRYPTO_NAMESPACE(sc25519_add):
CRYPTO_NAMESPACE(sc25519_add):
mov %rsp,%r11
and $31,%r11
add $32,%r11
@@ -150,25 +150,25 @@ mov %r9,%r10
# asm 2: mov <r3=%rsi,>t3=%r14
mov %rsi,%r14
# qhasm: carry? t0 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER0
# asm 1: sub crypto_sign_ed25519_amd64_64_ORDER0,<t0=int64#3
# asm 2: sub crypto_sign_ed25519_amd64_64_ORDER0,<t0=%rdx
sub crypto_sign_ed25519_amd64_64_ORDER0,%rdx
# qhasm: carry? t0 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER0)
# asm 1: sub CRYPTO_NAMESPACE(ORDER0),<t0=int64#3
# asm 2: sub CRYPTO_NAMESPACE(ORDER0),<t0=%rdx
sub CRYPTO_NAMESPACE(ORDER0)(%rip),%rdx
# qhasm: carry? t1 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER1 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER1,<t1=int64#7
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER1,<t1=%rax
sbb crypto_sign_ed25519_amd64_64_ORDER1,%rax
# qhasm: carry? t1 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER1) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER1),<t1=int64#7
# asm 2: sbb CRYPTO_NAMESPACE(ORDER1),<t1=%rax
sbb CRYPTO_NAMESPACE(ORDER1)(%rip),%rax
# qhasm: carry? t2 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER2 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER2,<t2=int64#8
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER2,<t2=%r10
sbb crypto_sign_ed25519_amd64_64_ORDER2,%r10
# qhasm: carry? t2 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER2) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER2),<t2=int64#8
# asm 2: sbb CRYPTO_NAMESPACE(ORDER2),<t2=%r10
sbb CRYPTO_NAMESPACE(ORDER2)(%rip),%r10
# qhasm: unsigned<? t3 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER3 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER3,<t3=int64#12
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER3,<t3=%r14
sbb crypto_sign_ed25519_amd64_64_ORDER3,%r14
# qhasm: unsigned<? t3 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER3) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER3),<t3=int64#12
# asm 2: sbb CRYPTO_NAMESPACE(ORDER3),<t3=%r14
sbb CRYPTO_NAMESPACE(ORDER3)(%rip),%r14
# qhasm: r0 = t0 if !unsigned<
# asm 1: cmovae <t0=int64#3,<r0=int64#4

View File

@@ -107,13 +107,13 @@
# qhasm: stack64 q33_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_sc25519_barrett
# qhasm: enter CRYPTO_NAMESPACE(sc25519_barrett)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_sc25519_barrett
.globl crypto_sign_ed25519_amd64_64_sc25519_barrett
_crypto_sign_ed25519_amd64_64_sc25519_barrett:
crypto_sign_ed25519_amd64_64_sc25519_barrett:
.globl _CRYPTO_NAMESPACE(sc25519_barrett)
.globl CRYPTO_NAMESPACE(sc25519_barrett)
_CRYPTO_NAMESPACE(sc25519_barrett):
CRYPTO_NAMESPACE(sc25519_barrett):
mov %rsp,%r11
and $31,%r11
add $96,%r11
@@ -184,8 +184,8 @@ xor %r11,%r11
# asm 2: movq 24(<xp=%rsi),>rax=%rax
movq 24(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU3
mulq crypto_sign_ed25519_amd64_64_MU3
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU3)
mulq CRYPTO_NAMESPACE(MU3)(%rip)
# qhasm: q23 = rax
# asm 1: mov <rax=int64#7,>q23=int64#10
@@ -202,8 +202,8 @@ mov %rdx,%r13
# asm 2: movq 24(<xp=%rsi),>rax=%rax
movq 24(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU4
mulq crypto_sign_ed25519_amd64_64_MU4
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU4)
mulq CRYPTO_NAMESPACE(MU4)(%rip)
# qhasm: q24 = rax
# asm 1: mov <rax=int64#7,>q24=int64#12
@@ -225,8 +225,8 @@ adc %rdx,%r8
# asm 2: movq 32(<xp=%rsi),>rax=%rax
movq 32(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU2
mulq crypto_sign_ed25519_amd64_64_MU2
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU2)
mulq CRYPTO_NAMESPACE(MU2)(%rip)
# qhasm: carry? q23 += rax
# asm 1: add <rax=int64#7,<q23=int64#10
@@ -248,8 +248,8 @@ adc %rdx,%r13
# asm 2: movq 32(<xp=%rsi),>rax=%rax
movq 32(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU3
mulq crypto_sign_ed25519_amd64_64_MU3
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU3)
mulq CRYPTO_NAMESPACE(MU3)(%rip)
# qhasm: carry? q24 += rax
# asm 1: add <rax=int64#7,<q24=int64#12
@@ -281,8 +281,8 @@ adc %rdx,%r13
# asm 2: movq 32(<xp=%rsi),>rax=%rax
movq 32(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU4
mulq crypto_sign_ed25519_amd64_64_MU4
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU4)
mulq CRYPTO_NAMESPACE(MU4)(%rip)
# qhasm: carry? q30 += rax
# asm 1: add <rax=int64#7,<q30=int64#5
@@ -309,8 +309,8 @@ adc %rdx,%r9
# asm 2: movq 40(<xp=%rsi),>rax=%rax
movq 40(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU1
mulq crypto_sign_ed25519_amd64_64_MU1
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU1)
mulq CRYPTO_NAMESPACE(MU1)(%rip)
# qhasm: carry? q23 += rax
# asm 1: add <rax=int64#7,<q23=int64#10
@@ -332,8 +332,8 @@ adc %rdx,%r13
# asm 2: movq 40(<xp=%rsi),>rax=%rax
movq 40(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU2
mulq crypto_sign_ed25519_amd64_64_MU2
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU2)
mulq CRYPTO_NAMESPACE(MU2)(%rip)
# qhasm: carry? q24 += rax
# asm 1: add <rax=int64#7,<q24=int64#12
@@ -365,8 +365,8 @@ adc %rdx,%r13
# asm 2: movq 40(<xp=%rsi),>rax=%rax
movq 40(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU3
mulq crypto_sign_ed25519_amd64_64_MU3
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU3)
mulq CRYPTO_NAMESPACE(MU3)(%rip)
# qhasm: carry? q30 += rax
# asm 1: add <rax=int64#7,<q30=int64#5
@@ -398,8 +398,8 @@ adc %rdx,%r13
# asm 2: movq 40(<xp=%rsi),>rax=%rax
movq 40(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU4
mulq crypto_sign_ed25519_amd64_64_MU4
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU4)
mulq CRYPTO_NAMESPACE(MU4)(%rip)
# qhasm: carry? q31 += rax
# asm 1: add <rax=int64#7,<q31=int64#6
@@ -426,8 +426,8 @@ adc %rdx,%r10
# asm 2: movq 48(<xp=%rsi),>rax=%rax
movq 48(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU0
mulq crypto_sign_ed25519_amd64_64_MU0
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU0)
mulq CRYPTO_NAMESPACE(MU0)(%rip)
# qhasm: carry? q23 += rax
# asm 1: add <rax=int64#7,<q23=int64#10
@@ -449,8 +449,8 @@ adc %rdx,%r12
# asm 2: movq 48(<xp=%rsi),>rax=%rax
movq 48(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU1
mulq crypto_sign_ed25519_amd64_64_MU1
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU1)
mulq CRYPTO_NAMESPACE(MU1)(%rip)
# qhasm: carry? q24 += rax
# asm 1: add <rax=int64#7,<q24=int64#12
@@ -482,8 +482,8 @@ adc %rdx,%r12
# asm 2: movq 48(<xp=%rsi),>rax=%rax
movq 48(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU2
mulq crypto_sign_ed25519_amd64_64_MU2
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU2)
mulq CRYPTO_NAMESPACE(MU2)(%rip)
# qhasm: carry? q30 += rax
# asm 1: add <rax=int64#7,<q30=int64#5
@@ -515,8 +515,8 @@ adc %rdx,%r12
# asm 2: movq 48(<xp=%rsi),>rax=%rax
movq 48(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU3
mulq crypto_sign_ed25519_amd64_64_MU3
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU3)
mulq CRYPTO_NAMESPACE(MU3)(%rip)
# qhasm: carry? q31 += rax
# asm 1: add <rax=int64#7,<q31=int64#6
@@ -548,8 +548,8 @@ adc %rdx,%r12
# asm 2: movq 48(<xp=%rsi),>rax=%rax
movq 48(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU4
mulq crypto_sign_ed25519_amd64_64_MU4
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU4)
mulq CRYPTO_NAMESPACE(MU4)(%rip)
# qhasm: carry? q32 += rax
# asm 1: add <rax=int64#7,<q32=int64#8
@@ -576,8 +576,8 @@ adc %rdx,%r11
# asm 2: movq 56(<xp=%rsi),>rax=%rax
movq 56(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU0
mulq crypto_sign_ed25519_amd64_64_MU0
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU0)
mulq CRYPTO_NAMESPACE(MU0)(%rip)
# qhasm: carry? q24 += rax
# asm 1: add <rax=int64#7,<q24=int64#12
@@ -601,8 +601,8 @@ adc %rdx,%r12
# asm 2: movq 56(<xp=%rsi),>rax=%rax
movq 56(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU1
mulq crypto_sign_ed25519_amd64_64_MU1
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU1)
mulq CRYPTO_NAMESPACE(MU1)(%rip)
# qhasm: carry? q30 += rax
# asm 1: add <rax=int64#7,<q30=int64#5
@@ -639,8 +639,8 @@ movq %r8,56(%rsp)
# asm 2: movq 56(<xp=%rsi),>rax=%rax
movq 56(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU2
mulq crypto_sign_ed25519_amd64_64_MU2
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU2)
mulq CRYPTO_NAMESPACE(MU2)(%rip)
# qhasm: carry? q31 += rax
# asm 1: add <rax=int64#7,<q31=int64#6
@@ -677,8 +677,8 @@ movq %r9,64(%rsp)
# asm 2: movq 56(<xp=%rsi),>rax=%rax
movq 56(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU3
mulq crypto_sign_ed25519_amd64_64_MU3
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU3)
mulq CRYPTO_NAMESPACE(MU3)(%rip)
# qhasm: carry? q32 += rax
# asm 1: add <rax=int64#7,<q32=int64#8
@@ -715,8 +715,8 @@ movq %r10,72(%rsp)
# asm 2: movq 56(<xp=%rsi),>rax=%rax
movq 56(%rsi),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_MU4
mulq crypto_sign_ed25519_amd64_64_MU4
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(MU4)
mulq CRYPTO_NAMESPACE(MU4)(%rip)
# qhasm: carry? q33 += rax
# asm 1: add <rax=int64#7,<q33=int64#9
@@ -743,8 +743,8 @@ movq %r11,80(%rsp)
# asm 2: movq <q30_stack=56(%rsp),>rax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER0
mulq crypto_sign_ed25519_amd64_64_ORDER0
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER0)
mulq CRYPTO_NAMESPACE(ORDER0)(%rip)
# qhasm: r20 = rax
# asm 1: mov <rax=int64#7,>r20=int64#5
@@ -761,8 +761,8 @@ mov %rdx,%r9
# asm 2: movq <q30_stack=56(%rsp),>rax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER1
mulq crypto_sign_ed25519_amd64_64_ORDER1
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER1)
mulq CRYPTO_NAMESPACE(ORDER1)(%rip)
# qhasm: r21 = rax
# asm 1: mov <rax=int64#7,>r21=int64#8
@@ -789,8 +789,8 @@ adc %rdx,%r9
# asm 2: movq <q30_stack=56(%rsp),>rax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER2
mulq crypto_sign_ed25519_amd64_64_ORDER2
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER2)
mulq CRYPTO_NAMESPACE(ORDER2)(%rip)
# qhasm: r22 = rax
# asm 1: mov <rax=int64#7,>r22=int64#9
@@ -817,8 +817,8 @@ adc %rdx,%r9
# asm 2: movq <q30_stack=56(%rsp),>rax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER3
mulq crypto_sign_ed25519_amd64_64_ORDER3
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER3)
mulq CRYPTO_NAMESPACE(ORDER3)(%rip)
# qhasm: free rdx
@@ -837,8 +837,8 @@ add %r9,%r12
# asm 2: movq <q31_stack=64(%rsp),>rax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER0
mulq crypto_sign_ed25519_amd64_64_ORDER0
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER0)
mulq CRYPTO_NAMESPACE(ORDER0)(%rip)
# qhasm: carry? r21 += rax
# asm 1: add <rax=int64#7,<r21=int64#8
@@ -860,8 +860,8 @@ adc %rdx,%r9
# asm 2: movq <q31_stack=64(%rsp),>rax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER1
mulq crypto_sign_ed25519_amd64_64_ORDER1
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER1)
mulq CRYPTO_NAMESPACE(ORDER1)(%rip)
# qhasm: carry? r22 += rax
# asm 1: add <rax=int64#7,<r22=int64#9
@@ -893,8 +893,8 @@ adc %rdx,%rcx
# asm 2: movq <q31_stack=64(%rsp),>rax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER2
mulq crypto_sign_ed25519_amd64_64_ORDER2
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER2)
mulq CRYPTO_NAMESPACE(ORDER2)(%rip)
# qhasm: free rdx
@@ -913,8 +913,8 @@ add %rcx,%r12
# asm 2: movq <q32_stack=72(%rsp),>rax=%rax
movq 72(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER0
mulq crypto_sign_ed25519_amd64_64_ORDER0
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER0)
mulq CRYPTO_NAMESPACE(ORDER0)(%rip)
# qhasm: carry? r22 += rax
# asm 1: add <rax=int64#7,<r22=int64#9
@@ -936,8 +936,8 @@ adc %rdx,%rcx
# asm 2: movq <q32_stack=72(%rsp),>rax=%rax
movq 72(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER1
mulq crypto_sign_ed25519_amd64_64_ORDER1
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER1)
mulq CRYPTO_NAMESPACE(ORDER1)(%rip)
# qhasm: free rdx
@@ -956,8 +956,8 @@ add %rcx,%r12
# asm 2: movq <q33_stack=80(%rsp),>rax=%rax
movq 80(%rsp),%rax
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER0
mulq crypto_sign_ed25519_amd64_64_ORDER0
# qhasm: (uint128) rdx rax = rax * *(uint64 *) &CRYPTO_NAMESPACE(ORDER0)
mulq CRYPTO_NAMESPACE(ORDER0)(%rip)
# qhasm: free rdx
@@ -1026,25 +1026,25 @@ sbb %r12,%rsi
# asm 2: mov <r3=%rsi,>t3=%r11
mov %rsi,%r11
# qhasm: carry? t0 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER0
# asm 1: sub crypto_sign_ed25519_amd64_64_ORDER0,<t0=int64#4
# asm 2: sub crypto_sign_ed25519_amd64_64_ORDER0,<t0=%rcx
sub crypto_sign_ed25519_amd64_64_ORDER0,%rcx
# qhasm: carry? t0 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER0)
# asm 1: sub CRYPTO_NAMESPACE(ORDER0),<t0=int64#4
# asm 2: sub CRYPTO_NAMESPACE(ORDER0),<t0=%rcx
sub CRYPTO_NAMESPACE(ORDER0)(%rip),%rcx
# qhasm: carry? t1 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER1 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER1,<t1=int64#6
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER1,<t1=%r9
sbb crypto_sign_ed25519_amd64_64_ORDER1,%r9
# qhasm: carry? t1 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER1) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER1),<t1=int64#6
# asm 2: sbb CRYPTO_NAMESPACE(ORDER1),<t1=%r9
sbb CRYPTO_NAMESPACE(ORDER1)(%rip),%r9
# qhasm: carry? t2 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER2 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER2,<t2=int64#8
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER2,<t2=%r10
sbb crypto_sign_ed25519_amd64_64_ORDER2,%r10
# qhasm: carry? t2 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER2) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER2),<t2=int64#8
# asm 2: sbb CRYPTO_NAMESPACE(ORDER2),<t2=%r10
sbb CRYPTO_NAMESPACE(ORDER2)(%rip),%r10
# qhasm: unsigned<? t3 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER3 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER3,<t3=int64#9
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER3,<t3=%r11
sbb crypto_sign_ed25519_amd64_64_ORDER3,%r11
# qhasm: unsigned<? t3 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER3) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER3),<t3=int64#9
# asm 2: sbb CRYPTO_NAMESPACE(ORDER3),<t3=%r11
sbb CRYPTO_NAMESPACE(ORDER3)(%rip),%r11
# qhasm: r0 = t0 if !unsigned<
# asm 1: cmovae <t0=int64#4,<r0=int64#3
@@ -1086,25 +1086,25 @@ cmovae %r11,%rsi
# asm 2: mov <r3=%rsi,>t3=%r11
mov %rsi,%r11
# qhasm: carry? t0 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER0
# asm 1: sub crypto_sign_ed25519_amd64_64_ORDER0,<t0=int64#4
# asm 2: sub crypto_sign_ed25519_amd64_64_ORDER0,<t0=%rcx
sub crypto_sign_ed25519_amd64_64_ORDER0,%rcx
# qhasm: carry? t0 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER0)
# asm 1: sub CRYPTO_NAMESPACE(ORDER0),<t0=int64#4
# asm 2: sub CRYPTO_NAMESPACE(ORDER0),<t0=%rcx
sub CRYPTO_NAMESPACE(ORDER0)(%rip),%rcx
# qhasm: carry? t1 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER1 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER1,<t1=int64#6
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER1,<t1=%r9
sbb crypto_sign_ed25519_amd64_64_ORDER1,%r9
# qhasm: carry? t1 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER1) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER1),<t1=int64#6
# asm 2: sbb CRYPTO_NAMESPACE(ORDER1),<t1=%r9
sbb CRYPTO_NAMESPACE(ORDER1)(%rip),%r9
# qhasm: carry? t2 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER2 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER2,<t2=int64#8
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER2,<t2=%r10
sbb crypto_sign_ed25519_amd64_64_ORDER2,%r10
# qhasm: carry? t2 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER2) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER2),<t2=int64#8
# asm 2: sbb CRYPTO_NAMESPACE(ORDER2),<t2=%r10
sbb CRYPTO_NAMESPACE(ORDER2)(%rip),%r10
# qhasm: unsigned<? t3 -= *(uint64 *) &crypto_sign_ed25519_amd64_64_ORDER3 - carry
# asm 1: sbb crypto_sign_ed25519_amd64_64_ORDER3,<t3=int64#9
# asm 2: sbb crypto_sign_ed25519_amd64_64_ORDER3,<t3=%r11
sbb crypto_sign_ed25519_amd64_64_ORDER3,%r11
# qhasm: unsigned<? t3 -= *(uint64 *) &CRYPTO_NAMESPACE(ORDER3) - carry
# asm 1: sbb CRYPTO_NAMESPACE(ORDER3),<t3=int64#9
# asm 2: sbb CRYPTO_NAMESPACE(ORDER3),<t3=%r11
sbb CRYPTO_NAMESPACE(ORDER3)(%rip),%r11
# qhasm: r0 = t0 if !unsigned<
# asm 1: cmovae <t0=int64#4,<r0=int64#3

View File

@@ -57,13 +57,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_sc25519_lt
# qhasm: enter CRYPTO_NAMESPACE(sc25519_lt)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_sc25519_lt
.globl crypto_sign_ed25519_amd64_64_sc25519_lt
_crypto_sign_ed25519_amd64_64_sc25519_lt:
crypto_sign_ed25519_amd64_64_sc25519_lt:
.globl _CRYPTO_NAMESPACE(sc25519_lt)
.globl CRYPTO_NAMESPACE(sc25519_lt)
_CRYPTO_NAMESPACE(sc25519_lt):
CRYPTO_NAMESPACE(sc25519_lt):
mov %rsp,%r11
and $31,%r11
add $0,%r11

View File

@@ -1,6 +1,6 @@
#include "sc25519.h"
#define ull4_mul crypto_sign_ed25519_amd64_64_ull4_mul
#define ull4_mul CRYPTO_NAMESPACE(ull4_mul)
extern void ull4_mul(unsigned long long r[8], const unsigned long long x[4], const unsigned long long y[4]);

View File

@@ -63,13 +63,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_sc25519_sub_nored
# qhasm: enter CRYPTO_NAMESPACE(sc25519_sub_nored)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_sc25519_sub_nored
.globl crypto_sign_ed25519_amd64_64_sc25519_sub_nored
_crypto_sign_ed25519_amd64_64_sc25519_sub_nored:
crypto_sign_ed25519_amd64_64_sc25519_sub_nored:
.globl _CRYPTO_NAMESPACE(sc25519_sub_nored)
.globl CRYPTO_NAMESPACE(sc25519_sub_nored)
_CRYPTO_NAMESPACE(sc25519_sub_nored):
CRYPTO_NAMESPACE(sc25519_sub_nored):
mov %rsp,%r11
and $31,%r11
add $0,%r11

View File

@@ -77,13 +77,13 @@
# qhasm: stack64 caller7_stack
# qhasm: enter crypto_sign_ed25519_amd64_64_ull4_mul
# qhasm: enter CRYPTO_NAMESPACE(ull4_mul)
.text
.p2align 5
.globl _crypto_sign_ed25519_amd64_64_ull4_mul
.globl crypto_sign_ed25519_amd64_64_ull4_mul
_crypto_sign_ed25519_amd64_64_ull4_mul:
crypto_sign_ed25519_amd64_64_ull4_mul:
.globl _CRYPTO_NAMESPACE(ull4_mul)
.globl CRYPTO_NAMESPACE(ull4_mul)
_CRYPTO_NAMESPACE(ull4_mul):
CRYPTO_NAMESPACE(ull4_mul):
mov %rsp,%r11
and $31,%r11
add $64,%r11