summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/ftl/FTLJITFinalizer.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/ftl/FTLJITFinalizer.h')
-rw-r--r--Source/JavaScriptCore/ftl/FTLJITFinalizer.h41
1 files changed, 23 insertions, 18 deletions
diff --git a/Source/JavaScriptCore/ftl/FTLJITFinalizer.h b/Source/JavaScriptCore/ftl/FTLJITFinalizer.h
index a7ecd9486..630c3b44e 100644
--- a/Source/JavaScriptCore/ftl/FTLJITFinalizer.h
+++ b/Source/JavaScriptCore/ftl/FTLJITFinalizer.h
@@ -23,38 +23,46 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef FTLJITFinalizer_h
-#define FTLJITFinalizer_h
-
-#include <wtf/Platform.h>
+#pragma once
#if ENABLE(FTL_JIT)
#include "DFGFinalizer.h"
#include "FTLGeneratedFunction.h"
#include "FTLJITCode.h"
-#include "FTLOSRExitCompilationInfo.h"
#include "FTLSlowPathCall.h"
-#include "LLVMAPI.h"
#include "LinkBuffer.h"
#include "MacroAssembler.h"
namespace JSC { namespace FTL {
+class OutOfLineCodeInfo {
+public:
+ OutOfLineCodeInfo(std::unique_ptr<LinkBuffer> linkBuffer, const char* codeDescription)
+ : m_linkBuffer(WTFMove(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();
-
- bool finalize();
- bool finalizeFunction();
- OwnPtr<LinkBuffer> exitThunksLinkBuffer;
- OwnPtr<LinkBuffer> entrypointLinkBuffer;
- OwnPtr<LinkBuffer> sideCodeLinkBuffer;
- Vector<SlowPathCall> slowPathCalls; // Calls inside the side code.
- Vector<OSRExitCompilationInfo> osrExit;
- MacroAssembler::Label arityCheck;
+ size_t codeSize() override;
+ bool finalize() override;
+ bool finalizeFunction() override;
+
+ std::unique_ptr<LinkBuffer> b3CodeLinkBuffer;
+
+ // Eventually, we can get rid of this with B3.
+ std::unique_ptr<LinkBuffer> entrypointLinkBuffer;
+
+ Vector<CCallHelpers::Jump> lazySlowPathGeneratorJumps;
GeneratedFunction function;
RefPtr<JITCode> jitCode;
};
@@ -62,6 +70,3 @@ public:
} } // namespace JSC::FTL
#endif // ENABLE(FTL_JIT)
-
-#endif // FTLJITFinalizer_h
-