| Index: src/ppc/simulator-ppc.h
|
| diff --git a/src/ppc/simulator-ppc.h b/src/ppc/simulator-ppc.h
|
| index bdf50ba4746fe13fb02aaf7aacde38e6151d83df..b5fc7aba0e56f1ed50e6b33df2d4215b40869221 100644
|
| --- a/src/ppc/simulator-ppc.h
|
| +++ b/src/ppc/simulator-ppc.h
|
| @@ -22,7 +22,7 @@ namespace v8 {
|
| namespace internal {
|
|
|
| // When running without a simulator we call the entry directly.
|
| -#define CALL_GENERATED_CODE(entry, p0, p1, p2, p3, p4) \
|
| +#define CALL_GENERATED_CODE(isolate, entry, p0, p1, p2, p3, p4) \
|
| (entry(p0, p1, p2, p3, p4))
|
|
|
| typedef int (*ppc_regexp_matcher)(String*, int, const byte*, const byte*, int*,
|
| @@ -33,8 +33,9 @@ typedef int (*ppc_regexp_matcher)(String*, int, const byte*, const byte*, int*,
|
| // should act as a function matching the type ppc_regexp_matcher.
|
| // The ninth argument is a dummy that reserves the space used for
|
| // the return address added by the ExitFrame in native calls.
|
| -#define CALL_GENERATED_REGEXP_CODE(entry, p0, p1, p2, p3, p4, p5, p6, p7, p8) \
|
| - (FUNCTION_CAST<ppc_regexp_matcher>(entry)(p0, p1, p2, p3, p4, p5, p6, p7, \
|
| +#define CALL_GENERATED_REGEXP_CODE(isolate, entry, p0, p1, p2, p3, p4, p5, p6, \
|
| + p7, p8) \
|
| + (FUNCTION_CAST<ppc_regexp_matcher>(entry)(p0, p1, p2, p3, p4, p5, p6, p7, \
|
| NULL, p8))
|
|
|
| // The stack limit beyond which we will throw stack overflow errors in
|
| @@ -48,11 +49,15 @@ class SimulatorStack : public v8::internal::AllStatic {
|
| return c_limit;
|
| }
|
|
|
| - static inline uintptr_t RegisterCTryCatch(uintptr_t try_catch_address) {
|
| + static inline uintptr_t RegisterCTryCatch(v8::internal::Isolate* isolate,
|
| + uintptr_t try_catch_address) {
|
| + USE(isolate);
|
| return try_catch_address;
|
| }
|
|
|
| - static inline void UnregisterCTryCatch() {}
|
| + static inline void UnregisterCTryCatch(v8::internal::Isolate* isolate) {
|
| + USE(isolate);
|
| + }
|
| };
|
| } // namespace internal
|
| } // namespace v8
|
| @@ -329,7 +334,8 @@ class Simulator {
|
|
|
| // Runtime call support.
|
| static void* RedirectExternalReference(
|
| - void* external_function, v8::internal::ExternalReference::Type type);
|
| + Isolate* isolate, void* external_function,
|
| + v8::internal::ExternalReference::Type type);
|
|
|
| // Handle arguments and return value for runtime FP functions.
|
| void GetFpArgs(double* x, double* y, intptr_t* z);
|
| @@ -391,16 +397,17 @@ class Simulator {
|
|
|
| // When running with the simulator transition into simulated execution at this
|
| // point.
|
| -#define CALL_GENERATED_CODE(entry, p0, p1, p2, p3, p4) \
|
| - reinterpret_cast<Object*>(Simulator::current(Isolate::Current())->Call( \
|
| - FUNCTION_ADDR(entry), 5, (intptr_t)p0, (intptr_t)p1, (intptr_t)p2, \
|
| +#define CALL_GENERATED_CODE(isolate, entry, p0, p1, p2, p3, p4) \
|
| + reinterpret_cast<Object*>(Simulator::current(isolate)->Call( \
|
| + FUNCTION_ADDR(entry), 5, (intptr_t)p0, (intptr_t)p1, (intptr_t)p2, \
|
| (intptr_t)p3, (intptr_t)p4))
|
|
|
| -#define CALL_GENERATED_REGEXP_CODE(entry, p0, p1, p2, p3, p4, p5, p6, p7, p8) \
|
| - Simulator::current(Isolate::Current()) \
|
| - ->Call(entry, 10, (intptr_t)p0, (intptr_t)p1, (intptr_t)p2, \
|
| - (intptr_t)p3, (intptr_t)p4, (intptr_t)p5, (intptr_t)p6, \
|
| - (intptr_t)p7, (intptr_t)NULL, (intptr_t)p8)
|
| +#define CALL_GENERATED_REGEXP_CODE(isolate, entry, p0, p1, p2, p3, p4, p5, p6, \
|
| + p7, p8) \
|
| + Simulator::current(isolate)->Call(entry, 10, (intptr_t)p0, (intptr_t)p1, \
|
| + (intptr_t)p2, (intptr_t)p3, (intptr_t)p4, \
|
| + (intptr_t)p5, (intptr_t)p6, (intptr_t)p7, \
|
| + (intptr_t)NULL, (intptr_t)p8)
|
|
|
|
|
| // The simulator has its own stack. Thus it has a different stack limit from
|
| @@ -414,13 +421,14 @@ class SimulatorStack : public v8::internal::AllStatic {
|
| return Simulator::current(isolate)->StackLimit(c_limit);
|
| }
|
|
|
| - static inline uintptr_t RegisterCTryCatch(uintptr_t try_catch_address) {
|
| - Simulator* sim = Simulator::current(Isolate::Current());
|
| + static inline uintptr_t RegisterCTryCatch(v8::internal::Isolate* isolate,
|
| + uintptr_t try_catch_address) {
|
| + Simulator* sim = Simulator::current(isolate);
|
| return sim->PushAddress(try_catch_address);
|
| }
|
|
|
| - static inline void UnregisterCTryCatch() {
|
| - Simulator::current(Isolate::Current())->PopAddress();
|
| + static inline void UnregisterCTryCatch(v8::internal::Isolate* isolate) {
|
| + Simulator::current(isolate)->PopAddress();
|
| }
|
| };
|
| } // namespace internal
|
|
|