Index: src/regexp/ppc/regexp-macro-assembler-ppc.cc |
diff --git a/src/regexp/ppc/regexp-macro-assembler-ppc.cc b/src/regexp/ppc/regexp-macro-assembler-ppc.cc |
index 5c3f8d5e39f27fa98b6f4d93e53818ebc727c2a4..d6af025f2ed8f10d69a72e0d5ce6ccb757f13847 100644 |
--- a/src/regexp/ppc/regexp-macro-assembler-ppc.cc |
+++ b/src/regexp/ppc/regexp-macro-assembler-ppc.cc |
@@ -38,7 +38,8 @@ |
* Each call to a public method should retain this convention. |
* |
* The stack will have the following structure: |
- * - fp[40] Isolate* isolate (address of the current isolate) |
+ * - fp[44] Isolate* isolate (address of the current isolate) |
+ * - fp[40] secondary link/return address used by native call. |
* - fp[36] lr save area (currently unused) |
* - fp[32] backchain (currently unused) |
* --- sp when called --- |
@@ -80,13 +81,16 @@ |
* Address start, |
* Address end, |
* int* capture_output_array, |
- * int num_capture_registers, |
* byte* stack_area_base, |
- * bool direct_call = false, |
- * Isolate* isolate); |
+ * Address secondary_return_address, // Only used by native call. |
+ * bool direct_call = false) |
* The call is performed by NativeRegExpMacroAssembler::Execute() |
* (in regexp-macro-assembler.cc) via the CALL_GENERATED_REGEXP_CODE macro |
* in ppc/simulator-ppc.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_) |