Fix clif_signatures in function codegen

This commit is contained in:
Brandon Fish 2019-05-19 15:22:02 -05:00
parent db669f7eb7
commit 5db575e8ef

View File

@ -107,6 +107,7 @@ impl ModuleCodeGenerator<CraneliftFunctionCodeGenerator, Caller, CodegenError>
func_body: func, func_body: func,
func_translator, func_translator,
next_local: 0, next_local: 0,
clif_signatures: self.clif_signatures.clone(),
}; };
let builder = FunctionBuilder::new( let builder = FunctionBuilder::new(
&mut func_env.func_body, &mut func_env.func_body,
@ -368,6 +369,7 @@ pub struct CraneliftFunctionCodeGenerator {
builder: Option<FunctionBuilder<'static>>, builder: Option<FunctionBuilder<'static>>,
func_translator: FuncTranslator, func_translator: FuncTranslator,
next_local: usize, next_local: usize,
pub clif_signatures: Map<SigIndex, ir::Signature>,
} }
impl FuncEnvironment for CraneliftFunctionCodeGenerator { impl FuncEnvironment for CraneliftFunctionCodeGenerator {
@ -1034,7 +1036,7 @@ impl CraneliftFunctionCodeGenerator {
clif_sig_index: cranelift_wasm::SignatureIndex, clif_sig_index: cranelift_wasm::SignatureIndex,
) -> ir::Signature { ) -> ir::Signature {
// Get signature // Get signature
let mut signature = self.env.signatures[Converter(clif_sig_index).into()].clone(); let mut signature = self.clif_signatures[Converter(clif_sig_index).into()].clone();
// Add the vmctx parameter type to it // Add the vmctx parameter type to it
signature.params.insert( signature.params.insert(