fix vec
This commit is contained in:
parent
b5c0a41aa4
commit
d47c933c04
|
|
@ -105,8 +105,12 @@ vec_push:
|
||||||
call vec_try_grow
|
call vec_try_grow
|
||||||
; memcpy(&vec.data[vec.len], data, size);
|
; memcpy(&vec.data[vec.len], data, size);
|
||||||
mov rax, [rsp] ; vec
|
mov rax, [rsp] ; vec
|
||||||
mov rdi, [rax] ; vec.data
|
mov rcx, [rax] ; vec.data
|
||||||
add rdi, [rax + 8] ; vec.data + vec.len
|
mov rdi, [rax + 8] ; vec.len
|
||||||
|
mov rax, [rax + 24] ; vec.item_size
|
||||||
|
mul rdi ; len * item_size
|
||||||
|
add rax, rcx ; data + len * item_size
|
||||||
|
mov rdi, rax ; dest ptr
|
||||||
mov rsi, [rsp + 8] ; data ptr
|
mov rsi, [rsp + 8] ; data ptr
|
||||||
mov rdx, [rsp + 16] ; data size
|
mov rdx, [rsp + 16] ; data size
|
||||||
call memcpy
|
call memcpy
|
||||||
|
|
@ -142,7 +146,7 @@ vec_pop:
|
||||||
mul qword [rdi + 24] ; len * item_size
|
mul qword [rdi + 24] ; len * item_size
|
||||||
mov rsi, [rdi] ; data
|
mov rsi, [rdi] ; data
|
||||||
add rax, rsi ; data + len * item_size
|
add rax, rsi ; data + len * item_size
|
||||||
mov rdi, rsi
|
mov rdi, rax
|
||||||
call r8
|
call r8
|
||||||
.ret:
|
.ret:
|
||||||
pop rbp
|
pop rbp
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue