void wasm::ToggleProfiling(const Code& code, const CodeRange& codeRange, bool enabled) { if (!codeRange.isFunction()) return; uint8_t* codeBase = code.segment().base(); uint8_t* profilingEntry = codeBase + codeRange.funcProfilingEntry(); uint8_t* tableProfilingJump = codeBase + codeRange.funcTableProfilingJump(); uint8_t* profilingJump = codeBase + codeRange.funcProfilingJump(); uint8_t* profilingEpilogue = codeBase + codeRange.funcProfilingEpilogue(); if (enabled) { MacroAssembler::patchNopToNearJump(tableProfilingJump, profilingEntry); MacroAssembler::patchNopToNearJump(profilingJump, profilingEpilogue); } else { MacroAssembler::patchNearJumpToNop(tableProfilingJump); MacroAssembler::patchNearJumpToNop(profilingJump); } }