blob: 4eedf75e0ddcc35fb6bc51c03497a18e8ab86cba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
; **************************************************************************** ;
; ;
; ::: :::::::: ;
; ft_list_push_front.s :+: :+: :+: ;
; +:+ +:+ +:+ ;
; By: cacharle <marvin@42.fr> +#+ +:+ +#+ ;
; +#+#+#+#+#+ +#+ ;
; Created: 2019/11/22 20:55:08 by cacharle #+# #+# ;
; Updated: 2019/11/22 21:17:45 by cacharle ### ########.fr ;
; ;
; **************************************************************************** ;
%ifdef __LINUX__
%define M_FT_LIST_PUSH_FRONT ft_list_push_front
%define M_MALLOC malloc
%else
%define M_FT_LIST_PUSH_FRONT _ft_list_push_front
%define M_MALLOC _malloc
%endif
extern M_MALLOC
global M_FT_LIST_PUSH_FRONT
; void ft_list_push_front(t_list **begin_list, void *data);
M_FT_LIST_PUSH_FRONT:
cmp rdi, 0
je FT_LIST_PUSH_FRONT_END
push rdi
push rsi
xor rdi, rdi
mov edi, 16
call M_MALLOC wrt ..plt
pop rsi
pop rdi
cmp rax, 0
je FT_LIST_PUSH_FRONT_END
mov qword [rax + 0], rsi
mov r10, [rdi]
mov [rax + 8], r10
mov [rdi], rax
FT_LIST_PUSH_FRONT_END:
ret
|