diff options
| -rw-r--r-- | jefs.fs | 2 | ||||
| -rw-r--r-- | jefs.s | 12 |
2 files changed, 14 insertions, 0 deletions
@@ -1,5 +1,6 @@ \ i think something is going on with the stack. i dunno \ things TODO: +\ read-line (will be slow) \ DO LOOP \ s\" \ add error handling to compiling words @@ -272,6 +273,7 @@ variable hld \ }}} \ USER INPUT {{{ +\ use cmove (not cmove>) for moving stray bytes left when refilling 8192 constant file-buffer-length make file-buffer file-buffer-length allot \ }}} @@ -221,6 +221,18 @@ defword "cmove,", _cmove_comma, 0 ; ( c-addr u -- ) add r12, r9 mov qword [here], r12 ret + +defword "cmove>", cmove_to, 0 ; ( a1 a2 u -- ) + std + pspop rcx + pspop rdi + add rdi, rcx + pspop rsi + add rsi, rcx + + rep movsb + cld + ret ; }}} ; note: this puts the _address it itself pushes_ on the stack |
