Files
libasm/ft_strdup.s

25 lines
342 B
ArmAsm

global ft_strdup
extern ft_strlen
extern ft_strcpy
extern malloc
extern __errno_location
ft_strdup:
cmp rdi, 0
je .end
mov r12, rdi
call ft_strlen
inc rax
mov rdi, rax
call malloc wrt ..plt
test rax, rax
je .end
mov rdi, rax
mov rsi, r12
call ft_strcpy
ret
.end:
xor rax, rax
ret