Move WasmRuntime::translate_call_indirect() into FuncEnvironment.
Add two new arguments: - table_index is the WebAssembly table referenced in the indirect call. - sig_index is the WebAssembly signature index. We still have the SigRef that was created by make_indirect_sig(), but the WebAssembly signature index may be needed for detecting type mismatches at runtime. Change the insertion location to a plain FuncCursor rather than a FunctionBuilder<Local>. The fact that cretonne-wasm uses FunctionBuilder should be an implementation detail, and the callbacks don't need to access WebAssembly locals, so they don't need the extended interface. Add a FunctionBuilder::cursor() method which creates a FuncCursor for inserting instructions in the current EBB. Also add a FuncEnvironment::translate_call() method which allows the environment to override direct calls the same way as indirect calls.
This commit is contained in:
@@ -17,6 +17,7 @@ pub mod entity;
|
||||
|
||||
pub mod binemit;
|
||||
pub mod bitset;
|
||||
pub mod cursor;
|
||||
pub mod dominator_tree;
|
||||
pub mod flowgraph;
|
||||
pub mod ir;
|
||||
@@ -31,7 +32,6 @@ pub mod verifier;
|
||||
mod abi;
|
||||
mod constant_hash;
|
||||
mod context;
|
||||
mod cursor;
|
||||
mod iterators;
|
||||
mod legalizer;
|
||||
mod licm;
|
||||
|
||||
Reference in New Issue
Block a user