winch: Fix retrieving function signature for compilation (#5725)
This commit fixes an incorrect usage of `func_type_at` to retrieve a defined function signature and instead uses `function_at` to retrieve the signature. Additionally it enhances `winch-tools` `compile` and `test` commands to handle modules with multiple functions correctly.
This commit is contained in:
@@ -56,7 +56,7 @@ fn compile(
|
||||
) -> Result<()> {
|
||||
let index = module.func_index(f.0);
|
||||
let sig = types
|
||||
.func_type_at(index.as_u32())
|
||||
.function_at(index.as_u32())
|
||||
.expect(&format!("function type at index {:?}", index.as_u32()));
|
||||
let FunctionBodyData { body, validator } = f.1;
|
||||
let validator = validator.into_validator(Default::default());
|
||||
@@ -64,6 +64,7 @@ fn compile(
|
||||
.compile_function(&sig, &body, validator)
|
||||
.expect("Couldn't compile function");
|
||||
|
||||
println!("Disassembly for function: {}", index.as_u32());
|
||||
disasm(buffer.data(), isa)?
|
||||
.iter()
|
||||
.for_each(|s| println!("{}", s));
|
||||
|
||||
Reference in New Issue
Block a user