]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - ftl/FTLJITFinalizer.h
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / ftl / FTLJITFinalizer.h
index 97f1b96b3007700177d1c3dce1c5a9317bad0730..a1e0d034f4577a8734b1fed61e75cd61d5d7176a 100644 (file)
 
 namespace JSC { namespace FTL {
 
+class OutOfLineCodeInfo {
+public:
+    OutOfLineCodeInfo(std::unique_ptr<LinkBuffer> linkBuffer, const char* codeDescription)
+        : m_linkBuffer(WTF::move(linkBuffer))
+        , m_codeDescription(codeDescription)
+    {
+    }
+
+    std::unique_ptr<LinkBuffer> m_linkBuffer;
+    const char* m_codeDescription;
+};
+
 class JITFinalizer : public DFG::Finalizer {
 public:
     JITFinalizer(DFG::Plan&);
     virtual ~JITFinalizer();
-    
+
     size_t codeSize() override;
     bool finalize() override;
     bool finalizeFunction() override;
 
-    OwnPtr<LinkBuffer> exitThunksLinkBuffer;
-    OwnPtr<LinkBuffer> entrypointLinkBuffer;
-    OwnPtr<LinkBuffer> sideCodeLinkBuffer;
-    OwnPtr<LinkBuffer> handleExceptionsLinkBuffer;
+    std::unique_ptr<LinkBuffer> exitThunksLinkBuffer;
+    std::unique_ptr<LinkBuffer> entrypointLinkBuffer;
+    std::unique_ptr<LinkBuffer> sideCodeLinkBuffer;
+    std::unique_ptr<LinkBuffer> handleExceptionsLinkBuffer;
+    Vector<OutOfLineCodeInfo> outOfLineCodeInfos;
     Vector<SlowPathCall> slowPathCalls; // Calls inside the side code.
     Vector<OSRExitCompilationInfo> osrExit;
     GeneratedFunction function;