| Index: src/x64/regexp-macro-assembler-x64.cc
 | 
| ===================================================================
 | 
| --- src/x64/regexp-macro-assembler-x64.cc	(revision 9531)
 | 
| +++ src/x64/regexp-macro-assembler-x64.cc	(working copy)
 | 
| @@ -193,7 +193,7 @@
 | 
|  void RegExpMacroAssemblerX64::CheckAtStart(Label* on_at_start) {
 | 
|    Label not_at_start;
 | 
|    // Did we start the match at the start of the string at all?
 | 
| -  __ cmpb(Operand(rbp, kStartIndex), Immediate(0));
 | 
| +  __ cmpl(Operand(rbp, kStartIndex), Immediate(0));
 | 
|    BranchOrBacktrack(not_equal, ¬_at_start);
 | 
|    // If we did, are we still at the start of the input?
 | 
|    __ lea(rax, Operand(rsi, rdi, times_1, 0));
 | 
| @@ -205,7 +205,7 @@
 | 
|  
 | 
|  void RegExpMacroAssemblerX64::CheckNotAtStart(Label* on_not_at_start) {
 | 
|    // Did we start the match at the start of the string at all?
 | 
| -  __ cmpb(Operand(rbp, kStartIndex), Immediate(0));
 | 
| +  __ cmpl(Operand(rbp, kStartIndex), Immediate(0));
 | 
|    BranchOrBacktrack(not_equal, on_not_at_start);
 | 
|    // If we did, are we still at the start of the input?
 | 
|    __ lea(rax, Operand(rsi, rdi, times_1, 0));
 | 
| @@ -431,10 +431,15 @@
 | 
|      // Isolate.
 | 
|      __ LoadAddress(rcx, ExternalReference::isolate_address());
 | 
|  #endif
 | 
| -    ExternalReference compare =
 | 
| -        ExternalReference::re_case_insensitive_compare_uc16(masm_.isolate());
 | 
| -    __ CallCFunction(compare, num_arguments);
 | 
|  
 | 
| +    { // NOLINT: Can't find a way to open this scope without confusing the
 | 
| +      // linter.
 | 
| +      AllowExternalCallThatCantCauseGC scope(&masm_);
 | 
| +      ExternalReference compare =
 | 
| +          ExternalReference::re_case_insensitive_compare_uc16(masm_.isolate());
 | 
| +      __ CallCFunction(compare, num_arguments);
 | 
| +    }
 | 
| +
 | 
|      // Restore original values before reacting on result value.
 | 
|      __ Move(code_object_pointer(), masm_.CodeObject());
 | 
|      __ pop(backtrack_stackpointer());
 | 
| @@ -706,7 +711,12 @@
 | 
|    // registers we need.
 | 
|    // Entry code:
 | 
|    __ bind(&entry_label_);
 | 
| -  // Start new stack frame.
 | 
| +
 | 
| +  // Tell the system that we have a stack frame.  Because the type is MANUAL, no
 | 
| +  // is generated.
 | 
| +  FrameScope scope(&masm_, StackFrame::MANUAL);
 | 
| +
 | 
| +  // Actually emit code to start a new stack frame.
 | 
|    __ push(rbp);
 | 
|    __ movq(rbp, rsp);
 | 
|    // Save parameters and callee-save registers. Order here should correspond
 | 
| 
 |