| Index: src/arm/simulator-arm.h
|
| ===================================================================
|
| --- src/arm/simulator-arm.h (revision 7180)
|
| +++ src/arm/simulator-arm.h (working copy)
|
| @@ -48,10 +48,16 @@
|
| #define CALL_GENERATED_CODE(entry, p0, p1, p2, p3, p4) \
|
| (entry(p0, p1, p2, p3, p4))
|
|
|
| -// Call the generated regexp code directly. The entry function pointer should
|
| -// expect seven int/pointer sized arguments and return an int.
|
| +typedef int (*arm_regexp_matcher)(String*, int, const byte*, const byte*,
|
| + void*, int*, Address, 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) \
|
| - (entry(p0, p1, p2, p3, NULL, p4, p5, p6))
|
| + (FUNCTION_CAST<arm_regexp_matcher>(entry)(p0, p1, p2, p3, NULL, p4, p5, p6))
|
|
|
| #define TRY_CATCH_FROM_ADDRESS(try_catch_address) \
|
| (reinterpret_cast<TryCatch*>(try_catch_address))
|
| @@ -362,8 +368,7 @@
|
| FUNCTION_ADDR(entry), 5, p0, p1, p2, p3, p4))
|
|
|
| #define CALL_GENERATED_REGEXP_CODE(entry, p0, p1, p2, p3, p4, p5, p6) \
|
| - Simulator::current()->Call( \
|
| - FUNCTION_ADDR(entry), 8, p0, p1, p2, p3, NULL, p4, p5, p6)
|
| + Simulator::current()->Call(entry, 8, p0, p1, p2, p3, NULL, p4, p5, p6)
|
|
|
| #define TRY_CATCH_FROM_ADDRESS(try_catch_address) \
|
| try_catch_address == \
|
|
|