| Index: src/mips/code-stubs-mips.cc
|
| ===================================================================
|
| --- src/mips/code-stubs-mips.cc (revision 11074)
|
| +++ src/mips/code-stubs-mips.cc (working copy)
|
| @@ -3943,11 +3943,13 @@
|
|
|
| // Special handling of out of memory exceptions.
|
| Failure* out_of_memory = Failure::OutOfMemoryException();
|
| - __ Branch(throw_out_of_memory_exception, eq,
|
| - v0, Operand(reinterpret_cast<int32_t>(out_of_memory)));
|
| + __ Branch(throw_out_of_memory_exception,
|
| + eq,
|
| + v0,
|
| + Operand(reinterpret_cast<int32_t>(out_of_memory)));
|
|
|
| // Retrieve the pending exception and clear the variable.
|
| - __ li(a3, Operand(isolate->factory()->the_hole_value()));
|
| + __ LoadRoot(a3, Heap::kTheHoleValueRootIndex);
|
| __ li(t0, Operand(ExternalReference(Isolate::kPendingExceptionAddress,
|
| isolate)));
|
| __ lw(v0, MemOperand(t0));
|
| @@ -3955,8 +3957,8 @@
|
|
|
| // Special handling of termination exceptions which are uncatchable
|
| // by javascript code.
|
| - __ Branch(throw_termination_exception, eq,
|
| - v0, Operand(isolate->factory()->termination_exception()));
|
| + __ LoadRoot(t0, Heap::kTerminationExceptionRootIndex);
|
| + __ Branch(throw_termination_exception, eq, v0, Operand(t0));
|
|
|
| // Handle normal exception.
|
| __ jmp(throw_normal_exception);
|
| @@ -4083,6 +4085,7 @@
|
| offset_to_argv += kNumCalleeSavedFPU * kDoubleSize;
|
| }
|
|
|
| + __ InitializeRootRegister();
|
| __ lw(s0, MemOperand(sp, offset_to_argv + kCArgsSlotsSize));
|
|
|
| // We build an EntryFrame.
|
| @@ -4155,7 +4158,7 @@
|
| // saved values before returning a failure to C.
|
|
|
| // Clear any pending exceptions.
|
| - __ li(t1, Operand(isolate->factory()->the_hole_value()));
|
| + __ LoadRoot(t1, Heap::kTheHoleValueRootIndex);
|
| __ li(t0, Operand(ExternalReference(Isolate::kPendingExceptionAddress,
|
| isolate)));
|
| __ sw(t1, MemOperand(t0));
|
| @@ -4199,7 +4202,9 @@
|
| // Check if the current stack frame is marked as the outermost JS frame.
|
| Label non_outermost_js_2;
|
| __ pop(t1);
|
| - __ Branch(&non_outermost_js_2, ne, t1,
|
| + __ Branch(&non_outermost_js_2,
|
| + ne,
|
| + t1,
|
| Operand(Smi::FromInt(StackFrame::OUTERMOST_JSENTRY_FRAME)));
|
| __ li(t1, Operand(ExternalReference(js_entry_sp)));
|
| __ sw(zero_reg, MemOperand(t1));
|
| @@ -4364,8 +4369,10 @@
|
| __ Branch(&slow, ne, scratch, Operand(JS_FUNCTION_TYPE));
|
|
|
| // Null is not instance of anything.
|
| - __ Branch(&object_not_null, ne, scratch,
|
| - Operand(masm->isolate()->factory()->null_value()));
|
| + __ Branch(&object_not_null,
|
| + ne,
|
| + scratch,
|
| + Operand(masm->isolate()->factory()->null_value()));
|
| __ li(v0, Operand(Smi::FromInt(1)));
|
| __ DropAndRet(HasArgsInRegisters() ? 0 : 2);
|
|
|
| @@ -4470,8 +4477,10 @@
|
| Label runtime;
|
| __ lw(a3, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
|
| __ lw(a2, MemOperand(a3, StandardFrameConstants::kContextOffset));
|
| - __ Branch(&runtime, ne,
|
| - a2, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
|
| + __ Branch(&runtime,
|
| + ne,
|
| + a2,
|
| + Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
|
|
|
| // Patch the arguments.length and the parameters pointer in the current frame.
|
| __ lw(a2, MemOperand(a3, ArgumentsAdaptorFrameConstants::kLengthOffset));
|
| @@ -4503,7 +4512,9 @@
|
| Label adaptor_frame, try_allocate;
|
| __ lw(a3, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
|
| __ lw(a2, MemOperand(a3, StandardFrameConstants::kContextOffset));
|
| - __ Branch(&adaptor_frame, eq, a2,
|
| + __ Branch(&adaptor_frame,
|
| + eq,
|
| + a2,
|
| Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
|
|
|
| // No adaptor, parameter count = argument count.
|
| @@ -5116,14 +5127,11 @@
|
| // Check the result.
|
|
|
| Label success;
|
| - __ Branch(&success, eq,
|
| - v0, Operand(NativeRegExpMacroAssembler::SUCCESS));
|
| + __ Branch(&success, eq, v0, Operand(NativeRegExpMacroAssembler::SUCCESS));
|
| Label failure;
|
| - __ Branch(&failure, eq,
|
| - v0, Operand(NativeRegExpMacroAssembler::FAILURE));
|
| + __ Branch(&failure, eq, v0, Operand(NativeRegExpMacroAssembler::FAILURE));
|
| // If not exception it can only be retry. Handle that in the runtime system.
|
| - __ Branch(&runtime, ne,
|
| - v0, Operand(NativeRegExpMacroAssembler::EXCEPTION));
|
| + __ Branch(&runtime, ne, v0, Operand(NativeRegExpMacroAssembler::EXCEPTION));
|
| // Result must now be exception. If there is no pending exception already a
|
| // stack overflow (on the backtrack stack) was detected in RegExp code but
|
| // haven't created the exception yet. Handle that in the runtime system.
|
| @@ -5879,10 +5887,8 @@
|
| __ Branch(&tmp, Ugreater, scratch, Operand(static_cast<int>('9' - '0')));
|
| __ Or(c1, c1, scratch1);
|
| __ bind(&tmp);
|
| - __ Branch(not_found,
|
| - Uless_equal,
|
| - scratch,
|
| - Operand(static_cast<int>('9' - '0')));
|
| + __ Branch(
|
| + not_found, Uless_equal, scratch, Operand(static_cast<int>('9' - '0')));
|
|
|
| __ bind(¬_array_index);
|
| // Calculate the two character string hash.
|
| @@ -6553,8 +6559,7 @@
|
|
|
| __ bind(&longer_than_two);
|
| // Check if resulting string will be flat.
|
| - __ Branch(&string_add_flat_result, lt, t2,
|
| - Operand(ConsString::kMinLength));
|
| + __ Branch(&string_add_flat_result, lt, t2, Operand(ConsString::kMinLength));
|
| // Handle exceptionally long strings in the runtime system.
|
| STATIC_ASSERT((String::kMaxLength & 0x80000000) == 0);
|
| ASSERT(IsPowerOf2(String::kMaxLength + 1));
|
| @@ -7080,8 +7085,10 @@
|
| // Push return address (accessible to GC through exit frame pc).
|
| // This spot for ra was reserved in EnterExitFrame.
|
| masm->sw(ra, MemOperand(sp, kCArgsSlotsSize));
|
| - masm->li(ra, Operand(reinterpret_cast<intptr_t>(GetCode().location()),
|
| - RelocInfo::CODE_TARGET), true);
|
| + masm->li(ra,
|
| + Operand(reinterpret_cast<intptr_t>(GetCode().location()),
|
| + RelocInfo::CODE_TARGET),
|
| + CONSTANT_SIZE);
|
| // Call the function.
|
| masm->Jump(t9);
|
| // Make sure the stored 'ra' points to this position.
|
|
|