mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-16 05:51:55 +00:00
LibWasm: Inline bytecode interpreter instruction interpretation
Gets fib(30) from 480ms to 380ms.
This commit is contained in:
parent
a3b077c641
commit
b73b17aab4
Notes:
github-actions[bot]
2024-08-06 23:11:23 +00:00
Author: https://github.com/dzfrias
Commit: b73b17aab4
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/960
Reviewed-by: https://github.com/alimpfard
2 changed files with 7 additions and 6 deletions
|
@ -48,7 +48,7 @@ void BytecodeInterpreter::interpret(Configuration& configuration)
|
|||
}
|
||||
auto& instruction = instructions[current_ip_value.value()];
|
||||
auto old_ip = current_ip_value;
|
||||
interpret(configuration, current_ip_value, instruction);
|
||||
interpret_instruction(configuration, current_ip_value, instruction);
|
||||
if (did_trap())
|
||||
return;
|
||||
if (current_ip_value == old_ip) // If no jump occurred
|
||||
|
@ -420,7 +420,7 @@ Vector<Value> BytecodeInterpreter::pop_values(Configuration& configuration, size
|
|||
return results;
|
||||
}
|
||||
|
||||
void BytecodeInterpreter::interpret(Configuration& configuration, InstructionPointer& ip, Instruction const& instruction)
|
||||
ALWAYS_INLINE void BytecodeInterpreter::interpret_instruction(Configuration& configuration, InstructionPointer& ip, Instruction const& instruction)
|
||||
{
|
||||
dbgln_if(WASM_TRACE_DEBUG, "Executing instruction {} at ip {}", instruction_name(instruction.opcode()), ip.value());
|
||||
|
||||
|
@ -1671,7 +1671,7 @@ void BytecodeInterpreter::interpret(Configuration& configuration, InstructionPoi
|
|||
}
|
||||
}
|
||||
|
||||
void DebuggerBytecodeInterpreter::interpret(Configuration& configuration, InstructionPointer& ip, Instruction const& instruction)
|
||||
void DebuggerBytecodeInterpreter::interpret_instruction(Configuration& configuration, InstructionPointer& ip, Instruction const& instruction)
|
||||
{
|
||||
if (pre_interpret_hook) {
|
||||
auto result = pre_interpret_hook(configuration, ip, instruction);
|
||||
|
@ -1681,7 +1681,7 @@ void DebuggerBytecodeInterpreter::interpret(Configuration& configuration, Instru
|
|||
}
|
||||
}
|
||||
|
||||
BytecodeInterpreter::interpret(configuration, ip, instruction);
|
||||
BytecodeInterpreter::interpret_instruction(configuration, ip, instruction);
|
||||
|
||||
if (post_interpret_hook) {
|
||||
auto result = post_interpret_hook(configuration, ip, instruction, *this);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue