LibJS: Mark Interpreter::handle_exception() as NEVER_INLINE

Before this change, we were inlining this function after every
handler for instructions that could throw.

Forcing it out-of-line shrinks the main bytecode interpreter by 15%
and yields a decent 2.5% speedup on JetStream/gcc-loops.cpp.js
This commit is contained in:
Andreas Kling 2025-04-06 01:29:00 +02:00
parent 3c2a2bb39f
commit aa992671f9

View file

@ -323,7 +323,7 @@ ThrowCompletionOr<Value> Interpreter::run(SourceTextModule& module)
return js_undefined();
}
Interpreter::HandleExceptionResponse Interpreter::handle_exception(size_t& program_counter, Value exception)
NEVER_INLINE Interpreter::HandleExceptionResponse Interpreter::handle_exception(size_t& program_counter, Value exception)
{
reg(Register::exception()) = exception;
m_scheduled_jump = {};