| Index: src/crankshaft/ia32/lithium-codegen-ia32.cc
|
| diff --git a/src/crankshaft/ia32/lithium-codegen-ia32.cc b/src/crankshaft/ia32/lithium-codegen-ia32.cc
|
| index febab6c42f9a75ce41409433fda0678a98ddb35b..7c9405db0a31e70fdf081ee51a290bf338974464 100644
|
| --- a/src/crankshaft/ia32/lithium-codegen-ia32.cc
|
| +++ b/src/crankshaft/ia32/lithium-codegen-ia32.cc
|
| @@ -5191,58 +5191,6 @@ void LCodeGen::DoToFastProperties(LToFastProperties* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
| - DCHECK(ToRegister(instr->context()).is(esi));
|
| - Label materialized;
|
| - // Registers will be used as follows:
|
| - // ecx = literals array.
|
| - // ebx = regexp literal.
|
| - // eax = regexp literal clone.
|
| - // esi = context.
|
| - int literal_offset =
|
| - LiteralsArray::OffsetOfLiteralAt(instr->hydrogen()->literal_index());
|
| - __ LoadHeapObject(ecx, instr->hydrogen()->literals());
|
| - __ mov(ebx, FieldOperand(ecx, literal_offset));
|
| - __ cmp(ebx, factory()->undefined_value());
|
| - __ j(not_equal, &materialized, Label::kNear);
|
| -
|
| - // Create regexp literal using runtime function
|
| - // Result will be in eax.
|
| - __ push(ecx);
|
| - __ push(Immediate(Smi::FromInt(instr->hydrogen()->literal_index())));
|
| - __ push(Immediate(instr->hydrogen()->pattern()));
|
| - __ push(Immediate(instr->hydrogen()->flags()));
|
| - CallRuntime(Runtime::kMaterializeRegExpLiteral, 4, instr);
|
| - __ mov(ebx, eax);
|
| -
|
| - __ bind(&materialized);
|
| - int size = JSRegExp::kSize + JSRegExp::kInObjectFieldCount * kPointerSize;
|
| - Label allocated, runtime_allocate;
|
| - __ Allocate(size, eax, ecx, edx, &runtime_allocate, TAG_OBJECT);
|
| - __ jmp(&allocated, Label::kNear);
|
| -
|
| - __ bind(&runtime_allocate);
|
| - __ push(ebx);
|
| - __ push(Immediate(Smi::FromInt(size)));
|
| - CallRuntime(Runtime::kAllocateInNewSpace, 1, instr);
|
| - __ pop(ebx);
|
| -
|
| - __ 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) {
|
| - __ mov(edx, FieldOperand(ebx, i));
|
| - __ mov(ecx, FieldOperand(ebx, i + kPointerSize));
|
| - __ mov(FieldOperand(eax, i), edx);
|
| - __ mov(FieldOperand(eax, i + kPointerSize), ecx);
|
| - }
|
| - if ((size % (2 * kPointerSize)) != 0) {
|
| - __ mov(edx, FieldOperand(ebx, size - kPointerSize));
|
| - __ mov(FieldOperand(eax, size - kPointerSize), edx);
|
| - }
|
| -}
|
| -
|
| -
|
| void LCodeGen::DoTypeof(LTypeof* instr) {
|
| DCHECK(ToRegister(instr->context()).is(esi));
|
| DCHECK(ToRegister(instr->value()).is(ebx));
|
|
|