From 10f306c2305bd71f547ee4e539f971142acbb1af Mon Sep 17 00:00:00 2001 From: kitty Date: Mon, 9 Mar 2026 02:18:50 +1100 Subject: s= --- jefs.s | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/jefs.s b/jefs.s index 30c6aa0..25f932b 100644 --- a/jefs.s +++ b/jefs.s @@ -388,7 +388,7 @@ defword "find", find, 0 add rsi, 2 mov rdi, r11 mov rcx, r10 - repz cmpsb + repe cmpsb jnz .no sub r13, 9 pspush r13 @@ -969,6 +969,31 @@ defword "0>=", zero_greatereq, 0 neg r11 pspush r11 ret + +; different from COMPARE, is a normal strncpy, no lt/ge/prefix match +defword "s=", compare, 0 ; ( a1 u1 a2 u2 -- ? ) + pspop r11 ; u2 + pspop r12 ; a2 + pspop r13 ; u1 + pspop r15 ; a1 + + cmp r11, r13 + jne .no + + mov rsi, r15 + mov rdi, r12 + mov rcx, r11 + repe cmpsb + jne .no + + mov r11, true + pspush r11 + ret + +.no: + mov r11, false + pspush r11 + ret ; }}} defword "[", lbrac, immediate_mask -- cgit v1.2.3