Commit 1b17e1c1 authored by Ignacio Losiggio's avatar Ignacio Losiggio
Browse files

Achicar listRemoveFirst

parent 6d879fe1
......@@ -261,31 +261,26 @@ listRemove:
listRemoveFirst:
test QWORD [rdi], -1
jz .ret
push r12
push r13
push r14
push rdi
test rsi, rsi
jnz .remove
mov rsi, listRemoveNop
.remove:
mov r12, rdi ; list_t* l
mov r14, [r12] ; l->first
mov rdi, [r14] ; l->first->data
jz .remove
mov rdi, [rdi] ; l->first
mov rdi, [rdi] ; l->first->data
call rsi
mov r13, [r14+8] ; new_first = l->first->next
test r13, r13
.remove:
mov rax, [rsp]
mov rdi, [rax] ; l->first
mov rdi, [rdi+8] ; new_first = l->first->next
test rdi, rdi
jnz .setNext
mov QWORD [r12+8], 0 ; l->last = 0
mov QWORD [rax+8], 0 ; l->last = 0
jmp .free
.setNext:
mov QWORD [r13+16], 0 ; l->first->prev = 0
mov QWORD [rdi+16], 0 ; new_first->prev = 0
.free:
mov rdi, r14
xchg rdi, [rax]
call free
mov [r12], r13 ; l->first = new_first
pop r14
pop r13
pop r12
add rsp, 8
.ret:
ret
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment