| Index: src/regexp/mips/regexp-macro-assembler-mips.cc
 | 
| diff --git a/src/regexp/mips/regexp-macro-assembler-mips.cc b/src/regexp/mips/regexp-macro-assembler-mips.cc
 | 
| index 89bf40f169f04d94560f1618d39e847f30c832e0..062d6618e9849600b3fbaf79fbfbcd1970036bfc 100644
 | 
| --- a/src/regexp/mips/regexp-macro-assembler-mips.cc
 | 
| +++ b/src/regexp/mips/regexp-macro-assembler-mips.cc
 | 
| @@ -38,13 +38,14 @@
 | 
|   *
 | 
|   * The stack will have the following structure:
 | 
|   *
 | 
| - *  - fp[60]  Isolate* isolate   (address of the current isolate)
 | 
| - *  - fp[56]  direct_call  (if 1, direct call from JavaScript code,
 | 
| + *  - fp[64]  Isolate* isolate   (address of the current isolate)
 | 
| + *  - fp[60]  direct_call  (if 1, direct call from JavaScript code,
 | 
|   *                          if 0, call through the runtime system).
 | 
| - *  - fp[52]  stack_area_base (High end of the memory area to use as
 | 
| + *  - fp[56]  stack_area_base (High end of the memory area to use as
 | 
|   *                             backtracking stack).
 | 
| - *  - fp[48]  capture array size (may fit multiple sets of matches)
 | 
| - *  - fp[44]  int* capture_array (int[num_saved_registers_], for output).
 | 
| + *  - fp[52]  capture array size (may fit multiple sets of matches)
 | 
| + *  - fp[48]  int* capture_array (int[num_saved_registers_], for output).
 | 
| + *  - fp[44]  secondary link/return address used by native call.
 | 
|   *  --- sp when called ---
 | 
|   *  - fp[40]  return address      (lr).
 | 
|   *  - fp[36]  old frame pointer   (r11).
 | 
| @@ -77,14 +78,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 mips/simulator-mips.h.
 | 
| + * When calling as a non-direct call (i.e., from C++ code), the return address
 | 
| + * area is overwritten with the ra 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_)
 | 
| 
 |