summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfaissaloo <faissaloo@gmail.com>2016-07-23 18:47:54 +0100
committerfaissaloo <faissaloo@gmail.com>2016-07-23 18:47:54 +0100
commitece7bd6dc17ba91deff32a9c121af80bcc1e79f2 (patch)
tree84b866eb9389b728ac5dd5068e1f1d60b08c040d
parent8d4fcd8fc87cb9a83fc88d2ddbd3fcab82142a97 (diff)
downloaddbsh-ece7bd6dc17ba91deff32a9c121af80bcc1e79f2.tar.gz
Switched from weird jump system to a normal call + ret
-rwxr-xr-xshbin4704 -> 4688 bytes
-rw-r--r--sh.asm11
-rw-r--r--sh.obin5008 -> 4912 bytes
3 files changed, 4 insertions, 7 deletions
diff --git a/sh b/sh
index 2f2d395..f1a78d3 100755
--- a/sh
+++ b/sh
Binary files differ
diff --git a/sh.asm b/sh.asm
index 38d47a8..a1dc0be 100644
--- a/sh.asm
+++ b/sh.asm
@@ -72,8 +72,7 @@ _read_loop:
syscall
mov r8, -0x1
- mov r12, _read_loopr
- jmp _bzero
+ call _bzero
_read_loopr:
mov rax, sys_read
@@ -140,8 +139,7 @@ _parse_path:
jl _quit
mov r8, -0x1
- mov r12, _parse_path2
- jmp _bzero
+ call _bzero
_parse_path2:
mov rdi, rax
@@ -209,7 +207,7 @@ _bzero:
mov byte [r8+r15], 0x0
cmp r8, 0xff
jle _bzero
- jmp r12
+ ret
;input: r15 (buffer)
;output: r13 (path), r14 (arguments)
@@ -372,8 +370,7 @@ _treg:
jg _boe
xchg r15, rbx
mov r8, -0x1
- mov r12, _jrsinc
- jmp _bzero
+ call _bzero
_jrsinc:
xchg r15, rbx
diff --git a/sh.o b/sh.o
index 37df737..d628f83 100644
--- a/sh.o
+++ b/sh.o
Binary files differ