Index: src/x64/regexp-macro-assembler-x64.h |
diff --git a/src/x64/regexp-macro-assembler-x64.h b/src/x64/regexp-macro-assembler-x64.h |
index a270bc18655e183ca5b14b1822a0a049b52b672d..ab9647704b32b92f6e09daca7892af249c4e5bb2 100644 |
--- a/src/x64/regexp-macro-assembler-x64.h |
+++ b/src/x64/regexp-macro-assembler-x64.h |
@@ -31,6 +31,8 @@ |
namespace v8 { |
namespace internal { |
+#ifdef V8_NATIVE_REGEXP |
+ |
class RegExpMacroAssemblerX64: public NativeRegExpMacroAssembler { |
public: |
RegExpMacroAssemblerX64(Mode mode, int registers_to_save); |
@@ -113,6 +115,13 @@ class RegExpMacroAssemblerX64: public NativeRegExpMacroAssembler { |
int* output, |
bool at_start); |
+ // Called from RegExp if the stack-guard is triggered. |
+ // If the code object is relocated, the return address is fixed before |
+ // returning. |
+ static int CheckStackGuardState(Address* return_address, |
+ Code* re_code, |
+ Address re_frame); |
+ |
private: |
// Offsets from rbp of function parameters and stored registers. |
static const int kFramePointer = 0; |
@@ -181,23 +190,9 @@ class RegExpMacroAssemblerX64: public NativeRegExpMacroAssembler { |
// Check whether we are exceeding the stack limit on the backtrack stack. |
void CheckStackLimit(); |
- // Called from RegExp if the stack-guard is triggered. |
- // If the code object is relocated, the return address is fixed before |
- // returning. |
- static int CheckStackGuardState(Address* return_address, |
- Code* re_code, |
- Address re_frame); |
- |
// Generate a call to CheckStackGuardState. |
void CallCheckStackGuardState(); |
- // Called from RegExp if the backtrack stack limit is hit. |
- // Tries to expand the stack. Returns the new stack-pointer if |
- // successful, and updates the stack_top address, or returns 0 if unable |
- // to grow the stack. |
- // This function must not trigger a garbage collection. |
- static Address GrowStack(Address stack_pointer, Address* stack_top); |
- |
// The rbp-relative location of a regexp register. |
Operand register_location(int register_index); |
@@ -264,7 +259,7 @@ class RegExpMacroAssemblerX64: public NativeRegExpMacroAssembler { |
// by FrameAlign. The called function is not allowed to trigger a garbage |
// collection, since that might move the code and invalidate the return |
// address (unless this is somehow accounted for by the called function). |
- inline void CallCFunction(Address function_address, int num_arguments); |
+ inline void CallCFunction(ExternalReference function, int num_arguments); |
MacroAssembler* masm_; |
@@ -290,6 +285,8 @@ class RegExpMacroAssemblerX64: public NativeRegExpMacroAssembler { |
Label stack_overflow_label_; |
}; |
+#endif // V8_NATIVE_REGEXP |
+ |
}} // namespace v8::internal |
#endif // V8_X64_REGEXP_MACRO_ASSEMBLER_X64_H_ |