summary refs log tree commit diff
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2025-11-08 17:24:16 -0800
committerIrene Knapp <ireneista@irenes.space>2025-11-08 17:24:16 -0800
commit3c5dc89e436d15e598c279db5ec67f39417c03ca (patch)
tree72e3e8ebe1fc0bdb7c1069ce6d388f8c57154f46
parent2d2d48ea91652c254b0e67055c848ceb4ea9bc9c (diff)
bitwise operations
Force-Push: yes
Change-Id: Idf4fe951fa583946f0a51a53f15eff7f1138b7c6
-rw-r--r--quine.asm27
1 files changed, 19 insertions, 8 deletions
diff --git a/quine.asm b/quine.asm
index b67842b..0525f23 100644
--- a/quine.asm
+++ b/quine.asm
@@ -2186,20 +2186,31 @@ cold_start:
   dq pack_next, lit, 8, packalign, early_here_store
 
   dq litstring, "and", early_create, early_self_codeword, early_here, fetch
-  ; TODO
-  dq lit, 8, packalign, early_here_store
+  dq rbx, pop_reg64
+  dq rax, pop_reg64
+  dq rbx, rax, and_reg64_reg64
+  dq rax, push_reg64
+  dq pack_next, lit, 8, packalign, early_here_store
 
   dq litstring, "or", early_create, early_self_codeword, early_here, fetch
-  ; TODO
-  dq lit, 8, packalign, early_here_store
+  dq rbx, pop_reg64
+  dq rax, pop_reg64
+  dq rbx, rax, or_reg64_reg64
+  dq rax, push_reg64
+  dq pack_next, lit, 8, packalign, early_here_store
 
   dq litstring, "xor", early_create, early_self_codeword, early_here, fetch
-  ; TODO
-  dq lit, 8, packalign, early_here_store
+  dq rbx, pop_reg64
+  dq rax, pop_reg64
+  dq rbx, rax, xor_reg64_reg64
+  dq rax, push_reg64
+  dq pack_next, lit, 8, packalign, early_here_store
 
   dq litstring, "invert", early_create, early_self_codeword, early_here, fetch
-  ; TODO
-  dq lit, 8, packalign, early_here_store
+  dq rax, pop_reg64
+  dq rax, not_reg64
+  dq rax, push_reg64
+  dq pack_next, lit, 8, packalign, early_here_store
 
   dq litstring, "lit", early_create, early_self_codeword, early_here, fetch
   ; TODO