Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Ignacio Esteban Losiggio
tp1.orga2.dc.uba.ar
Commits
1b17e1c1
Commit
1b17e1c1
authored
6 years ago
by
Ignacio Losiggio
Browse files
Options
Download
Email Patches
Plain Diff
Achicar listRemoveFirst
parent
6d879fe1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
18 deletions
+13
-18
lib.asm
lib.asm
+13
-18
No files found.
lib.asm
View file @
1b17e1c1
...
...
@@ -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
[
r
12
+
8
],
0
; l->last = 0
mov
QWORD
[
r
ax
+
8
],
0
; l->last = 0
jmp
.free
.setNext:
mov
QWORD
[
r
13
+
16
],
0
;
l->
first->prev = 0
mov
QWORD
[
r
di
+
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
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment