1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:17:36 +00:00

LibJS: Remove FinishUnwind instruction

This is essentially a LeaveUnwind+Jump, so lets just do that, that will
make it easier to optimize it, or see unwind state transitions
This commit is contained in:
Hendiadyoin1 2022-11-13 18:38:15 +01:00 committed by Ali Mohammad Pur
parent fc332be2e5
commit 133faa0acc
5 changed files with 2 additions and 46 deletions

View file

@ -876,27 +876,6 @@ public:
void replace_references_impl(Register, Register) { }
};
class FinishUnwind final : public Instruction {
public:
constexpr static bool IsTerminator = true;
FinishUnwind(Label next)
: Instruction(Type::FinishUnwind)
, m_next_target(move(next))
{
}
ThrowCompletionOr<void> execute_impl(Bytecode::Interpreter&) const;
DeprecatedString to_deprecated_string_impl(Bytecode::Executable const&) const;
void replace_references_impl(BasicBlock const&, BasicBlock const&);
void replace_references_impl(Register, Register) { }
Label next_target() const { return m_next_target; }
private:
Label m_next_target;
};
class ContinuePendingUnwind final : public Instruction {
public:
constexpr static bool IsTerminator = true;