X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..HEAD:/ftl/FTLInlineCacheDescriptor.h diff --git a/ftl/FTLInlineCacheDescriptor.h b/ftl/FTLInlineCacheDescriptor.h index df0d711..6793e74 100644 --- a/ftl/FTLInlineCacheDescriptor.h +++ b/ftl/FTLInlineCacheDescriptor.h @@ -31,7 +31,7 @@ #include "CodeOrigin.h" #include "JITInlineCacheGenerator.h" #include "MacroAssembler.h" -#include +#include namespace JSC { namespace FTL { @@ -39,7 +39,7 @@ class InlineCacheDescriptor { public: InlineCacheDescriptor() { } - InlineCacheDescriptor(unsigned stackmapID, CodeOrigin codeOrigin, StringImpl* uid) + InlineCacheDescriptor(unsigned stackmapID, CodeOrigin codeOrigin, UniquedStringImpl* uid) : m_stackmapID(stackmapID) , m_codeOrigin(codeOrigin) , m_uid(uid) @@ -48,12 +48,12 @@ public: unsigned stackmapID() const { return m_stackmapID; } CodeOrigin codeOrigin() const { return m_codeOrigin; } - StringImpl* uid() const { return m_uid; } + UniquedStringImpl* uid() const { return m_uid; } private: unsigned m_stackmapID; CodeOrigin m_codeOrigin; - StringImpl* m_uid; + UniquedStringImpl* m_uid; public: Vector m_slowPathDone; @@ -63,7 +63,7 @@ class GetByIdDescriptor : public InlineCacheDescriptor { public: GetByIdDescriptor() { } - GetByIdDescriptor(unsigned stackmapID, CodeOrigin codeOrigin, StringImpl* uid) + GetByIdDescriptor(unsigned stackmapID, CodeOrigin codeOrigin, UniquedStringImpl* uid) : InlineCacheDescriptor(stackmapID, codeOrigin, uid) { } @@ -76,7 +76,7 @@ public: PutByIdDescriptor() { } PutByIdDescriptor( - unsigned stackmapID, CodeOrigin codeOrigin, StringImpl* uid, + unsigned stackmapID, CodeOrigin codeOrigin, UniquedStringImpl* uid, ECMAMode ecmaMode, PutKind putKind) : InlineCacheDescriptor(stackmapID, codeOrigin, uid) , m_ecmaMode(ecmaMode) @@ -94,6 +94,35 @@ private: PutKind m_putKind; }; +struct CheckInGenerator { + StructureStubInfo* m_stub; + MacroAssembler::Call m_slowCall; + MacroAssembler::Label m_beginLabel; + + CheckInGenerator(StructureStubInfo* stub, MacroAssembler::Call slowCall, MacroAssembler::Label beginLabel) + : m_stub(stub) + , m_slowCall(slowCall) + , m_beginLabel(beginLabel) + { + } +}; + +class CheckInDescriptor : public InlineCacheDescriptor { +public: + CheckInDescriptor() { } + + CheckInDescriptor(unsigned stackmapID, CodeOrigin codeOrigin, const UniquedStringImpl* uid) + : InlineCacheDescriptor(stackmapID, codeOrigin, nullptr) + , m_uid(uid) + { + } + + + const UniquedStringImpl* m_uid; + Vector m_generators; +}; + + } } // namespace JSC::FTL #endif // ENABLE(FTL_JIT)