Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Unified Diff: src/regexp/mips/regexp-macro-assembler-mips.cc

Issue 2832193002: Revert of [regexp] Remove remainder of native RegExpExecStub (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/regexp/mips/regexp-macro-assembler-mips.h ('k') | src/regexp/mips64/regexp-macro-assembler-mips64.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_)
« no previous file with comments | « src/regexp/mips/regexp-macro-assembler-mips.h ('k') | src/regexp/mips64/regexp-macro-assembler-mips64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698