diff options
Diffstat (limited to 'deps/v8/src/x64/simulator-x64.h')
-rw-r--r-- | deps/v8/src/x64/simulator-x64.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/deps/v8/src/x64/simulator-x64.h b/deps/v8/src/x64/simulator-x64.h index 184c166bc0..998c9095e7 100644 --- a/deps/v8/src/x64/simulator-x64.h +++ b/deps/v8/src/x64/simulator-x64.h @@ -28,6 +28,7 @@ #ifndef V8_X64_SIMULATOR_X64_H_ #define V8_X64_SIMULATOR_X64_H_ +#include "allocation.h" // Since there is no simulator for the ia32 architecture the only thing we can // do is to call the entry directly. @@ -35,15 +36,15 @@ #define CALL_GENERATED_CODE(entry, p0, p1, p2, p3, p4) \ entry(p0, p1, p2, p3, p4); -// Calculated the stack limit beyond which we will throw stack overflow errors. -// This macro must be called from a C++ method. It relies on being able to take -// the address of "this" to get a value on the current execution stack and then -// calculates the stack limit based on that value. -// NOTE: The check for overflow is not safe as there is no guarantee that the -// running thread has its stack in all memory up to address 0x00000000. -#define GENERATED_CODE_STACK_LIMIT(limit) \ - (reinterpret_cast<uintptr_t>(this) >= limit ? \ - reinterpret_cast<uintptr_t>(this) - limit : 0) +// The stack limit beyond which we will throw stack overflow errors in +// generated code. Because generated code on x64 uses the C stack, we +// just use the C stack limit. +class SimulatorStack : public v8::internal::AllStatic { + public: + static inline uintptr_t JsLimitFromCLimit(uintptr_t c_limit) { + return c_limit; + } +}; // Call the generated regexp code directly. The entry function pointer should // expect seven int/pointer sized arguments and return an int. |