| Index: src/arm/macro-assembler-arm.cc
|
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
|
| index b5097b3f86cb8627481a303c5a8e30f184bb686b..ccabe2c67e20af6358a8172c1f1be02b112f10f7 100644
|
| --- a/src/arm/macro-assembler-arm.cc
|
| +++ b/src/arm/macro-assembler-arm.cc
|
| @@ -399,20 +399,6 @@ void MacroAssembler::EnterExitFrame(ExitFrame::Mode mode) {
|
| }
|
|
|
|
|
| -void MacroAssembler::InitializeNewString(Register string,
|
| - Register length,
|
| - Heap::RootListIndex map_index,
|
| - Register scratch1,
|
| - Register scratch2) {
|
| - mov(scratch1, Operand(length, LSL, kSmiTagSize));
|
| - LoadRoot(scratch2, map_index);
|
| - str(scratch1, FieldMemOperand(string, String::kLengthOffset));
|
| - mov(scratch1, Operand(String::kEmptyHashField));
|
| - str(scratch2, FieldMemOperand(string, HeapObject::kMapOffset));
|
| - str(scratch1, FieldMemOperand(string, String::kHashFieldOffset));
|
| -}
|
| -
|
| -
|
| int MacroAssembler::ActivationFrameAlignment() {
|
| #if defined(V8_HOST_ARCH_ARM)
|
| // Running on the real platform. Use the alignment as mandated by the local
|
| @@ -1034,11 +1020,11 @@ void MacroAssembler::AllocateTwoByteString(Register result,
|
| TAG_OBJECT);
|
|
|
| // Set the map, length and hash field.
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| + LoadRoot(scratch1, Heap::kStringMapRootIndex);
|
| + str(length, FieldMemOperand(result, String::kLengthOffset));
|
| + str(scratch1, FieldMemOperand(result, HeapObject::kMapOffset));
|
| + mov(scratch2, Operand(String::kEmptyHashField));
|
| + str(scratch2, FieldMemOperand(result, String::kHashFieldOffset));
|
| }
|
|
|
|
|
| @@ -1068,11 +1054,12 @@ void MacroAssembler::AllocateAsciiString(Register result,
|
| TAG_OBJECT);
|
|
|
| // Set the map, length and hash field.
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kAsciiStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| + LoadRoot(scratch1, Heap::kAsciiStringMapRootIndex);
|
| + mov(scratch1, Operand(Factory::ascii_string_map()));
|
| + str(length, FieldMemOperand(result, String::kLengthOffset));
|
| + str(scratch1, FieldMemOperand(result, HeapObject::kMapOffset));
|
| + mov(scratch2, Operand(String::kEmptyHashField));
|
| + str(scratch2, FieldMemOperand(result, String::kHashFieldOffset));
|
| }
|
|
|
|
|
| @@ -1087,12 +1074,11 @@ void MacroAssembler::AllocateTwoByteConsString(Register result,
|
| scratch2,
|
| gc_required,
|
| TAG_OBJECT);
|
| -
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kConsStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| + LoadRoot(scratch1, Heap::kConsStringMapRootIndex);
|
| + mov(scratch2, Operand(String::kEmptyHashField));
|
| + str(length, FieldMemOperand(result, String::kLengthOffset));
|
| + str(scratch1, FieldMemOperand(result, HeapObject::kMapOffset));
|
| + str(scratch2, FieldMemOperand(result, String::kHashFieldOffset));
|
| }
|
|
|
|
|
| @@ -1107,12 +1093,11 @@ void MacroAssembler::AllocateAsciiConsString(Register result,
|
| scratch2,
|
| gc_required,
|
| TAG_OBJECT);
|
| -
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kConsAsciiStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| + LoadRoot(scratch1, Heap::kConsAsciiStringMapRootIndex);
|
| + mov(scratch2, Operand(String::kEmptyHashField));
|
| + str(length, FieldMemOperand(result, String::kLengthOffset));
|
| + str(scratch1, FieldMemOperand(result, HeapObject::kMapOffset));
|
| + str(scratch2, FieldMemOperand(result, String::kHashFieldOffset));
|
| }
|
|
|
|
|
|
|