| Index: src/regexp/arm/regexp-macro-assembler-arm.cc
|
| diff --git a/src/regexp/arm/regexp-macro-assembler-arm.cc b/src/regexp/arm/regexp-macro-assembler-arm.cc
|
| index 5caaee3bc8b68cae0107a487638c570d94b4ed51..579423ff32e4351d137a7bf17e89fcd7f68cf437 100644
|
| --- a/src/regexp/arm/regexp-macro-assembler-arm.cc
|
| +++ b/src/regexp/arm/regexp-macro-assembler-arm.cc
|
| @@ -41,13 +41,14 @@
|
| * Each call to a public method should retain this convention.
|
| *
|
| * The stack will have the following structure:
|
| - * - fp[52] Isolate* isolate (address of the current isolate)
|
| - * - fp[48] direct_call (if 1, direct call from JavaScript code,
|
| + * - fp[56] Isolate* isolate (address of the current isolate)
|
| + * - fp[52] direct_call (if 1, direct call from JavaScript code,
|
| * if 0, call through the runtime system).
|
| - * - fp[44] stack_area_base (high end of the memory area to use as
|
| + * - fp[48] stack_area_base (high end of the memory area to use as
|
| * backtracking stack).
|
| - * - fp[40] capture array size (may fit multiple sets of matches)
|
| - * - fp[36] int* capture_array (int[num_saved_registers_], for output).
|
| + * - fp[44] capture array size (may fit multiple sets of matches)
|
| + * - fp[40] int* capture_array (int[num_saved_registers_], for output).
|
| + * - fp[36] secondary link/return address used by native call.
|
| * --- sp when called ---
|
| * - fp[32] return address (lr).
|
| * - fp[28] old frame pointer (r11).
|
| @@ -80,14 +81,17 @@
|
| * int start_index,
|
| * Address start,
|
| * Address end,
|
| + * Address secondary_return_address, // Only used by native call.
|
| * int* capture_output_array,
|
| - * int num_capture_registers,
|
| * byte* stack_area_base,
|
| - * bool direct_call = false,
|
| - * Isolate* isolate);
|
| + * bool direct_call = false)
|
| * The call is performed by NativeRegExpMacroAssembler::Execute()
|
| * (in regexp-macro-assembler.cc) via the CALL_GENERATED_REGEXP_CODE macro
|
| * in arm/simulator-arm.h.
|
| + * When calling as a non-direct call (i.e., from C++ code), the return address
|
| + * area is overwritten with the LR register by the RegExp code. When doing a
|
| + * direct call from generated code, the return address is placed there by
|
| + * the calling code, as in a normal exit frame.
|
| */
|
|
|
| #define __ ACCESS_MASM(masm_)
|
|
|