| Index: src/regexp-macro-assembler-irregexp.h
|
| ===================================================================
|
| --- src/regexp-macro-assembler-irregexp.h (revision 927)
|
| +++ src/regexp-macro-assembler-irregexp.h (working copy)
|
| @@ -62,14 +62,16 @@
|
| virtual void PushRegister(int register_index);
|
| virtual void AdvanceRegister(int reg, int by); // r[reg] += by.
|
| virtual void SetRegister(int register_index, int to);
|
| - virtual void WriteCurrentPositionToRegister(int reg);
|
| + virtual void WriteCurrentPositionToRegister(int reg, int cp_offset);
|
| virtual void ReadCurrentPositionFromRegister(int reg);
|
| virtual void WriteStackPointerToRegister(int reg);
|
| virtual void ReadStackPointerFromRegister(int reg);
|
| virtual void LoadCurrentCharacter(int cp_offset, Label* on_end_of_input);
|
| + virtual void LoadCurrentCharacterUnchecked(int cp_offset);
|
| virtual void CheckCharacterLT(uc16 limit, Label* on_less);
|
| virtual void CheckCharacterGT(uc16 limit, Label* on_greater);
|
| virtual void CheckCharacter(uc16 c, Label* on_equal);
|
| + virtual void CheckGreedyLoop(Label* on_tos_equals_current_position);
|
| virtual void CheckNotAtStart(Label* on_not_at_start);
|
| virtual void CheckNotCharacter(uc16 c, Label* on_not_equal);
|
| virtual void CheckNotCharacterAfterOr(uc16 c, uc16 mask, Label* on_not_equal);
|
| @@ -82,8 +84,8 @@
|
| virtual void CheckNotRegistersEqual(int reg1, int reg2, Label* on_not_equal);
|
| virtual void CheckCharacters(Vector<const uc16> str,
|
| int cp_offset,
|
| - Label* on_failure);
|
| - virtual void CheckCurrentPosition(int register_index, Label* on_equal);
|
| + Label* on_failure,
|
| + bool check_end_of_string);
|
| virtual void CheckBitmap(uc16 start, Label* bitmap, Label* on_zero);
|
| virtual void DispatchHalfNibbleMap(uc16 start,
|
| Label* half_nibble_map,
|
| @@ -98,7 +100,7 @@
|
| virtual void IfRegisterGE(int register_index, int comparand, Label* if_ge);
|
|
|
| virtual IrregexpImplementation Implementation();
|
| - virtual Handle<Object> GetCode();
|
| + virtual Handle<Object> GetCode(Handle<String> source);
|
| private:
|
| void Expand();
|
| // Code and bitmap emission.
|
| @@ -109,14 +111,13 @@
|
| int length();
|
| void Copy(Address a);
|
|
|
| -
|
| -
|
| // The buffer into which code and relocation info are generated.
|
| Vector<byte> buffer_;
|
| // The program counter.
|
| int pc_;
|
| // True if the assembler owns the buffer, false if buffer is external.
|
| bool own_buffer_;
|
| + Label backtrack_;
|
|
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(RegExpMacroAssemblerIrregexp);
|
| };
|
|
|