Index: src/arm/codegen-arm.cc |
diff --git a/src/arm/codegen-arm.cc b/src/arm/codegen-arm.cc |
index 5e8739cd6a5d89ff47e5213f68bb0e150ade3675..3f1791c394efd50fcf7a15b56215182d9b8ae3ac 100644 |
--- a/src/arm/codegen-arm.cc |
+++ b/src/arm/codegen-arm.cc |
@@ -193,27 +193,10 @@ void ElementsTransitionGenerator::GenerateSmiToDouble( |
// Allocate new FixedDoubleArray. |
// Use lr as a temporary register. |
__ mov(lr, Operand(r5, LSL, 2)); |
- __ add(lr, lr, Operand(FixedDoubleArray::kHeaderSize + kPointerSize)); |
- __ AllocateInNewSpace(lr, r6, r7, r9, &gc_required, NO_ALLOCATION_FLAGS); |
+ __ add(lr, lr, Operand(FixedDoubleArray::kHeaderSize)); |
+ __ AllocateInNewSpace(lr, r6, r7, r9, &gc_required, DOUBLE_ALIGNMENT); |
// r6: destination FixedDoubleArray, not tagged as heap object. |
- // Align the array conveniently for doubles. |
- // Store a filler value in the unused memory. |
- Label aligned, aligned_done; |
- __ tst(r6, Operand(kDoubleAlignmentMask)); |
- __ mov(ip, Operand(masm->isolate()->factory()->one_pointer_filler_map())); |
- __ b(eq, &aligned); |
- // Store at the beginning of the allocated memory and update the base pointer. |
- __ str(ip, MemOperand(r6, kPointerSize, PostIndex)); |
- __ b(&aligned_done); |
- |
- __ bind(&aligned); |
- // Store the filler at the end of the allocated memory. |
- __ sub(lr, lr, Operand(kPointerSize)); |
- __ str(ip, MemOperand(r6, lr)); |
- |
- __ bind(&aligned_done); |
- |
// Set destination FixedDoubleArray's length and map. |
__ LoadRoot(r9, Heap::kFixedDoubleArrayMapRootIndex); |
__ str(r5, MemOperand(r6, FixedDoubleArray::kLengthOffset)); |