libasm/ft_list_push_front_bonus.s

20 lines
447 B
ArmAsm
Raw Permalink Normal View History

global ft_list_push_front
extern malloc
ft_list_push_front:
2024-03-11 16:30:24 +00:00
push rdi ; caller saved (begin_list)
push rsi ; caller saved (data)
mov rdi, 16 ; sizeof(t_list)
2024-03-10 19:07:02 +00:00
call malloc WRT ..plt
cmp rax, 0
je .done
2024-03-11 16:30:24 +00:00
pop rsi ; restore data
pop rdi ; restore begin_list
mov [rax], rsi ; new_node->data = data(rsi)
mov rdx, [rdi] ; rdx = *begin_list
mov [rax + 8], rdx ; new_node->next = *begin_list
mov [rdi], rax ; *begin_list = new_node
.done:
ret