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 |