| Index: src/ia32/regexp-macro-assembler-ia32.cc
|
| diff --git a/src/ia32/regexp-macro-assembler-ia32.cc b/src/ia32/regexp-macro-assembler-ia32.cc
|
| index bc8107633e4fd0b363bc34050b6e240629b700e1..39374eed5d3288c36a667d978af5c26368c0f8c3 100644
|
| --- a/src/ia32/regexp-macro-assembler-ia32.cc
|
| +++ b/src/ia32/regexp-macro-assembler-ia32.cc
|
| @@ -337,8 +337,9 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase(
|
| __ add(edx, Operand(esi));
|
| __ mov(Operand(esp, 0 * kPointerSize), edx);
|
|
|
| - Address function_address = FUNCTION_ADDR(&CaseInsensitiveCompareUC16);
|
| - CallCFunction(function_address, argument_count);
|
| + ExternalReference compare =
|
| + ExternalReference::re_case_insensitive_compare_uc16();
|
| + CallCFunction(compare, argument_count);
|
| // Pop original values before reacting on result value.
|
| __ pop(ebx);
|
| __ pop(backtrack_stackpointer());
|
| @@ -745,7 +746,8 @@ Handle<Object> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) {
|
| __ lea(eax, Operand(ebp, kStackHighEnd));
|
| __ mov(Operand(esp, 1 * kPointerSize), eax);
|
| __ mov(Operand(esp, 0 * kPointerSize), backtrack_stackpointer());
|
| - CallCFunction(FUNCTION_ADDR(&GrowStack), num_arguments);
|
| + ExternalReference grow_stack = ExternalReference::re_grow_stack();
|
| + CallCFunction(grow_stack, num_arguments);
|
| // If return NULL, we have failed to grow the stack, and
|
| // must exit with a stack-overflow exception.
|
| __ or_(eax, Operand(eax));
|
| @@ -913,7 +915,9 @@ void RegExpMacroAssemblerIA32::CallCheckStackGuardState(Register scratch) {
|
| // Next address on the stack (will be address of return address).
|
| __ lea(eax, Operand(esp, -kPointerSize));
|
| __ mov(Operand(esp, 0 * kPointerSize), eax);
|
| - CallCFunction(FUNCTION_ADDR(&CheckStackGuardState), num_arguments);
|
| + ExternalReference check_stack_guard =
|
| + ExternalReference::re_check_stack_guard_state();
|
| + CallCFunction(check_stack_guard, num_arguments);
|
| }
|
|
|
|
|
| @@ -996,22 +1000,6 @@ int RegExpMacroAssemblerIA32::CheckStackGuardState(Address* return_address,
|
| }
|
|
|
|
|
| -Address RegExpMacroAssemblerIA32::GrowStack(Address stack_pointer,
|
| - Address* stack_base) {
|
| - size_t size = RegExpStack::stack_capacity();
|
| - Address old_stack_base = RegExpStack::stack_base();
|
| - ASSERT(old_stack_base == *stack_base);
|
| - ASSERT(stack_pointer <= old_stack_base);
|
| - ASSERT(static_cast<size_t>(old_stack_base - stack_pointer) <= size);
|
| - Address new_stack_base = RegExpStack::EnsureCapacity(size * 2);
|
| - if (new_stack_base == NULL) {
|
| - return NULL;
|
| - }
|
| - *stack_base = new_stack_base;
|
| - return new_stack_base - (old_stack_base - stack_pointer);
|
| -}
|
| -
|
| -
|
| Operand RegExpMacroAssemblerIA32::register_location(int register_index) {
|
| ASSERT(register_index < (1<<30));
|
| if (num_registers_ <= register_index) {
|
| @@ -1135,9 +1123,9 @@ void RegExpMacroAssemblerIA32::FrameAlign(int num_arguments, Register scratch) {
|
| }
|
|
|
|
|
| -void RegExpMacroAssemblerIA32::CallCFunction(Address function_address,
|
| +void RegExpMacroAssemblerIA32::CallCFunction(ExternalReference function,
|
| int num_arguments) {
|
| - __ mov(Operand(eax), Immediate(reinterpret_cast<int32_t>(function_address)));
|
| + __ mov(Operand(eax), Immediate(function));
|
| __ call(Operand(eax));
|
| if (OS::ActivationFrameAlignment() != 0) {
|
| __ mov(esp, Operand(esp, num_arguments * kPointerSize));
|
| @@ -1172,6 +1160,10 @@ void RegExpMacroAssemblerIA32::LoadCurrentCharacterUnchecked(int cp_offset,
|
| }
|
|
|
|
|
| +void RegExpCEntryStub::Generate(MacroAssembler* masm_) {
|
| + __ int3(); // Unused on ia32.
|
| +}
|
| +
|
| #undef __
|
|
|
| #endif // V8_NATIVE_REGEXP
|
|
|