Fixed spectests

This commit is contained in:
Syrus 2019-02-12 10:04:11 -08:00
parent 4311a37def
commit c40195cf77
2 changed files with 19 additions and 20 deletions

View File

@ -32,10 +32,10 @@ impl<'env, 'module, 'isa> FuncEnv<'env, 'module, 'isa> {
let mut signature = self.env.signatures[Converter(clif_sig_index).into()].clone(); let mut signature = self.env.signatures[Converter(clif_sig_index).into()].clone();
// Add the vmctx parameter type to it // Add the vmctx parameter type to it
signature.params.insert(0, ir::AbiParam::special( signature.params.insert(
self.pointer_type(), 0,
ir::ArgumentPurpose::VMContext, ir::AbiParam::special(self.pointer_type(), ir::ArgumentPurpose::VMContext),
)); );
// Return signature // Return signature
signature signature

View File

@ -229,22 +229,21 @@ fn generate_trampoline_signature() -> ir::Signature {
fn generate_export_signature(func_sig: &FuncSig) -> ir::Signature { fn generate_export_signature(func_sig: &FuncSig) -> ir::Signature {
let mut export_clif_sig = ir::Signature::new(isa::CallConv::SystemV); let mut export_clif_sig = ir::Signature::new(isa::CallConv::SystemV);
export_clif_sig.params = func_sig let func_sig_iter = func_sig.params().iter().map(|wasm_ty| ir::AbiParam {
.params() value_type: wasm_ty_to_clif(*wasm_ty),
.iter() purpose: ir::ArgumentPurpose::Normal,
.map(|wasm_ty| ir::AbiParam { extension: ir::ArgumentExtension::None,
value_type: wasm_ty_to_clif(*wasm_ty), location: ir::ArgumentLoc::Unassigned,
purpose: ir::ArgumentPurpose::Normal, });
extension: ir::ArgumentExtension::None,
location: ir::ArgumentLoc::Unassigned, export_clif_sig.params = iter::once(ir::AbiParam {
}) value_type: ir::types::I64,
.chain(iter::once(ir::AbiParam { purpose: ir::ArgumentPurpose::VMContext,
value_type: ir::types::I64, extension: ir::ArgumentExtension::None,
purpose: ir::ArgumentPurpose::VMContext, location: ir::ArgumentLoc::Unassigned,
extension: ir::ArgumentExtension::None, })
location: ir::ArgumentLoc::Unassigned, .chain(func_sig_iter)
})) .collect();
.collect();
export_clif_sig.returns = func_sig export_clif_sig.returns = func_sig
.returns() .returns()