From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/JavaScriptCore/ftl/FTLJITCode.h | 72 +++++++++++++++++----------------- 1 file changed, 36 insertions(+), 36 deletions(-) (limited to 'Source/JavaScriptCore/ftl/FTLJITCode.h') diff --git a/Source/JavaScriptCore/ftl/FTLJITCode.h b/Source/JavaScriptCore/ftl/FTLJITCode.h index 3e7213983..2c2809e97 100644 --- a/Source/JavaScriptCore/ftl/FTLJITCode.h +++ b/Source/JavaScriptCore/ftl/FTLJITCode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Apple Inc. All rights reserved. + * Copyright (C) 2013, 2015 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -23,63 +23,63 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef FTLJITCode_h -#define FTLJITCode_h - -#include +#pragma once #if ENABLE(FTL_JIT) +#include "B3OpaqueByproducts.h" #include "DFGCommonData.h" +#include "FTLLazySlowPath.h" #include "FTLOSRExit.h" -#include "FTLStackMaps.h" #include "JITCode.h" -#include "LLVMAPI.h" -#include -namespace JSC { namespace FTL { +namespace JSC { + +class TrackedReferences; -typedef int64_t LSectionWord; // We refer to LLVM data sections using LSectionWord*, just to be clear about our intended alignment restrictions. +namespace FTL { class JITCode : public JSC::JITCode { public: JITCode(); ~JITCode(); + + CodePtr addressForCall(ArityCheckMode) override; + void* executableAddressAtOffset(size_t offset) override; + void* dataAddressAtOffset(size_t offset) override; + unsigned offsetOf(void* pointerIntoCode) override; + size_t size() override; + bool contains(void*) override; + + void initializeB3Code(CodeRef); + void initializeB3Byproducts(std::unique_ptr); + void initializeAddressForCall(CodePtr); + void initializeArityCheckEntrypoint(CodeRef); - CodePtr addressForCall(); - void* executableAddressAtOffset(size_t offset); - void* dataAddressAtOffset(size_t offset); - unsigned offsetOf(void* pointerIntoCode); - size_t size(); - bool contains(void*); - - void initializeExitThunks(CodeRef); - void addHandle(PassRefPtr); - void addDataSection(RefCountedArray); - void initializeCode(CodeRef entrypoint); - - const Vector>& handles() const { return m_handles; } - const Vector>& dataSections() const { return m_dataSections; } - - CodePtr exitThunks(); + void validateReferences(const TrackedReferences&) override; + + RegisterSet liveRegistersToPreserveAtExceptionHandlingCallSite(CodeBlock*, CallSiteIndex) override; + + std::optional findPC(CodeBlock*, void* pc) override; + + CodeRef b3Code() const { return m_b3Code; } - JITCode* ftl(); - DFG::CommonData* dfgCommon(); + JITCode* ftl() override; + DFG::CommonData* dfgCommon() override; + static ptrdiff_t commonDataOffset() { return OBJECT_OFFSETOF(JITCode, common); } DFG::CommonData common; SegmentedVector osrExit; - StackMaps stackmaps; + SegmentedVector osrExitDescriptors; + Vector> lazySlowPaths; private: - Vector> m_dataSections; - Vector> m_handles; - CodeRef m_entrypoint; - CodeRef m_exitThunks; + CodePtr m_addressForCall; + CodeRef m_b3Code; + std::unique_ptr m_b3Byproducts; + CodeRef m_arityCheckEntrypoint; }; } } // namespace JSC::FTL #endif // ENABLE(FLT_JIT) - -#endif // FTLJITCode_h - -- cgit v1.2.1