cranelift-module: Add support for passing a StackMapSink when defining functions

Fixes #2738

This follows the convention set by the existing method of passing a
TrapSink by adding another argument for a StackMapSink.
This commit is contained in:
Will Robson
2021-03-18 16:49:17 +00:00
parent 59dfe4b9f4
commit 38926fb1fc
6 changed files with 26 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
use cranelift::prelude::*;
use cranelift_codegen::binemit::NullTrapSink;
use cranelift_codegen::binemit::{NullStackMapSink, NullTrapSink};
use cranelift_codegen::settings::{self, Configurable};
use cranelift_jit::{JITBuilder, JITModule};
use cranelift_module::{default_libcall_names, Linkage, Module};
@@ -49,8 +49,9 @@ fn main() {
bcx.finalize();
}
let mut trap_sink = NullTrapSink {};
let mut stack_map_sink = NullStackMapSink {};
module
.define_function(func_a, &mut ctx, &mut trap_sink)
.define_function(func_a, &mut ctx, &mut trap_sink, &mut stack_map_sink)
.unwrap();
module.clear_context(&mut ctx);
@@ -74,7 +75,7 @@ fn main() {
bcx.finalize();
}
module
.define_function(func_b, &mut ctx, &mut trap_sink)
.define_function(func_b, &mut ctx, &mut trap_sink, &mut stack_map_sink)
.unwrap();
module.clear_context(&mut ctx);