| Index: src/mips64/simulator-mips64.h
|
| diff --git a/src/mips64/simulator-mips64.h b/src/mips64/simulator-mips64.h
|
| index c0f526eb3b163dbbf7e5cd9f712d68a39aeef626..6c41ae111a3ede3659d6f362a280df1a3c3a5a44 100644
|
| --- a/src/mips64/simulator-mips64.h
|
| +++ b/src/mips64/simulator-mips64.h
|
| @@ -29,6 +29,8 @@
|
|
|
| // 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 (or ninth) argument is a dummy that reserves the space used for
|
| +// the return address added by the ExitFrame in native calls.
|
| typedef int (*mips_regexp_matcher)(String* input,
|
| int64_t start_offset,
|
| const byte* input_start,
|
| @@ -37,12 +39,14 @@
|
| int64_t output_size,
|
| Address stack_base,
|
| int64_t direct_call,
|
| + void* return_address,
|
| Isolate* isolate);
|
|
|
| #define CALL_GENERATED_REGEXP_CODE(isolate, entry, p0, p1, p2, p3, p4, p5, p6, \
|
| p7, p8) \
|
| (FUNCTION_CAST<mips_regexp_matcher>(entry)(p0, p1, p2, p3, p4, p5, p6, p7, \
|
| - p8))
|
| + NULL, p8))
|
| +
|
|
|
| // The stack limit beyond which we will throw stack overflow errors in
|
| // generated code. Because generated code on mips uses the C stack, we
|
| @@ -556,10 +560,13 @@
|
| reinterpret_cast<int64_t*>(p1), reinterpret_cast<int64_t*>(p2), \
|
| reinterpret_cast<int64_t*>(p3), reinterpret_cast<int64_t*>(p4)))
|
|
|
| +
|
| #define CALL_GENERATED_REGEXP_CODE(isolate, entry, p0, p1, p2, p3, p4, p5, p6, \
|
| p7, p8) \
|
| - static_cast<int>(Simulator::current(isolate)->Call(entry, 9, p0, p1, p2, p3, \
|
| - p4, p5, p6, p7, p8))
|
| + static_cast<int>(Simulator::current(isolate)->Call( \
|
| + entry, 10, p0, p1, p2, p3, p4, reinterpret_cast<int64_t*>(p5), p6, p7, \
|
| + NULL, p8))
|
| +
|
|
|
| // The simulator has its own stack. Thus it has a different stack limit from
|
| // the C-based native code. The JS-based limit normally points near the end of
|
|
|