]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - llint/LowLevelInterpreter.h
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / llint / LowLevelInterpreter.h
index 6383757cfc367c1911457dd2d3606b28c56a1064..8621dbd5a794398f2389228ee5be7b5d9c8df243 100644 (file)
 #ifndef LowLevelInterpreter_h
 #define LowLevelInterpreter_h
 
 #ifndef LowLevelInterpreter_h
 #define LowLevelInterpreter_h
 
-#include <wtf/Platform.h>
+#include "Opcode.h"
 
 
-#if ENABLE(LLINT)
+#if !ENABLE(JIT)
 
 
-#include "Opcode.h"
+namespace JSC {
+
+// The following is a set of alias for the opcode names. This is needed
+// because there is code (e.g. in GetByIdStatus.cpp and PutByIdStatus.cpp)
+// which refers to the opcodes expecting them to be prefixed with "llint_".
+// In the CLoop implementation, the 2 are equivalent. Hence, we set up this
+// alias here.
+
+#define LLINT_OPCODE_ALIAS(opcode, length) \
+    const OpcodeID llint_##opcode = opcode;
+FOR_EACH_CORE_OPCODE_ID(LLINT_OPCODE_ALIAS)
+#undef LLINT_OPCODE_ALIAS
+
+} // namespace JSC
 
 
-#define LLINT_INSTRUCTION_DECL(opcode, length) extern "C" void llint_##opcode();
-    FOR_EACH_OPCODE_ID(LLINT_INSTRUCTION_DECL);
-#undef LLINT_INSTRUCTION_DECL
-
-extern "C" void llint_begin();
-extern "C" void llint_end();
-extern "C" void llint_program_prologue();
-extern "C" void llint_eval_prologue();
-extern "C" void llint_function_for_call_prologue();
-extern "C" void llint_function_for_construct_prologue();
-extern "C" void llint_function_for_call_arity_check();
-extern "C" void llint_function_for_construct_arity_check();
-extern "C" void llint_generic_return_point();
-extern "C" void llint_throw_from_slow_path_trampoline();
-extern "C" void llint_throw_during_call_trampoline();
-
-// Native call trampolines
-extern "C" void llint_native_call_trampoline();
-extern "C" void llint_native_construct_trampoline();
-
-#endif // ENABLE(LLINT)
+#endif // !ENABLE(JIT)
 
 #endif // LowLevelInterpreter_h
 
 #endif // LowLevelInterpreter_h