mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-17 06:52:23 +00:00
Revert "LibJS: Avoid calling generic Instruction::length() during dispatch"
This reverts commit 8f2ee01e6f
.
Speculative revert, as this appears to severely regress performance on
our JS benchmark runner.
This commit is contained in:
parent
ec590ef3e6
commit
cba80580e2
Notes:
github-actions[bot]
2025-04-03 13:11:53 +00:00
Author: https://github.com/awesomekling
Commit: cba80580e2
2 changed files with 1 additions and 9 deletions
|
@ -386,7 +386,7 @@ FLATTEN_ON_CLANG void Interpreter::run_bytecode(size_t entry_point)
|
||||||
#define DISPATCH_NEXT(name) \
|
#define DISPATCH_NEXT(name) \
|
||||||
do { \
|
do { \
|
||||||
if constexpr (Op::name::IsVariableLength) \
|
if constexpr (Op::name::IsVariableLength) \
|
||||||
program_counter += static_cast<Op::name const&>(instruction).length(); \
|
program_counter += instruction.length(); \
|
||||||
else \
|
else \
|
||||||
program_counter += sizeof(Op::name); \
|
program_counter += sizeof(Op::name); \
|
||||||
auto& next_instruction = *reinterpret_cast<Instruction const*>(&bytecode[program_counter]); \
|
auto& next_instruction = *reinterpret_cast<Instruction const*>(&bytecode[program_counter]); \
|
||||||
|
|
|
@ -313,7 +313,6 @@ public:
|
||||||
{
|
{
|
||||||
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_excluded_names_count);
|
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_excluded_names_count);
|
||||||
}
|
}
|
||||||
size_t length() const { return length_impl(); }
|
|
||||||
|
|
||||||
Operand dst() const { return m_dst; }
|
Operand dst() const { return m_dst; }
|
||||||
Operand from_object() const { return m_from_object; }
|
Operand from_object() const { return m_from_object; }
|
||||||
|
@ -363,7 +362,6 @@ public:
|
||||||
{
|
{
|
||||||
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_element_count);
|
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_element_count);
|
||||||
}
|
}
|
||||||
size_t length() const { return length_impl(); }
|
|
||||||
|
|
||||||
size_t element_count() const { return m_element_count; }
|
size_t element_count() const { return m_element_count; }
|
||||||
|
|
||||||
|
@ -390,7 +388,6 @@ public:
|
||||||
{
|
{
|
||||||
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Value) * m_element_count);
|
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Value) * m_element_count);
|
||||||
}
|
}
|
||||||
size_t length() const { return length_impl(); }
|
|
||||||
|
|
||||||
void execute_impl(Bytecode::Interpreter&) const;
|
void execute_impl(Bytecode::Interpreter&) const;
|
||||||
ByteString to_byte_string_impl(Bytecode::Executable const&) const;
|
ByteString to_byte_string_impl(Bytecode::Executable const&) const;
|
||||||
|
@ -1819,7 +1816,6 @@ public:
|
||||||
{
|
{
|
||||||
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_argument_count);
|
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_argument_count);
|
||||||
}
|
}
|
||||||
size_t length() const { return length_impl(); }
|
|
||||||
|
|
||||||
Operand dst() const { return m_dst; }
|
Operand dst() const { return m_dst; }
|
||||||
Operand callee() const { return m_callee; }
|
Operand callee() const { return m_callee; }
|
||||||
|
@ -1869,7 +1865,6 @@ public:
|
||||||
{
|
{
|
||||||
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_argument_count);
|
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_argument_count);
|
||||||
}
|
}
|
||||||
size_t length() const { return length_impl(); }
|
|
||||||
|
|
||||||
Operand dst() const { return m_dst; }
|
Operand dst() const { return m_dst; }
|
||||||
Operand callee() const { return m_callee; }
|
Operand callee() const { return m_callee; }
|
||||||
|
@ -1921,7 +1916,6 @@ public:
|
||||||
{
|
{
|
||||||
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_argument_count);
|
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_argument_count);
|
||||||
}
|
}
|
||||||
size_t length() const { return length_impl(); }
|
|
||||||
|
|
||||||
Operand dst() const { return m_dst; }
|
Operand dst() const { return m_dst; }
|
||||||
Operand callee() const { return m_callee; }
|
Operand callee() const { return m_callee; }
|
||||||
|
@ -1970,7 +1964,6 @@ public:
|
||||||
{
|
{
|
||||||
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_argument_count);
|
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Operand) * m_argument_count);
|
||||||
}
|
}
|
||||||
size_t length() const { return length_impl(); }
|
|
||||||
|
|
||||||
Operand dst() const { return m_dst; }
|
Operand dst() const { return m_dst; }
|
||||||
Operand callee() const { return m_callee; }
|
Operand callee() const { return m_callee; }
|
||||||
|
@ -2088,7 +2081,6 @@ public:
|
||||||
{
|
{
|
||||||
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Optional<Operand>) * m_element_keys_count);
|
return round_up_to_power_of_two(alignof(void*), sizeof(*this) + sizeof(Optional<Operand>) * m_element_keys_count);
|
||||||
}
|
}
|
||||||
size_t length() const { return length_impl(); }
|
|
||||||
|
|
||||||
ThrowCompletionOr<void> execute_impl(Bytecode::Interpreter&) const;
|
ThrowCompletionOr<void> execute_impl(Bytecode::Interpreter&) const;
|
||||||
ByteString to_byte_string_impl(Bytecode::Executable const&) const;
|
ByteString to_byte_string_impl(Bytecode::Executable const&) const;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue