Skip to content

Commit

Permalink
add vmulUnitAdd
Browse files Browse the repository at this point in the history
  • Loading branch information
herumi committed Aug 26, 2024
1 parent 7ec30b4 commit be17da7
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions src/gen_bint_x64.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ def vmulL(z, x, y):
def vmulH(z, x, y):
vpmadd52huq(z, x, y)

# [H:z] = x[] * y
# z[0:N+1] = x[0:N] * y
def vmulUnit(z, px, y, N, H, t):
vpxorq(z[0], z[0], z[0])
vmovdqa64(t, ptr(px))
Expand All @@ -202,9 +202,29 @@ def vmulUnit(z, px, y, N, H, t):
vmovdqa64(z[i], H)
vmovdqa64(t, ptr(px+i*64))
vmulL(z[i], t, y)
vpxorq(H, H, H)
vmulH(H, t, y)
if i < N-1:
vpxorq(H, H, H)
vmulH(H, t, y)
else:
vpxorq(z[N], z[N], z[N])
vmulH(z[N], t, y)

# [H]:z[0:N] = z[0:N] + x[] * y
def vmulUnitAdd(z, px, y, N, H, t):
vmovdqa64(t, ptr(px))
vmulL(z[0], t, y)
vpxorq(H, H, H)
vmulH(H, t, y)
for i in range(1, N):
vmovdqa64(t, ptr(px+i*64))
vmulL(z[i], t, y)
vpaddq(z[i], z[i], H)
if i < N-1:
vpxorq(H, H, H)
vmulH(H, t, y)
else:
vpxorq(z[N], z[N], z[N])
vmulH(z[N], t, y)

def msm_data(mont):
makeLabel(C_p)
Expand Down

0 comments on commit be17da7

Please sign in to comment.