diff options
Diffstat (limited to 'Source/JavaScriptCore/llint/LLIntData.h')
| -rw-r--r-- | Source/JavaScriptCore/llint/LLIntData.h | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/Source/JavaScriptCore/llint/LLIntData.h b/Source/JavaScriptCore/llint/LLIntData.h index 7e7794b14..8ed2bceda 100644 --- a/Source/JavaScriptCore/llint/LLIntData.h +++ b/Source/JavaScriptCore/llint/LLIntData.h @@ -28,13 +28,14 @@ #include "JSCJSValue.h" #include "Opcode.h" +#include <wtf/Platform.h> namespace JSC { class VM; struct Instruction; -#if !ENABLE(JIT) +#if ENABLE(LLINT_C_LOOP) typedef OpcodeID LLIntCode; #else typedef void (*LLIntCode)(); @@ -42,13 +43,15 @@ typedef void (*LLIntCode)(); namespace LLInt { +#if ENABLE(LLINT) + class Data { public: static void performAssertions(VM&); private: static Instruction* s_exceptionInstructions; - static Opcode s_opcodeMap[numOpcodeIDs]; + static Opcode* s_opcodeMap; friend void initialize(); @@ -84,12 +87,33 @@ ALWAYS_INLINE void* getCodePtr(OpcodeID id) return reinterpret_cast<void*>(getOpcode(id)); } -#if ENABLE(JIT) -ALWAYS_INLINE LLIntCode getCodeFunctionPtr(OpcodeID codeId) +#else // !ENABLE(LLINT) + +#if COMPILER(CLANG) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wmissing-noreturn" +#endif + +class Data { +public: + static void performAssertions(VM&) { } +}; + +#if COMPILER(CLANG) +#pragma clang diagnostic pop +#endif + +#endif // !ENABLE(LLINT) + +ALWAYS_INLINE void* getOpcode(void llintOpcode()) +{ + return bitwise_cast<void*>(llintOpcode); +} + +ALWAYS_INLINE void* getCodePtr(void glueHelper()) { - return reinterpret_cast<LLIntCode>(getCodePtr(codeId)); + return bitwise_cast<void*>(glueHelper); } -#endif ALWAYS_INLINE void* getCodePtr(JSC::EncodedJSValue glueHelper()) { |
