Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index eb9297829f904024f3fc79dd0e26c6d9b9e9112b..0c7e9621edb16dae7fc98c2755ee39abea60efe6 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -2423,7 +2423,6 @@ void RegExpExecStub::Generate(MacroAssembler* masm) { |
static const int kJSRegExpOffset = 4 * kPointerSize; |
Label runtime; |
- |
// Ensure that a RegExp stack is allocated. |
ExternalReference address_of_regexp_stack_memory_address = |
ExternalReference::address_of_regexp_stack_memory_address(); |
@@ -2441,32 +2440,32 @@ void RegExpExecStub::Generate(MacroAssembler* masm) { |
__ CmpObjectType(rax, JS_REGEXP_TYPE, kScratchRegister); |
__ j(not_equal, &runtime); |
// Check that the RegExp has been compiled (data contains a fixed array). |
- __ movq(rcx, FieldOperand(rax, JSRegExp::kDataOffset)); |
+ __ movq(rax, FieldOperand(rax, JSRegExp::kDataOffset)); |
if (FLAG_debug_code) { |
- Condition is_smi = masm->CheckSmi(rcx); |
+ Condition is_smi = masm->CheckSmi(rax); |
__ Check(NegateCondition(is_smi), |
"Unexpected type for RegExp data, FixedArray expected"); |
- __ CmpObjectType(rcx, FIXED_ARRAY_TYPE, kScratchRegister); |
+ __ CmpObjectType(rax, FIXED_ARRAY_TYPE, kScratchRegister); |
__ Check(equal, "Unexpected type for RegExp data, FixedArray expected"); |
} |
- // rcx: RegExp data (FixedArray) |
+ // rax: RegExp data (FixedArray) |
// Check the type of the RegExp. Only continue if type is JSRegExp::IRREGEXP. |
- __ SmiToInteger32(rbx, FieldOperand(rcx, JSRegExp::kDataTagOffset)); |
+ __ SmiToInteger32(rbx, FieldOperand(rax, JSRegExp::kDataTagOffset)); |
__ cmpl(rbx, Immediate(JSRegExp::IRREGEXP)); |
__ j(not_equal, &runtime); |
- // rcx: RegExp data (FixedArray) |
+ // rax: RegExp data (FixedArray) |
// Check that the number of captures fit in the static offsets vector buffer. |
__ SmiToInteger32(rdx, |
- FieldOperand(rcx, JSRegExp::kIrregexpCaptureCountOffset)); |
+ FieldOperand(rax, JSRegExp::kIrregexpCaptureCountOffset)); |
// Calculate number of capture registers (number_of_captures + 1) * 2. |
__ leal(rdx, Operand(rdx, rdx, times_1, 2)); |
// Check that the static offsets vector buffer is large enough. |
__ cmpl(rdx, Immediate(OffsetsVector::kStaticOffsetsVectorSize)); |
__ j(above, &runtime); |
- // rcx: RegExp data (FixedArray) |
+ // rax: RegExp data (FixedArray) |
// rdx: Number of capture registers |
// Check that the second argument is a string. |
__ movq(rdi, Operand(rsp, kSubjectOffset)); |
@@ -2584,7 +2583,7 @@ void RegExpExecStub::Generate(MacroAssembler* masm) { |
static const int kRegExpExecuteArguments = 7; |
int argument_slots_on_stack = |
masm->ArgumentStackSlotsForCFunctionCall(kRegExpExecuteArguments); |
- __ EnterApiExitFrame(argument_slots_on_stack); // Clobbers rax! |
+ __ EnterApiExitFrame(argument_slots_on_stack); |
// Argument 7: Indicate that this is a direct call from JavaScript. |
__ movq(Operand(rsp, (argument_slots_on_stack - 1) * kPointerSize), |