From 926e4c8bf82d14ac6485e3084b3f705bd326dd58 Mon Sep 17 00:00:00 2001 From: Sean Stangl Date: Mon, 22 Jul 2019 14:49:39 -0600 Subject: [PATCH] Generate basic blocks for Wasm `br_if`. --- cranelift/wasm/src/code_translator.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cranelift/wasm/src/code_translator.rs b/cranelift/wasm/src/code_translator.rs index 6365ed7e68..2fe9a7843b 100644 --- a/cranelift/wasm/src/code_translator.rs +++ b/cranelift/wasm/src/code_translator.rs @@ -1244,6 +1244,14 @@ fn translate_br_if( let val = state.pop1(); let (br_destination, inputs) = translate_br_if_args(relative_depth, state); builder.ins().brnz(val, br_destination, inputs); + + #[cfg(feature = "basic-blocks")] + { + let next_ebb = builder.create_ebb(); + builder.ins().jump(next_ebb, &[]); + builder.seal_block(next_ebb); // The only predecessor is the current block. + builder.switch_to_block(next_ebb); + } } fn translate_br_if_args(