Index: runtime/vm/stub_code_arm.cc |
=================================================================== |
--- runtime/vm/stub_code_arm.cc (revision 32709) |
+++ runtime/vm/stub_code_arm.cc (working copy) |
@@ -1110,13 +1110,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) { |
+ __ ldr(R1, Address(SP, 0)); |
+ // R1: instantiated type arguments. |
+ } |
if (FLAG_inline_alloc && Heap::IsAllocatableInNewSpace(instance_size)) { |
- Label slow_case_reload_type_arguments; |
- if (is_cls_parameterized) { |
- __ ldr(R1, Address(SP, 0)); |
- // R1: instantiated type arguments. |
- } |
+ Label slow_case; |
// Allocate the object and update top to point to |
// next object start and initialize the allocated object. |
// R1: instantiated type arguments (if is_cls_parameterized). |
@@ -1131,9 +1130,9 @@ |
__ ldr(IP, Address(IP, 0)); |
__ cmp(R3, ShifterOperand(IP)); |
if (FLAG_use_slow_path) { |
- __ b(&slow_case_with_type_arguments); |
+ __ b(&slow_case); |
} else { |
- __ b(&slow_case_with_type_arguments, CS); // Unsigned higher or equal. |
+ __ b(&slow_case, CS); // Unsigned higher or equal. |
} |
__ str(R3, Address(R5, 0)); |
__ UpdateAllocationStats(cls.id(), R5); |
@@ -1194,12 +1193,8 @@ |
// R0: new object. |
__ Ret(); |
- __ Bind(&slow_case_reload_type_arguments); |
+ __ Bind(&slow_case); |
} |
- if (is_cls_parameterized) { |
- __ ldr(R1, Address(SP, 0)); |
- } |
- __ Bind(&slow_case_with_type_arguments); |
// If is_cls_parameterized: |
// R1: new object type arguments. |
// Create a stub frame as we are pushing some objects on the stack before |