From fafe498238e06fa7e87cdcc9b8f88aa2d6e311c9 Mon Sep 17 00:00:00 2001 From: Hendiadyoin1 Date: Sat, 22 Oct 2022 20:21:08 +0200 Subject: [PATCH] LibJS: Expose some internals of Instructions These will be needed in the future to allow optimization passes to check against these --- Userland/Libraries/LibJS/Bytecode/Op.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Userland/Libraries/LibJS/Bytecode/Op.h b/Userland/Libraries/LibJS/Bytecode/Op.h index 2fd565655f..37e66d1041 100644 --- a/Userland/Libraries/LibJS/Bytecode/Op.h +++ b/Userland/Libraries/LibJS/Bytecode/Op.h @@ -74,6 +74,8 @@ public: void replace_references_impl(BasicBlock const&, BasicBlock const&) { } void replace_references_impl(Register, Register) { } + Register dst() const { return m_dst; } + private: Register m_dst; }; @@ -271,6 +273,20 @@ public: return sizeof(*this) + sizeof(Register) * (m_element_count == 0 ? 0 : 2); } + Register start() const + { + VERIFY(m_element_count); + return m_elements[0]; + } + + Register end() const + { + VERIFY(m_element_count); + return m_elements[1]; + } + + size_t element_count() const { return m_element_count; } + private: size_t m_element_count { 0 }; Register m_elements[]; @@ -406,6 +422,8 @@ public: void replace_references_impl(BasicBlock const&, BasicBlock const&) { } void replace_references_impl(Register, Register) { } + IdentifierTableIndex identifier() const { return m_identifier; } + private: IdentifierTableIndex m_identifier; EnvironmentMode m_mode; @@ -425,6 +443,8 @@ public: void replace_references_impl(BasicBlock const&, BasicBlock const&) { } void replace_references_impl(Register, Register) { } + IdentifierTableIndex identifier() const { return m_identifier; } + private: IdentifierTableIndex m_identifier; @@ -444,6 +464,8 @@ public: void replace_references_impl(BasicBlock const&, BasicBlock const&) { } void replace_references_impl(Register, Register) { } + IdentifierTableIndex identifier() const { return m_identifier; } + private: IdentifierTableIndex m_identifier; };