Index: src/sh4/simulator-sh4.h |
diff --git a/src/ia32/simulator-ia32.h b/src/sh4/simulator-sh4.h |
similarity index 72% |
copy from src/ia32/simulator-ia32.h |
copy to src/sh4/simulator-sh4.h |
index 478d4ce5cb309b0a27575b8741ead47c3fb7675a..51ee215cf4dcc6ca1d04eb4189198ee6e7dabaee 100644 |
--- a/src/ia32/simulator-ia32.h |
+++ b/src/sh4/simulator-sh4.h |
@@ -1,4 +1,4 @@ |
-// Copyright 2012 the V8 project authors. All rights reserved. |
+// Copyright 2011-2012 the V8 project authors. All rights reserved. |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
// met: |
@@ -25,38 +25,39 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-#ifndef V8_IA32_SIMULATOR_IA32_H_ |
-#define V8_IA32_SIMULATOR_IA32_H_ |
+#ifndef V8_SH4_SIMULATOR_SH4_H_ |
+#define V8_SH4_SIMULATOR_SH4_H_ |
#include "allocation.h" |
namespace v8 { |
namespace internal { |
-// Since there is no simulator for the ia32 architecture the only thing we can |
-// do is to call the entry directly. |
+// When running without a simulator we call the entry directly. |
#define CALL_GENERATED_CODE(entry, p0, p1, p2, p3, p4) \ |
(entry(p0, p1, p2, p3, p4)) |
+typedef int (*sh4_regexp_matcher)(String*, int, const byte*, const byte*, |
+ void*, int*, int, Address, int, Isolate*); |
-typedef int (*regexp_matcher)(String*, int, const byte*, |
- const byte*, int*, int, Address, int, Isolate*); |
-// Call the generated regexp code directly. The code at the entry address should |
-// expect eight int/pointer sized arguments and return an int. |
+// Call the generated regexp code directly. The code at the entry address |
+// should act as a function matching the type arm_regexp_matcher. |
+// The fifth 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<regexp_matcher>(entry)(p0, p1, p2, p3, p4, p5, p6, p7, p8)) |
- |
+ (FUNCTION_CAST<sh4_regexp_matcher>(entry)( \ |
+ p0, p1, p2, p3, NULL, p4, p5, p6, p7, p8)) |
#define TRY_CATCH_FROM_ADDRESS(try_catch_address) \ |
- (reinterpret_cast<TryCatch*>(try_catch_address)) |
+ reinterpret_cast<TryCatch*>(try_catch_address) |
// The stack limit beyond which we will throw stack overflow errors in |
-// generated code. Because generated code on ia32 uses the C stack, we |
+// generated code. Because generated code on sh4 uses the C stack, we |
// just use the C stack limit. |
class SimulatorStack : public v8::internal::AllStatic { |
public: |
- static inline uintptr_t JsLimitFromCLimit(Isolate* isolate, |
+ static inline uintptr_t JsLimitFromCLimit(v8::internal::Isolate* isolate, |
uintptr_t c_limit) { |
USE(isolate); |
return c_limit; |
@@ -71,4 +72,4 @@ class SimulatorStack : public v8::internal::AllStatic { |
} } // namespace v8::internal |
-#endif // V8_IA32_SIMULATOR_IA32_H_ |
+#endif // V8_SH4_SIMULATOR_SH4_H_ |