Index: src/crankshaft/mips64/lithium-codegen-mips64.cc |
diff --git a/src/crankshaft/mips64/lithium-codegen-mips64.cc b/src/crankshaft/mips64/lithium-codegen-mips64.cc |
index 0aa6ee558c65d44459acd35d6f38e5b580d68447..d17f4530e1928a44538d381ff0d2af196ad63741 100644 |
--- a/src/crankshaft/mips64/lithium-codegen-mips64.cc |
+++ b/src/crankshaft/mips64/lithium-codegen-mips64.cc |
@@ -5509,59 +5509,6 @@ void LCodeGen::DoToFastProperties(LToFastProperties* instr) { |
} |
-void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) { |
- DCHECK(ToRegister(instr->context()).is(cp)); |
- Label materialized; |
- // Registers will be used as follows: |
- // a7 = literals array. |
- // a1 = regexp literal. |
- // a0 = regexp literal clone. |
- // a2 and a4-a6 are used as temporaries. |
- int literal_offset = |
- LiteralsArray::OffsetOfLiteralAt(instr->hydrogen()->literal_index()); |
- __ li(a7, instr->hydrogen()->literals()); |
- __ ld(a1, FieldMemOperand(a7, literal_offset)); |
- __ LoadRoot(at, Heap::kUndefinedValueRootIndex); |
- __ Branch(&materialized, ne, a1, Operand(at)); |
- |
- // Create regexp literal using runtime function |
- // Result will be in v0. |
- __ li(a6, Operand(Smi::FromInt(instr->hydrogen()->literal_index()))); |
- __ li(a5, Operand(instr->hydrogen()->pattern())); |
- __ li(a4, Operand(instr->hydrogen()->flags())); |
- __ Push(a7, a6, a5, a4); |
- CallRuntime(Runtime::kMaterializeRegExpLiteral, 4, instr); |
- __ mov(a1, v0); |
- |
- __ bind(&materialized); |
- int size = JSRegExp::kSize + JSRegExp::kInObjectFieldCount * kPointerSize; |
- Label allocated, runtime_allocate; |
- |
- __ Allocate(size, v0, a2, a3, &runtime_allocate, TAG_OBJECT); |
- __ jmp(&allocated); |
- |
- __ bind(&runtime_allocate); |
- __ li(a0, Operand(Smi::FromInt(size))); |
- __ Push(a1, a0); |
- CallRuntime(Runtime::kAllocateInNewSpace, 1, instr); |
- __ pop(a1); |
- |
- __ 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) { |
- __ ld(a3, FieldMemOperand(a1, i)); |
- __ ld(a2, FieldMemOperand(a1, i + kPointerSize)); |
- __ sd(a3, FieldMemOperand(v0, i)); |
- __ sd(a2, FieldMemOperand(v0, i + kPointerSize)); |
- } |
- if ((size % (2 * kPointerSize)) != 0) { |
- __ ld(a3, FieldMemOperand(a1, size - kPointerSize)); |
- __ sd(a3, FieldMemOperand(v0, size - kPointerSize)); |
- } |
-} |
- |
- |
void LCodeGen::DoTypeof(LTypeof* instr) { |
DCHECK(ToRegister(instr->value()).is(a3)); |
DCHECK(ToRegister(instr->result()).is(v0)); |