removed useless strlen from stdlib.sl
This commit is contained in:
72
build/a.asm
72
build/a.asm
@@ -18,17 +18,30 @@ _start:
|
||||
mov rdi, rax
|
||||
mov rax, 60
|
||||
syscall
|
||||
word_c_40:
|
||||
mov rax, [r12]
|
||||
movzx rax, byte [rax]
|
||||
mov [r12], rax
|
||||
ret
|
||||
ret
|
||||
word_c_21:
|
||||
mov rax, [r12]
|
||||
add r12, 8
|
||||
mov rbx, [r12]
|
||||
mov [rbx], al
|
||||
ret
|
||||
ret
|
||||
word_r_40:
|
||||
mov rax, [r13]
|
||||
sub r12, 8
|
||||
mov [r12], rax
|
||||
ret
|
||||
ret
|
||||
word_strlen:
|
||||
mov rsi, [r12] ; addr
|
||||
mov rcx, 0
|
||||
strlen_loop:
|
||||
mov al, [rsi + rcx]
|
||||
cmp al, 0
|
||||
je strlen_done
|
||||
inc rcx
|
||||
jmp strlen_loop
|
||||
strlen_done:
|
||||
mov [r12], rcx ; len
|
||||
mov rax, [r12] ; addr
|
||||
mov rcx, [r12 + 8] ; len
|
||||
add r12, 16 ; pop len and addr
|
||||
mov [r12], rcx ; push len
|
||||
ret
|
||||
ret
|
||||
word_puts:
|
||||
@@ -113,6 +126,15 @@ word_dup:
|
||||
sub r12, 8
|
||||
mov [r12], rax
|
||||
ret
|
||||
word_write_buf:
|
||||
mov rdx, [r12] ; len
|
||||
mov rsi, [r12 + 8] ; addr
|
||||
add r12, 16 ; pop len + addr
|
||||
mov rax, 1 ; syscall: write
|
||||
mov rdi, 1 ; fd = stdout
|
||||
syscall
|
||||
ret
|
||||
ret
|
||||
word_drop:
|
||||
add r12, 8
|
||||
ret
|
||||
@@ -284,20 +306,22 @@ word__21:
|
||||
add r12, 8
|
||||
ret
|
||||
word_mmap:
|
||||
mov r9, [r12]
|
||||
add r12, 8
|
||||
mov r8, [r12]
|
||||
add r12, 8
|
||||
mov r10, [r12]
|
||||
add r12, 8
|
||||
mov rdx, [r12]
|
||||
add r12, 8
|
||||
mov rsi, [r12]
|
||||
add r12, 8
|
||||
mov rdi, [r12]
|
||||
mov rax, 9
|
||||
syscall
|
||||
mov [r12], rax
|
||||
; Save rsp and align to 16 bytes for syscall ABI
|
||||
mov rax, rsp
|
||||
and rsp, -16
|
||||
mov rdi, [r12+40] ; addr
|
||||
mov rsi, [r12+32] ; length
|
||||
mov rdx, [r12+24] ; prot
|
||||
mov r10, [r12+16] ; flags
|
||||
mov r8, [r12+8] ; fd
|
||||
mov r9, [r12] ; offset
|
||||
add r12, 48 ; pop 6 args
|
||||
mov rax, 9 ; syscall: mmap
|
||||
syscall
|
||||
mov rsp, rax ; restore rsp
|
||||
sub r12, 8
|
||||
mov [r12], rax ; push result
|
||||
ret
|
||||
ret
|
||||
word_munmap:
|
||||
mov rsi, [r12]
|
||||
|
||||
Reference in New Issue
Block a user