Index: src/ia32/regexp-macro-assembler-ia32.h |
diff --git a/src/ia32/regexp-macro-assembler-ia32.h b/src/ia32/regexp-macro-assembler-ia32.h |
index c3d9155700d44c7acfa6f090c3d8b64b1e69431f..e8b5b2e20ca69f2365ff2962a529251430882551 100644 |
--- a/src/ia32/regexp-macro-assembler-ia32.h |
+++ b/src/ia32/regexp-macro-assembler-ia32.h |
@@ -31,21 +31,8 @@ |
namespace v8 { |
namespace internal { |
-class RegExpMacroAssemblerIA32: public RegExpMacroAssembler { |
+class RegExpMacroAssemblerIA32: public NativeRegExpMacroAssembler { |
public: |
- // Type of input string to generate code for. |
- enum Mode { ASCII = 1, UC16 = 2 }; |
- // Result of calling the generated RegExp code: |
- // RETRY: Something significant changed during execution, and the matching |
- // should be retried from scratch. |
- // EXCEPTION: Something failed during execution. If no exception has been |
- // thrown, it's an internal out-of-memory, and the caller should |
- // throw the exception. |
- // FAILURE: Matching failed. |
- // SUCCESS: Matching succeeded, and the output array has been filled with |
- // capture positions. |
- enum Result { RETRY = -2, EXCEPTION = -1, FAILURE = 0, SUCCESS = 1 }; |
- |
RegExpMacroAssemblerIA32(Mode mode, int registers_to_save); |
virtual ~RegExpMacroAssemblerIA32(); |
virtual int stack_limit_slack(); |
@@ -54,7 +41,6 @@ class RegExpMacroAssemblerIA32: public RegExpMacroAssembler { |
virtual void Backtrack(); |
virtual void Bind(Label* label); |
virtual void CheckAtStart(Label* on_at_start); |
- virtual void CheckBitmap(uc16 start, Label* bitmap, Label* on_zero); |
virtual void CheckCharacter(uint32_t c, Label* on_equal); |
virtual void CheckCharacterAfterAnd(uint32_t c, |
uint32_t mask, |
@@ -88,16 +74,6 @@ class RegExpMacroAssemblerIA32: public RegExpMacroAssembler { |
int cp_offset, |
bool check_offset, |
Label* on_no_match); |
- virtual void DispatchByteMap(uc16 start, |
- Label* byte_map, |
- const Vector<Label*>& destinations); |
- virtual void DispatchHalfNibbleMap(uc16 start, |
- Label* half_nibble_map, |
- const Vector<Label*>& destinations); |
- virtual void DispatchHighByteMap(byte start, |
- Label* byte_map, |
- const Vector<Label*>& destinations); |
- virtual void EmitOrLink(Label* label); |
virtual void Fail(); |
virtual Handle<Object> GetCode(Handle<String> source); |
virtual void GoTo(Label* label); |
@@ -123,20 +99,6 @@ class RegExpMacroAssemblerIA32: public RegExpMacroAssembler { |
virtual void ClearRegisters(int reg_from, int reg_to); |
virtual void WriteStackPointerToRegister(int reg); |
- static Result Match(Handle<Code> regexp, |
- Handle<String> subject, |
- int* offsets_vector, |
- int offsets_vector_length, |
- int previous_index); |
- |
- static Result Execute(Code* code, |
- String* input, |
- int start_offset, |
- const byte* input_start, |
- const byte* input_end, |
- int* output, |
- bool at_start); |
- |
private: |
// Offsets from ebp of function parameters and stored registers. |
static const int kFramePointer = 0; |
@@ -163,16 +125,6 @@ class RegExpMacroAssemblerIA32: public RegExpMacroAssembler { |
// Initial size of code buffer. |
static const size_t kRegExpCodeSize = 1024; |
- // Initial size of constant buffers allocated during compilation. |
- static const int kRegExpConstantsSize = 256; |
- |
- static const byte* StringCharacterPosition(String* subject, int start_index); |
- |
- // Compares two-byte strings case insensitively. |
- // Called from generated RegExp code. |
- static int CaseInsensitiveCompareUC16(Address byte_offset1, |
- Address byte_offset2, |
- size_t byte_length); |
// Load a number of characters at the given offset from the |
// current position, into the current-character register. |
@@ -218,11 +170,6 @@ class RegExpMacroAssemblerIA32: public RegExpMacroAssembler { |
// is NULL, in which case it is a conditional Backtrack. |
void BranchOrBacktrack(Condition condition, Label* to, Hint hint = no_hint); |
- // Load the address of a "constant buffer" (a slice of a byte array) |
- // into a register. The address is computed from the ByteArray* address |
- // and an offset. Uses no extra registers. |
- void LoadConstantBufferAddress(Register reg, ArraySlice* buffer); |
- |
// Call and return internally in the generated code in a way that |
// is GC-safe (i.e., doesn't leave absolute code addresses on the stack) |
inline void SafeCall(Label* to); |
@@ -258,10 +205,6 @@ class RegExpMacroAssemblerIA32: public RegExpMacroAssembler { |
MacroAssembler* masm_; |
- // Constant buffer provider. Allocates external storage for storing |
- // constants. |
- ByteArrayProvider constants_; |
- |
// Which mode to generate code for (ASCII or UC16). |
Mode mode_; |