mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 06:44:46 +00:00
copying list and str to stack offset
This commit is contained in:
parent
c0b0fe3ba1
commit
bbee753e21
1 changed files with 9 additions and 0 deletions
|
@ -657,6 +657,15 @@ impl<
|
||||||
let reg = self.load_to_float_reg(buf, sym);
|
let reg = self.load_to_float_reg(buf, sym);
|
||||||
ASM::mov_base32_freg64(buf, to_offset, reg);
|
ASM::mov_base32_freg64(buf, to_offset, reg);
|
||||||
}
|
}
|
||||||
|
Layout::Builtin(Builtin::Str | Builtin::List(_)) => {
|
||||||
|
let (from_offset, _) = self.stack_offset_and_size(sym);
|
||||||
|
self.with_tmp_general_reg(buf, |_storage_manager, buf, reg| {
|
||||||
|
ASM::mov_reg64_base32(buf, reg, from_offset);
|
||||||
|
ASM::mov_base32_reg64(buf, to_offset, reg);
|
||||||
|
ASM::mov_reg64_base32(buf, reg, from_offset + 8);
|
||||||
|
ASM::mov_base32_reg64(buf, to_offset + 8, reg);
|
||||||
|
});
|
||||||
|
}
|
||||||
// Layout::Struct(_) if layout.safe_to_memcpy() => {
|
// Layout::Struct(_) if layout.safe_to_memcpy() => {
|
||||||
// // self.storage_manager.with_tmp_float_reg(&mut self.buf, |buf, storage, )
|
// // self.storage_manager.with_tmp_float_reg(&mut self.buf, |buf, storage, )
|
||||||
// // if let Some(SymbolStorage::Base {
|
// // if let Some(SymbolStorage::Base {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue