summaryrefslogtreecommitdiff
path: root/vere/ext/nasm/perllib/gensv.pl
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-10-05 21:56:51 +0700
committerpolwex <polwex@sortug.com>2025-10-05 21:56:51 +0700
commitfcedfddf00b3f994e4f4e40332ac7fc192c63244 (patch)
tree51d38e62c7bdfcc5f9a5e9435fe820c93cfc9a3d /vere/ext/nasm/perllib/gensv.pl
claude is gud
Diffstat (limited to 'vere/ext/nasm/perllib/gensv.pl')
-rwxr-xr-xvere/ext/nasm/perllib/gensv.pl34
1 files changed, 34 insertions, 0 deletions
diff --git a/vere/ext/nasm/perllib/gensv.pl b/vere/ext/nasm/perllib/gensv.pl
new file mode 100755
index 0000000..b80ccbe
--- /dev/null
+++ b/vere/ext/nasm/perllib/gensv.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+#
+# Generate a list of rotation vectors so we always use the same set.
+# This needs to be run on a platform with /dev/urandom.
+#
+
+($n) = @ARGV;
+
+sysopen(UR, '/dev/urandom', O_RDONLY) or die;
+
+$maxlen = 78;
+
+print "\@random_sv_vectors = (\n";
+$outl = ' ';
+
+for ($i = 0; $i < $n; $i++) {
+
+ die if (sysread(UR, $x8, 8) != 8);
+ @n = unpack("V*", $x8);
+
+ $xl = sprintf(" [0x%08x, 0x%08x]%s",
+ $n[0], $n[1],
+ ($i == $n-1) ? '' : ',');
+ if (length($outl.$xl) > $maxlen) {
+ print $outl, "\n";
+ $outl = ' ';
+ }
+ $outl .= $xl;
+}
+close(UR);
+
+print $outl, "\n";
+print ");\n";
+print "1;\n";