mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 06:44:46 +00:00
feat(wasm): copy value to memory
This commit is contained in:
parent
1b98673704
commit
bc94683100
1 changed files with 11 additions and 3 deletions
|
@ -676,6 +676,8 @@ impl<'a> WasmBackend<'a> {
|
|||
self.code_builder.i32_const(elems.len() as i32);
|
||||
self.code_builder.i32_store(Align::Bytes4, stack_offset + 4);
|
||||
|
||||
let mut elem_offset = 0;
|
||||
|
||||
for (i, elem) in elems.iter().enumerate() {
|
||||
let elem_sym = match elem {
|
||||
ListLiteralElement::Literal(lit) => {
|
||||
|
@ -684,19 +686,25 @@ impl<'a> WasmBackend<'a> {
|
|||
let debug_name = format!("{:?}_{}", sym, i);
|
||||
let elem_sym = self.create_symbol(&debug_name);
|
||||
let expr = Expr::Literal(*lit);
|
||||
|
||||
self.store_expr_value(
|
||||
elem_sym,
|
||||
elem_layout,
|
||||
&expr,
|
||||
StoredValueKind::Variable,
|
||||
);
|
||||
|
||||
elem_sym
|
||||
}
|
||||
|
||||
ListLiteralElement::Symbol(elem_sym) => *elem_sym,
|
||||
};
|
||||
todo!(
|
||||
"Copy {:?} to the address stored in heap_local_id, using self.storage.copy_value_to_memory",
|
||||
elem_sym
|
||||
|
||||
elem_offset += self.storage.copy_value_to_memory(
|
||||
&mut self.code_builder,
|
||||
heap_local_id,
|
||||
elem_offset,
|
||||
elem_sym,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue