| Index: src/regexp/regexp-macro-assembler-irregexp.cc | 
| diff --git a/src/regexp/regexp-macro-assembler-irregexp.cc b/src/regexp/regexp-macro-assembler-irregexp.cc | 
| index ca567c9bdab5c4dabe54099495e199db0ce0efb8..90a92e48b4cbf5dfd2ffe5848202b8c6d7061ba5 100644 | 
| --- a/src/regexp/regexp-macro-assembler-irregexp.cc | 
| +++ b/src/regexp/regexp-macro-assembler-irregexp.cc | 
| @@ -273,8 +273,9 @@ void RegExpMacroAssemblerIrregexp::CheckAtStart(Label* on_at_start) { | 
| } | 
|  | 
|  | 
| -void RegExpMacroAssemblerIrregexp::CheckNotAtStart(Label* on_not_at_start) { | 
| -  Emit(BC_CHECK_NOT_AT_START, 0); | 
| +void RegExpMacroAssemblerIrregexp::CheckNotAtStart(int cp_offset, | 
| +                                                   Label* on_not_at_start) { | 
| +  Emit(BC_CHECK_NOT_AT_START, cp_offset); | 
| EmitOrLink(on_not_at_start); | 
| } | 
|  | 
| @@ -370,20 +371,23 @@ void RegExpMacroAssemblerIrregexp::CheckBitInTable( | 
|  | 
|  | 
| void RegExpMacroAssemblerIrregexp::CheckNotBackReference(int start_reg, | 
| +                                                         bool read_backward, | 
| Label* on_not_equal) { | 
| DCHECK(start_reg >= 0); | 
| DCHECK(start_reg <= kMaxRegister); | 
| -  Emit(BC_CHECK_NOT_BACK_REF, start_reg); | 
| +  Emit(read_backward ? BC_CHECK_NOT_BACK_REF_BACKWARD : BC_CHECK_NOT_BACK_REF, | 
| +       start_reg); | 
| EmitOrLink(on_not_equal); | 
| } | 
|  | 
|  | 
| void RegExpMacroAssemblerIrregexp::CheckNotBackReferenceIgnoreCase( | 
| -    int start_reg, | 
| -    Label* on_not_equal) { | 
| +    int start_reg, bool read_backward, Label* on_not_equal) { | 
| DCHECK(start_reg >= 0); | 
| DCHECK(start_reg <= kMaxRegister); | 
| -  Emit(BC_CHECK_NOT_BACK_REF_NO_CASE, start_reg); | 
| +  Emit(read_backward ? BC_CHECK_NOT_BACK_REF_NO_CASE_BACKWARD | 
| +                     : BC_CHECK_NOT_BACK_REF_NO_CASE, | 
| +       start_reg); | 
| EmitOrLink(on_not_equal); | 
| } | 
|  | 
|  |