chiark
/
gitweb
/
~mdw
/
catacomb
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(from parent 1:
1dfa221
)
utils/gcm-ref (present_gf_pmull): Round width up to a multiple of 64 bits.
author
Mark Wooding
<mdw@distorted.org.uk>
Tue, 16 Jan 2024 13:38:52 +0000
(13:38 +0000)
committer
Mark Wooding
<mdw@distorted.org.uk>
Tue, 16 Jan 2024 13:44:00 +0000
(13:44 +0000)
Otherwise the later loop, which pulls off 64-bit chunks, gets badly
confused.
Now `gcm-ref' can actually calculate all of the things properly.
for p in pclmul vmullp64 pmull; do
while read u v; do utils/gcm-ref $p $u $v || break 2; done <<EOF
cde4bef260d7bcda
163547d348b75511
cde4bef260d7bcda163547d3
48b7551195e77022907dd1df
cde4bef260d7bcda163547d348b75511
95e77022907dd1dff7dac5c9941d26d0
cde4bef260d7bcda163547d348b7551195e77022907dd1df
f7dac5c9941d26d0c6eb14ad568f86edd1dc9268eeee5332
cde4bef260d7bcda163547d348b7551195e77022907dd1dff7dac5c9941d26d0
c6eb14ad568f86edd1dc9268eeee533285a6ed810c9b689daaa9060d2d4b6003
EOF
done
I wonder what this means about the changes coming up...
utils/gcm-ref
patch
|
blob
|
blame
|
history
diff --git
a/utils/gcm-ref
b/utils/gcm-ref
index 03672412568658eed60e960767624b2ca0c80ac3..bec00d7532c9abe45921051c78073a35ae4c736b 100755
(executable)
--- a/
utils/gcm-ref
+++ b/
utils/gcm-ref
@@
-258,6
+258,7
@@
def present_gf_pmull(tag, wd, x, w, n, what):
if tag == TAG_PRODPIECE or tag == TAG_REDCFULL or tag == TAG_SHIFTED:
return
elif tag == TAG_INPUT_V or tag == TAG_KPIECE_V:
+ w = (w + 63)&~63
bx = C.ReadBuffer(x.storeb(w/8))
by = C.WriteBuffer()
while bx.left: chunk = bx.get(8); by.put(chunk).put(chunk)