| Index: src/x64/regexp-macro-assembler-x64.cc
|
| diff --git a/src/x64/regexp-macro-assembler-x64.cc b/src/x64/regexp-macro-assembler-x64.cc
|
| index 13a4caa3fbca8862aa3efc18fca1fde18d1727a6..cb1e029317855cbcdaf8a8b2630910b8bc0a7562 100644
|
| --- a/src/x64/regexp-macro-assembler-x64.cc
|
| +++ b/src/x64/regexp-macro-assembler-x64.cc
|
| @@ -803,7 +803,7 @@ Handle<HeapObject> RegExpMacroAssemblerX64::GetCode(Handle<String> source) {
|
| #endif
|
|
|
| __ push(Immediate(0)); // Number of successful matches in a global regexp.
|
| - __ push(Immediate(0)); // Make room for "at start" constant.
|
| + __ push(Immediate(0)); // Make room for "input start - 1" constant.
|
|
|
| // Check if we have space on the stack for registers.
|
| Label stack_limit_hit;
|
| @@ -872,7 +872,7 @@ Handle<HeapObject> RegExpMacroAssemblerX64::GetCode(Handle<String> source) {
|
|
|
| Label load_char_start_regexp, start_regexp;
|
| // Load newline if index is at start, previous character otherwise.
|
| - __ cmpb(Operand(rbp, kStartIndex), Immediate(0));
|
| + __ cmpl(Operand(rbp, kStartIndex), Immediate(0));
|
| __ j(not_equal, &load_char_start_regexp, Label::kNear);
|
| __ Set(current_character(), '\n');
|
| __ jmp(&start_regexp, Label::kNear);
|
| @@ -944,7 +944,7 @@ Handle<HeapObject> RegExpMacroAssemblerX64::GetCode(Handle<String> source) {
|
| __ incq(Operand(rbp, kSuccessfulCaptures));
|
| // Capture results have been stored, so the number of remaining global
|
| // output registers is reduced by the number of stored captures.
|
| - __ movq(rcx, Operand(rbp, kNumOutputRegisters));
|
| + __ movsxlq(rcx, Operand(rbp, kNumOutputRegisters));
|
| __ subq(rcx, Immediate(num_saved_registers_));
|
| // Check whether we have enough room for another set of capture results.
|
| __ cmpq(rcx, Immediate(num_saved_registers_));
|
|
|