summaryrefslogtreecommitdiff
path: root/sanctuary.s
diff options
context:
space:
mode:
authorkitty <nepeta@canaglie.net>2026-03-20 01:49:02 +1100
committerkitty <nepeta@canaglie.net>2026-03-20 01:49:02 +1100
commit0c19ba3275211d20d954102cddc859222e41ae39 (patch)
treec0c46338854d52252b5ef380b9b14f791d17a942 /sanctuary.s
parent3e8972d7ce7859234d13be9e1949295901ac4806 (diff)
import comparisons
Diffstat (limited to 'sanctuary.s')
-rw-r--r--sanctuary.s114
1 files changed, 114 insertions, 0 deletions
diff --git a/sanctuary.s b/sanctuary.s
index 6e5707a..ec6949b 100644
--- a/sanctuary.s
+++ b/sanctuary.s
@@ -824,6 +824,120 @@ defcode "*/mod", starslashmod, 0
pspush rdx
pspush rax
ret
+
+defcode "=", equals, 0
+ pspop r11
+ pspop r12
+ cmp r11, r12
+ sete r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "<>", less_greater, 0
+ pspop r11
+ pspop r12
+ cmp r11, r12
+ setne r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "<", less, 0
+ pspop r11
+ pspop r12
+ cmp r12, r11
+ setl r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode ">", greater, 0
+ pspop r11
+ pspop r12
+ cmp r12, r11
+ setg r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "<=", lesseq, 0
+ pspop r11
+ pspop r12
+ cmp r12, r11
+ setle r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode ">=", greatereq, 0
+ pspop r11
+ pspop r12
+ cmp r12, r11
+ setge r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "0=", zero_equals, 0
+ pspop r11
+ test r11, r11
+ sete r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "0<>", zero_less_greater, 0
+ pspop r11
+ test r11, r11
+ setne r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "0<", zero_less, 0
+ pspop r11
+ test r11, r11
+ setl r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "0>", zero_greater, 0
+ pspop r11
+ test r11, r11
+ setg r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "0<=", zero_lesseq, 0
+ pspop r11
+ test r11, r11
+ setle r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
+
+defcode "0>=", zero_greatereq, 0
+ pspop r11
+ test r11, r11
+ setge r13b
+ movzx r11, r13b
+ neg r11
+ pspush r11
+ ret
; }}}
; TEMPORARY WONKY DEBUGGING FUNCTIONS {{{