| Index: src/regexp/arm64/regexp-macro-assembler-arm64.cc
|
| diff --git a/src/regexp/arm64/regexp-macro-assembler-arm64.cc b/src/regexp/arm64/regexp-macro-assembler-arm64.cc
|
| index d4b80a7c3f59df4936281c69cb176d0514990b26..7d015d096b2540ad40ff3e9e62637b453be41956 100644
|
| --- a/src/regexp/arm64/regexp-macro-assembler-arm64.cc
|
| +++ b/src/regexp/arm64/regexp-macro-assembler-arm64.cc
|
| @@ -56,7 +56,10 @@
|
| * (as referred to in
|
| * the code)
|
| *
|
| - * - fp[96] isolate Address of the current isolate.
|
| + * - fp[104] isolate Address of the current isolate.
|
| + * - fp[96] return_address Secondary link/return address
|
| + * used by an exit frame if this is a
|
| + * native call.
|
| * ^^^ csp when called ^^^
|
| * - fp[88] lr Return from the RegExp code.
|
| * - fp[80] r29 Old frame pointer (CalleeSaved).
|
| @@ -86,18 +89,23 @@
|
| * The data up to the return address must be placed there by the calling
|
| * code and the remaining arguments are passed in registers, e.g. by calling the
|
| * code entry as cast to a function with the signature:
|
| - * int (*match)(String* input_string,
|
| - * int start_index,
|
| - * Address start,
|
| - * Address end,
|
| - * int* capture_output_array,
|
| - * int num_capture_registers,
|
| - * byte* stack_area_base,
|
| + * int (*match)(String* input,
|
| + * int start_offset,
|
| + * Address input_start,
|
| + * Address input_end,
|
| + * int* output,
|
| + * int output_size,
|
| + * Address stack_base,
|
| * bool direct_call = false,
|
| - * Isolate* isolate);
|
| + * Address secondary_return_address, // Only used by native call.
|
| + * Isolate* isolate)
|
| * The call is performed by NativeRegExpMacroAssembler::Execute()
|
| * (in regexp-macro-assembler.cc) via the CALL_GENERATED_REGEXP_CODE macro
|
| * in arm64/simulator-arm64.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_)
|
|
|