diff options
Diffstat (limited to 'deps/v8/src/mips/regexp-macro-assembler-mips.cc')
-rw-r--r-- | deps/v8/src/mips/regexp-macro-assembler-mips.cc | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/deps/v8/src/mips/regexp-macro-assembler-mips.cc b/deps/v8/src/mips/regexp-macro-assembler-mips.cc index 9db5c5bed..63e836f22 100644 --- a/deps/v8/src/mips/regexp-macro-assembler-mips.cc +++ b/deps/v8/src/mips/regexp-macro-assembler-mips.cc @@ -377,12 +377,9 @@ void RegExpMacroAssemblerMIPS::CheckNotBackReferenceIgnoreCase( // Isolate. __ li(a3, Operand(ExternalReference::isolate_address())); - { - AllowExternalCallThatCantCauseGC scope(masm_); - ExternalReference function = - ExternalReference::re_case_insensitive_compare_uc16(masm_->isolate()); - __ CallCFunction(function, argument_count); - } + ExternalReference function = + ExternalReference::re_case_insensitive_compare_uc16(masm_->isolate()); + __ CallCFunction(function, argument_count); // Restore regexp engine registers. __ MultiPop(regexp_registers_to_retain); @@ -610,12 +607,6 @@ Handle<HeapObject> RegExpMacroAssemblerMIPS::GetCode(Handle<String> source) { // Entry code: __ bind(&entry_label_); - - // Tell the system that we have a stack frame. Because the type is MANUAL, - // no is generated. - FrameScope scope(masm_, StackFrame::MANUAL); - - // Actually emit code to start a new stack frame. // Push arguments // Save callee-save registers. // Start new stack frame. @@ -1253,14 +1244,13 @@ void RegExpCEntryStub::Generate(MacroAssembler* masm_) { if (stack_alignment < kPointerSize) stack_alignment = kPointerSize; // Stack is already aligned for call, so decrement by alignment // to make room for storing the return address. - __ Subu(sp, sp, Operand(stack_alignment + kCArgsSlotsSize)); - const int return_address_offset = kCArgsSlotsSize; - __ Addu(a0, sp, return_address_offset); - __ sw(ra, MemOperand(a0, 0)); + __ Subu(sp, sp, Operand(stack_alignment)); + __ sw(ra, MemOperand(sp, 0)); + __ mov(a0, sp); __ mov(t9, t1); __ Call(t9); - __ lw(ra, MemOperand(sp, return_address_offset)); - __ Addu(sp, sp, Operand(stack_alignment + kCArgsSlotsSize)); + __ lw(ra, MemOperand(sp, 0)); + __ Addu(sp, sp, Operand(stack_alignment)); __ Jump(ra); } |