Index: src/regexp-macro-assembler-re2k.h |
=================================================================== |
--- src/regexp-macro-assembler-re2k.h (revision 738) |
+++ src/regexp-macro-assembler-re2k.h (working copy) |
@@ -30,6 +30,58 @@ |
namespace v8 { namespace internal { |
+ |
+class RegExpMacroAssemblerRe2k: public RegExpMacroAssembler { |
+ public: |
+ explicit RegExpMacroAssemblerRe2k(Re2kAssembler* assembler) |
+ : assembler_(assembler) { |
+ } |
+ virtual ~RegExpMacroAssemblerRe2k(); |
+ virtual void Bind(Label* label); |
+ virtual void EmitOrLink(Label* label); |
+ virtual void AdvanceCurrentPosition(int by); // Signed cp change. |
+ virtual void PopCurrentPosition(); |
+ virtual void PushCurrentPosition(); |
+ virtual void Backtrack(); |
+ virtual void GoTo(Label* label); |
+ virtual void PushBacktrack(Label* label); |
+ virtual void Succeed(); |
+ virtual void Fail(); |
+ virtual void PopRegister(int register_index); |
+ 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 CheckCharacterClass( |
+ RegExpCharacterClass* cclass, |
+ int cp_offset, |
+ Label* on_failure); |
+ virtual void CheckCharacters( |
+ Vector<const uc16> str, |
+ int cp_offset, |
+ Label* on_failure); |
+ virtual void CheckCurrentPosition( |
+ int register_index, |
+ Label* on_equal); |
+ virtual void CheckBitmap(uc16 start, Label* bitmap, Label* on_zero); |
+ virtual void DispatchHalfNibbleMap(uc16 start, |
+ Label* half_nibble_map, |
+ const Vector<Label*>& destinations); |
+ virtual void DispatchByteMap(uc16 start, |
+ Label* byte_map, |
+ const Vector<Label*>& destinations); |
+ virtual void DispatchHighByteMap(byte start, |
+ Label* byte_map, |
+ const Vector<Label*>& destinations); |
+ virtual void IfRegisterLT(int register_index, int comparand, Label* if_lt); |
+ virtual void IfRegisterGE(int register_index, int comparand, Label* if_ge); |
+ |
+ virtual Re2kImplementation Implementation(); |
+ virtual Handle<Object> GetCode(); |
+ private: |
+ Re2kAssembler* assembler_; |
+}; |
+ |
} } // namespace v8::internal |
#endif // V8_REGEXP_MACRO_ASSEMBLER_RE2K_H_ |