CacheIRAOT.h (1106B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 2 * vim: set ts=8 sts=2 et sw=2 tw=80: 3 * This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef jit_CacheIRAOT_h 8 #define jit_CacheIRAOT_h 9 10 #include "mozilla/Span.h" 11 12 #include "jit/CacheIR.h" 13 #include "jit/CacheIRWriter.h" 14 15 struct JSContext; 16 17 namespace js { 18 namespace jit { 19 20 class JitZone; 21 22 struct AOTStubFieldData { 23 StubField::Type type; 24 uint64_t data; 25 }; 26 27 struct CacheIRAOTStub { 28 CacheKind kind; 29 uint32_t numOperandIds; 30 uint32_t numInputOperands; 31 uint32_t numInstructions; 32 TypeData typeData; 33 uint32_t stubDataSize; 34 const AOTStubFieldData* stubfields; 35 size_t stubfieldCount; 36 const uint32_t* operandLastUsed; // length: numOperandIds 37 const uint8_t* data; 38 size_t dataLength; 39 }; 40 41 mozilla::Span<const CacheIRAOTStub> GetAOTStubs(); 42 void FillAOTICs(JSContext* cx, JitZone* zone); 43 44 } // namespace jit 45 } // namespace js 46 47 #endif /* jit_CacheIRAOT_h */