Refactor trampoline compilation

This commit is contained in:
Syrus
2020-05-29 19:37:03 -07:00
parent 4d831a9a44
commit abbd39c50b
8 changed files with 73 additions and 60 deletions

View File

@ -130,18 +130,12 @@ impl Compiler for SinglepassCompiler {
fn compile_dynamic_function_trampolines(
&self,
module: &ModuleInfo,
signatures: &[FunctionType],
) -> Result<PrimaryMap<FunctionIndex, FunctionBody>, CompileError> {
let vmoffsets = VMOffsets::new(8, module);
Ok(module
.functions
.values()
.take(module.num_imported_funcs)
.collect::<Vec<_>>()
Ok(signatures
.par_iter()
.map(|&&sig_index| {
gen_std_dynamic_import_trampoline(&vmoffsets, &module.signatures[sig_index])
})
.map(|func_type| gen_std_dynamic_import_trampoline(&vmoffsets, &func_type))
.collect::<Vec<_>>()
.into_iter()
.collect::<PrimaryMap<FunctionIndex, FunctionBody>>())