From 0c19ba3275211d20d954102cddc859222e41ae39 Mon Sep 17 00:00:00 2001 From: kitty Date: Fri, 20 Mar 2026 01:49:02 +1100 Subject: import comparisons --- sanctuary.s | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) (limited to 'sanctuary.s') 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 {{{ -- cgit v1.2.3