Merge pull request #3379 from rtfeldman/wasm-box

Wasm box & unbox
This commit is contained in:
Brian Carroll 2022-07-03 12:55:48 +01:00 committed by GitHub
commit b2c094ca07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 111 additions and 29 deletions

View file

@ -11,7 +11,7 @@ use roc_mono::low_level::HigherOrder;
use crate::backend::{ProcLookupData, ProcSource, WasmBackend};
use crate::layout::{CallConv, StackMemoryFormat, WasmLayout};
use crate::storage::{StackMemoryLocation, StoredValue};
use crate::storage::{AddressValue, StackMemoryLocation, StoredValue};
use crate::wasm_module::{Align, LocalId, ValueType};
use crate::TARGET_INFO;
@ -316,14 +316,12 @@ impl<'a> LowLevelCall<'a> {
// Target element heap pointer
backend.code_builder.i32_add(); // base + index*size
let elem_heap_ptr = backend.storage.create_anonymous_local(ValueType::I32);
backend.code_builder.set_local(elem_heap_ptr);
// Copy to stack
backend.storage.copy_value_from_memory(
&mut backend.code_builder,
self.ret_symbol,
elem_heap_ptr,
AddressValue::Loaded,
0,
);