1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 06:15:07 +00:00

Revert "LibJS/Bytecode: Fuse [Not, JumpIf] instructions into JumpIfNot"

This reverts commit 795149e585.
This commit is contained in:
Andreas Kling 2024-03-06 08:04:29 +01:00
parent ea0b7192fa
commit c4a0afbe28
5 changed files with 0 additions and 53 deletions

View file

@ -360,12 +360,6 @@ void Interpreter::run_bytecode()
else
m_current_block = &static_cast<Op::JumpIf const&>(instruction).false_target()->block();
goto start;
case Instruction::Type::JumpIfNot:
if (!get(static_cast<Op::JumpIfNot const&>(instruction).condition()).to_boolean())
m_current_block = &static_cast<Op::JumpIfNot const&>(instruction).true_target()->block();
else
m_current_block = &static_cast<Op::JumpIfNot const&>(instruction).false_target()->block();
goto start;
#define JS_HANDLE_FUSABLE_BINARY_JUMP(PreOp, int32_operator, slow_case) \
case Instruction::Type::Jump##PreOp: { \
@ -1288,12 +1282,6 @@ ThrowCompletionOr<void> JumpIf::execute_impl(Bytecode::Interpreter&) const
__builtin_unreachable();
}
ThrowCompletionOr<void> JumpIfNot::execute_impl(Bytecode::Interpreter&) const
{
// Handled in the interpreter loop.
__builtin_unreachable();
}
#define JS_DEFINE_FUSABLE_BINARY_OP(PreOp, ...) \
ThrowCompletionOr<void> Jump##PreOp::execute_impl(Bytecode::Interpreter&) const { __builtin_unreachable(); } \
\
@ -1974,14 +1962,6 @@ ByteString JumpIf::to_byte_string_impl(Bytecode::Executable const& executable) c
true_string, false_string);
}
ByteString JumpIfNot::to_byte_string_impl(Bytecode::Executable const& executable) const
{
return ByteString::formatted("JumpIfNot {}, \033[32mtrue\033[0m:{} \033[32mfalse\033[0m:{}",
format_operand("condition"sv, m_condition, executable),
*m_true_target,
*m_false_target);
}
ByteString JumpNullish::to_byte_string_impl(Bytecode::Executable const& executable) const
{
auto true_string = m_true_target.has_value() ? ByteString::formatted("{}", *m_true_target) : "<empty>";