Fix to use the default calling convention ... doesn't help.

This commit is contained in:
2023-01-02 21:46:08 -08:00
parent f03e0bcb77
commit a64983257c
2 changed files with 6 additions and 4 deletions

View File

@@ -91,10 +91,11 @@ fn main() -> Result<(), MainError> {
.render_colored(72, StandardStream::stdout(ColorChoice::Auto)) .render_colored(72, StandardStream::stdout(ColorChoice::Auto))
.unwrap(); .unwrap();
let isa = isa::lookup(Triple::host())?.finish(settings::Flags::new(settings::builder()))?; let platform = Triple::host();
let isa = isa::lookup(platform.clone())?.finish(settings::Flags::new(settings::builder()))?;
let object_builder = ObjectBuilder::new(isa, "example", default_libcall_names())?; let object_builder = ObjectBuilder::new(isa, "example", default_libcall_names())?;
let mut object_module = ObjectModule::new(object_builder); let mut object_module = ObjectModule::new(object_builder);
let rtfuns = RuntimeFunctions::new(&mut object_module)?; let rtfuns = RuntimeFunctions::new(&platform, &mut object_module)?;
let _compiled = lil_tree.into_cranelift(&mut object_module, &rtfuns)?; let _compiled = lil_tree.into_cranelift(&mut object_module, &rtfuns)?;

View File

@@ -1,6 +1,7 @@
use cranelift_codegen::ir::{types, AbiParam, FuncRef, Function, Signature}; use cranelift_codegen::ir::{types, AbiParam, FuncRef, Function, Signature};
use cranelift_codegen::isa::CallConv; use cranelift_codegen::isa::CallConv;
use cranelift_module::{FuncId, Linkage, Module, ModuleResult}; use cranelift_module::{FuncId, Linkage, Module, ModuleResult};
use target_lexicon::Triple;
use std::collections::HashMap; use std::collections::HashMap;
use thiserror::Error; use thiserror::Error;
@@ -16,7 +17,7 @@ pub enum RuntimeFunctionError {
} }
impl RuntimeFunctions { impl RuntimeFunctions {
pub fn new<M: Module>(module: &mut M) -> ModuleResult<RuntimeFunctions> { pub fn new<M: Module>(platform: &Triple, module: &mut M) -> ModuleResult<RuntimeFunctions> {
let mut builtin_functions = HashMap::new(); let mut builtin_functions = HashMap::new();
let _referenced_functions = Vec::new(); let _referenced_functions = Vec::new();
@@ -29,7 +30,7 @@ impl RuntimeFunctions {
&Signature { &Signature {
params: vec![string_param, int64_param], params: vec![string_param, int64_param],
returns: vec![], returns: vec![],
call_conv: CallConv::AppleAarch64, call_conv: CallConv::triple_default(platform),
}, },
)?; )?;
builtin_functions.insert("print".to_string(), print_id); builtin_functions.insert("print".to_string(), print_id);