diff options
Diffstat (limited to 'sanctuary.s')
| -rw-r--r-- | sanctuary.s | 114 |
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 {{{ |
