aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhovertank3d <[email protected]>2025-01-18 13:57:23 +0100
committerhovertank3d <[email protected]>2025-01-18 13:57:23 +0100
commit342b251a2f24263651a4a4104ab8129560d7dd53 (patch)
treeddf66d565ef1837ff617de64d4478cec1a369d69
parentf60aec7f3669d9cd2e099d75b9d4ccd37035da57 (diff)
downloadlzcnt.space-342b251a2f24263651a4a4104ab8129560d7dd53.tar.xz
lzcnt.space-342b251a2f24263651a4a4104ab8129560d7dd53.zip
use genhl instead of hardcoding syntax
-rw-r--r--log2.s8
-rw-r--r--templates/gen.go3
-rw-r--r--templates/index.html53
-rw-r--r--templates/log2.s.html11
-rw-r--r--templates/reset.html1
-rw-r--r--templates/source_code.html1
6 files changed, 27 insertions, 50 deletions
diff --git a/log2.s b/log2.s
index 63499e6..910f6c7 100644
--- a/log2.s
+++ b/log2.s
@@ -1,8 +1,10 @@
.section .text
.global log2lzcnt
.type log2lzcnt, @function
-log2lzcnt:
- lzcnt %rdi, %rdi
+# {{template "source_code.html" .}}
+# {{template "reset.html" .}}
+log2lzcnt: # log2lzcnt({{.Requests}});
+ lzcnt %rdi, %rdi
movq $63, %rax
sub %rdi, %rax
- ret
+ ret # 2^{{.Log2lzcnt}} requests handled
diff --git a/templates/gen.go b/templates/gen.go
new file mode 100644
index 0000000..852291d
--- /dev/null
+++ b/templates/gen.go
@@ -0,0 +1,3 @@
+package templates
+
+//go:generate bash -c "cat ../log2.s | genhl > log2.s.html"
diff --git a/templates/index.html b/templates/index.html
index dd4cb2a..85eccab 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -20,56 +20,15 @@
<meta name='viewport' content='width=device-width, initial-scale=1'>
<title>LZCNT</title>
- <!--fdfd-->
- <style>
- .ins {
- color: rgb(254, 254, 91)
- }
-
- .imm {
- color: rgb(31, 145, 31)
- }
-
- .reg {
- color: rgb(115, 158, 213);
- font-weight: bold;
- }
-
- .label {
- color: rgb(70, 70, 240)
- }
-
- .comment {
- color: rgb(31, 145, 31);
- font-weight: bold;
- }
-
- .listing {
- color: white;
- display: flex;
- justify-content: center;
- }
-
- .listing code {
- background-color: rgb(31, 31, 31);
- }
- </style>
- <form id="reset" action="/reset" method="get"></form>
+ <form id="reset" action="/reset" method="get"></form>
</head>
<body>
- <div style="display: flex; justify-content: center;"></div>
- <h2 style="text-align: center;"><code>LZCNT - Count the Number of Leading Zero Bits</code></h2>
- <pre class="listing"><code>
- <code class="comment"># <a href="https://github.com/hovertank3d/lzcnt.space">[source code]</a></code>
- <code class="comment"># <a href="javascript:{}" onclick="document.getElementById('reset').submit(); return false;">[reset counter]</a></code>
- <code class="label">log2lzcnt:</code> <code class="comment"># log2lzcnt({{.Requests}});</code>
- <b><code class="ins"> lzcnt </code></b><code class="reg">%rdi</code>, <code class="reg">%rdi</code>
- <code class="ins"> movq </code><code class="imm">$63</code>, <code class="reg">%rax</code>
- <code class="ins"> sub </code><code class="reg">%rdi</code>, <code class="reg">%rax</code>
- <code class="ins"> ret </code> <code class="comment"># 2^{{.Log2lzcnt}} requests handled</code>
-
-</code></pre>
+ <div style="display: flex; justify-content: center;">
+ <h2 style="text-align: center;"><code>LZCNT - Count the Number of Leading Zero Bits</code></h2>
+ </div>
+ <div style="width: fit-content; margin-left: auto; margin-right: auto;">
+ {{template "log2.s.html" .}}
</div>
</body>
diff --git a/templates/log2.s.html b/templates/log2.s.html
new file mode 100644
index 0000000..a16ccca
--- /dev/null
+++ b/templates/log2.s.html
@@ -0,0 +1,11 @@
+<style>.stx0{background-color: rgb(33,33,33);}.stx1{color: rgb(255,255,255);}.stx2{color: rgb(220,150,28);font-weight: bold;}.stx3{color: rgb(181,120,206);}.stx4{color: rgb(70,70,240);}.stx5{color: rgb(254,254,91);font-weight: bold;}.stx6{color: rgb(115,158,213);font-weight: bold;}.stx7{color: rgb(24,212,236);}.stx8{color: rgb(139,15,127);font-weight: bold;}.stx9{color: rgb(11,84,118);}.stxa{color: rgb(31,145,31);font-weight: bold;}</style><div class="stx0"><pre><code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx8">.section</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx3">.text</code><code class="stx1">
+</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx8">.global</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx3">log2lzcnt</code><code class="stx1">
+</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx8">.type</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx3">log2lzcnt</code><code class="stx1">,</code><code class="stx1"> </code><code class="stx3">@function</code><code class="stx1">
+</code><code class="stxa"># {{template "source_code.html" .}}
+</code><code class="stxa"># {{template "reset.html" .}}
+</code><code class="stx9">log2lzcnt:</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stxa"># log2lzcnt({{.Requests}});
+</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx5">lzcnt</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx6">%rdi</code><code class="stx1">,</code><code class="stx1"> </code><code class="stx6">%rdi</code><code class="stx1"> </code><code class="stx1">
+</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx5">movq</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx3">$63</code><code class="stx1">,</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx6">%rax</code><code class="stx1">
+</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx5">sub</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx6">%rdi</code><code class="stx1">,</code><code class="stx1"> </code><code class="stx6">%rax</code><code class="stx1">
+</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx5">ret</code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stx1"> </code><code class="stxa"># 2^{{.Log2lzcnt}} requests handled
+</code></code></pre></div> \ No newline at end of file
diff --git a/templates/reset.html b/templates/reset.html
new file mode 100644
index 0000000..090b273
--- /dev/null
+++ b/templates/reset.html
@@ -0,0 +1 @@
+<a href="javascript:{}" onclick="document.getElementById('reset').submit(); return false;">[reset counter]</a> \ No newline at end of file
diff --git a/templates/source_code.html b/templates/source_code.html
new file mode 100644
index 0000000..631c649
--- /dev/null
+++ b/templates/source_code.html
@@ -0,0 +1 @@
+<a href="https://github.com/hovertank3d/lzcnt.space">[source code]</a> \ No newline at end of file