| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 5d02613d0f81e2d76329983931baae19c7b2193a..82134b45c1b2b8252b2cc906719b3a06a3a91cc8 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -5614,17 +5614,8 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
|
|
| __ bind(&allocated);
|
| // Copy the content into the newly allocated memory.
|
| - // (Unroll copy loop once for better throughput).
|
| - for (int i = 0; i < size - kPointerSize; i += 2 * kPointerSize) {
|
| - __ ldr(r3, FieldMemOperand(r1, i));
|
| - __ ldr(r2, FieldMemOperand(r1, i + kPointerSize));
|
| - __ str(r3, FieldMemOperand(r0, i));
|
| - __ str(r2, FieldMemOperand(r0, i + kPointerSize));
|
| - }
|
| - if ((size % (2 * kPointerSize)) != 0) {
|
| - __ ldr(r3, FieldMemOperand(r1, size - kPointerSize));
|
| - __ str(r3, FieldMemOperand(r0, size - kPointerSize));
|
| - }
|
| + __ CopyFields(r0, r1, double_scratch0(), double_scratch0().low(),
|
| + size / kPointerSize);
|
| }
|
|
|
|
|
|
|