| Index: src/crankshaft/x64/lithium-codegen-x64.cc
|
| diff --git a/src/crankshaft/x64/lithium-codegen-x64.cc b/src/crankshaft/x64/lithium-codegen-x64.cc
|
| index 62648f25101ceb7d1d0ad3d8a0b7029e819a5470..4e77aa1e14783099c241ac01130c4288d7392924 100644
|
| --- a/src/crankshaft/x64/lithium-codegen-x64.cc
|
| +++ b/src/crankshaft/x64/lithium-codegen-x64.cc
|
| @@ -5377,57 +5377,6 @@ void LCodeGen::DoToFastProperties(LToFastProperties* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
| - DCHECK(ToRegister(instr->context()).is(rsi));
|
| - Label materialized;
|
| - // Registers will be used as follows:
|
| - // rcx = literals array.
|
| - // rbx = regexp literal.
|
| - // rax = regexp literal clone.
|
| - int literal_offset =
|
| - LiteralsArray::OffsetOfLiteralAt(instr->hydrogen()->literal_index());
|
| - __ Move(rcx, instr->hydrogen()->literals());
|
| - __ movp(rbx, FieldOperand(rcx, literal_offset));
|
| - __ CompareRoot(rbx, Heap::kUndefinedValueRootIndex);
|
| - __ j(not_equal, &materialized, Label::kNear);
|
| -
|
| - // Create regexp literal using runtime function
|
| - // Result will be in rax.
|
| - __ Push(rcx);
|
| - __ Push(Smi::FromInt(instr->hydrogen()->literal_index()));
|
| - __ Push(instr->hydrogen()->pattern());
|
| - __ Push(instr->hydrogen()->flags());
|
| - CallRuntime(Runtime::kMaterializeRegExpLiteral, 4, instr);
|
| - __ movp(rbx, rax);
|
| -
|
| - __ bind(&materialized);
|
| - int size = JSRegExp::kSize + JSRegExp::kInObjectFieldCount * kPointerSize;
|
| - Label allocated, runtime_allocate;
|
| - __ Allocate(size, rax, rcx, rdx, &runtime_allocate, TAG_OBJECT);
|
| - __ jmp(&allocated, Label::kNear);
|
| -
|
| - __ bind(&runtime_allocate);
|
| - __ Push(rbx);
|
| - __ Push(Smi::FromInt(size));
|
| - CallRuntime(Runtime::kAllocateInNewSpace, 1, instr);
|
| - __ Pop(rbx);
|
| -
|
| - __ 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) {
|
| - __ movp(rdx, FieldOperand(rbx, i));
|
| - __ movp(rcx, FieldOperand(rbx, i + kPointerSize));
|
| - __ movp(FieldOperand(rax, i), rdx);
|
| - __ movp(FieldOperand(rax, i + kPointerSize), rcx);
|
| - }
|
| - if ((size % (2 * kPointerSize)) != 0) {
|
| - __ movp(rdx, FieldOperand(rbx, size - kPointerSize));
|
| - __ movp(FieldOperand(rax, size - kPointerSize), rdx);
|
| - }
|
| -}
|
| -
|
| -
|
| void LCodeGen::DoTypeof(LTypeof* instr) {
|
| DCHECK(ToRegister(instr->context()).is(rsi));
|
| DCHECK(ToRegister(instr->value()).is(rbx));
|
|
|