summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jefs.fs2
-rw-r--r--jefs.s12
2 files changed, 11 insertions, 3 deletions
diff --git a/jefs.fs b/jefs.fs
index 38c2c5f..dbd6da5 100644
--- a/jefs.fs
+++ b/jefs.fs
@@ -7,6 +7,6 @@
: syswrite ( u c-addr fd -- n ) 1 syscall3 ;
: say ( c-addr u -- ) swap 1 syswrite drop ;
\ : saying begin TESTSTR say again ;
-HEREDUMP
+\ HEREDUMP
\ saying bye
TESTSTR say bye
diff --git a/jefs.s b/jefs.s
index 05598a0..6eb5a80 100644
--- a/jefs.s
+++ b/jefs.s
@@ -633,8 +633,16 @@ defword "branch", branch, 0
mov qword [here], r12
ret
-; defword "0branch", zerobranch, 0
-; ret
+defword "0branch", zerobranch, 0
+ mov r12, [here]
+ mov r11, 0x4d08768d4d1e8b4d ; pspop r11, first bit of test r11, r11
+ mov qword [r12], r11
+ add r12, 8
+ mov dword [r12], 0x840fdb85 ; rest of ^, je
+ add r12, 4
+ ; include 32bit offset yourself
+ mov qword [here], r12
+ ret
; TEMPORARY HORRIBLE DEBUGGING BULLSHIT {{{
; debugging word; outputs raw bytes so needs to be piped through `x(x)d`