Index: runtime/vm/stub_code_mips.cc |
=================================================================== |
--- runtime/vm/stub_code_mips.cc (revision 32754) |
+++ runtime/vm/stub_code_mips.cc (working copy) |
@@ -1301,13 +1301,12 @@ |
const int kInlineInstanceSize = 12; |
const intptr_t instance_size = cls.instance_size(); |
ASSERT(instance_size > 0); |
- Label slow_case_with_type_arguments; |
+ if (is_cls_parameterized) { |
+ __ lw(T1, Address(SP, 0 * kWordSize)); |
+ // T1: type arguments. |
+ } |
if (FLAG_inline_alloc && Heap::IsAllocatableInNewSpace(instance_size)) { |
- Label slow_case_reload_type_arguments; |
- if (is_cls_parameterized) { |
- __ lw(T1, Address(SP, 0 * kWordSize)); |
- // T1: type arguments. |
- } |
+ Label slow_case; |
// Allocate the object and update top to point to |
// next object start and initialize the allocated object. |
// T1: instantiated type arguments (if is_cls_parameterized). |
@@ -1322,10 +1321,9 @@ |
__ LoadImmediate(TMP, heap->EndAddress()); |
__ lw(CMPRES1, Address(TMP)); |
if (FLAG_use_slow_path) { |
- __ b(&slow_case_with_type_arguments); |
+ __ b(&slow_case); |
} else { |
- __ BranchUnsignedGreaterEqual(T3, CMPRES1, |
- &slow_case_with_type_arguments); |
+ __ BranchUnsignedGreaterEqual(T3, CMPRES1, &slow_case); |
} |
// Successfully allocated the object(s), now update top to point to |
// next object start and initialize the object. |
@@ -1383,12 +1381,8 @@ |
__ Ret(); |
__ delay_slot()->addiu(V0, T2, Immediate(kHeapObjectTag)); |
- __ Bind(&slow_case_reload_type_arguments); |
+ __ Bind(&slow_case); |
} |
- if (is_cls_parameterized) { |
- __ lw(T1, Address(SP, 0 * kWordSize)); |
- } |
- __ Bind(&slow_case_with_type_arguments); |
// If is_cls_parameterized: |
// T1: new object type arguments (instantiated or not). |
// Create a stub frame as we are pushing some objects on the stack before |