diff --git a/src/engine/compiler/SinglePassCompiler.v3 b/src/engine/compiler/SinglePassCompiler.v3 index bff1f7cc..6fbac01a 100644 --- a/src/engine/compiler/SinglePassCompiler.v3 +++ b/src/engine/compiler/SinglePassCompiler.v3 @@ -352,9 +352,12 @@ class SinglePassCompiler(xenv: SpcExecEnv, masm: MacroAssembler, regAlloc: RegAl masm.emit_debugger_breakpoint(); return; } - x: WhammProbe => if (SpcTuning.intrinsifyWhammProbe && WasmFunction.?(x.func)) { - emitWhammProbe(x); - return; + x: WhammProbe => { + var is_dyn = X86_64DynamicStrategy.?(Execute.tiering); + if (SpcTuning.intrinsifyWhammProbe && WasmFunction.?(x.func) && !is_dyn) { + emitWhammProbe(x); + return; + } } } // spill everything @@ -443,6 +446,7 @@ class SinglePassCompiler(xenv: SpcExecEnv, masm: MacroAssembler, regAlloc: RegAl emit_compute_vsp(vsp_reg, state.sp + u32.view(whamm_sig.length)); // Call to the entrypoint. masm.emit_call_r(tmp); + emit_unwind_check(); emit_reload_regs(); if (!probeSpillMode.free_regs) state.emitRestoreAll(resolver); }