From 253edf246f3e946d78c5ad30c811cb9f9d26a65a Mon Sep 17 00:00:00 2001 From: "jochen@chromium.org" Date: Fri, 31 Jan 2014 14:17:02 +0000 Subject: [PATCH] Remove IsRegExpEquivalent. It's not used anywhere. BUG=none R=ulan@chromium.org LOG=n Review URL: https://codereview.chromium.org/141563013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm/full-codegen-arm.cc | 41 ----------------------------------------- src/hydrogen.cc | 6 ------ src/ia32/full-codegen-ia32.cc | 38 -------------------------------------- src/mips/full-codegen-mips.cc | 37 ------------------------------------- src/objects.h | 2 -- src/runtime.h | 1 - src/x64/full-codegen-x64.cc | 39 --------------------------------------- 7 files changed, 164 deletions(-) diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc index 6fe05ff..051b23f 100644 --- a/src/arm/full-codegen-arm.cc +++ b/src/arm/full-codegen-arm.cc @@ -3814,47 +3814,6 @@ void FullCodeGenerator::EmitGetFromCache(CallRuntime* expr) { } -void FullCodeGenerator::EmitIsRegExpEquivalent(CallRuntime* expr) { - ZoneList* args = expr->arguments(); - ASSERT_EQ(2, args->length()); - - Register right = r0; - Register left = r1; - Register tmp = r2; - Register tmp2 = r3; - - VisitForStackValue(args->at(0)); - VisitForAccumulatorValue(args->at(1)); - __ pop(left); - - Label done, fail, ok; - __ cmp(left, Operand(right)); - __ b(eq, &ok); - // Fail if either is a non-HeapObject. - __ and_(tmp, left, Operand(right)); - __ JumpIfSmi(tmp, &fail); - __ ldr(tmp, FieldMemOperand(left, HeapObject::kMapOffset)); - __ ldrb(tmp2, FieldMemOperand(tmp, Map::kInstanceTypeOffset)); - __ cmp(tmp2, Operand(JS_REGEXP_TYPE)); - __ b(ne, &fail); - __ ldr(tmp2, FieldMemOperand(right, HeapObject::kMapOffset)); - __ cmp(tmp, Operand(tmp2)); - __ b(ne, &fail); - __ ldr(tmp, FieldMemOperand(left, JSRegExp::kDataOffset)); - __ ldr(tmp2, FieldMemOperand(right, JSRegExp::kDataOffset)); - __ cmp(tmp, tmp2); - __ b(eq, &ok); - __ bind(&fail); - __ LoadRoot(r0, Heap::kFalseValueRootIndex); - __ jmp(&done); - __ bind(&ok); - __ LoadRoot(r0, Heap::kTrueValueRootIndex); - __ bind(&done); - - context()->Plug(r0); -} - - void FullCodeGenerator::EmitHasCachedArrayIndex(CallRuntime* expr) { ZoneList* args = expr->arguments(); VisitForAccumulatorValue(args->at(0)); diff --git a/src/hydrogen.cc b/src/hydrogen.cc index a4c0df2..537ec14 100644 --- a/src/hydrogen.cc +++ b/src/hydrogen.cc @@ -10813,12 +10813,6 @@ void HOptimizedGraphBuilder::GenerateMathSqrt(CallRuntime* call) { } -// Check whether two RegExps are equivalent -void HOptimizedGraphBuilder::GenerateIsRegExpEquivalent(CallRuntime* call) { - return Bailout(kInlinedRuntimeFunctionIsRegExpEquivalent); -} - - void HOptimizedGraphBuilder::GenerateGetCachedArrayIndex(CallRuntime* call) { ASSERT(call->arguments()->length() == 1); CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc index ec6ad32..b82f4d7 100644 --- a/src/ia32/full-codegen-ia32.cc +++ b/src/ia32/full-codegen-ia32.cc @@ -3777,44 +3777,6 @@ void FullCodeGenerator::EmitGetFromCache(CallRuntime* expr) { } -void FullCodeGenerator::EmitIsRegExpEquivalent(CallRuntime* expr) { - ZoneList* args = expr->arguments(); - ASSERT_EQ(2, args->length()); - - Register right = eax; - Register left = ebx; - Register tmp = ecx; - - VisitForStackValue(args->at(0)); - VisitForAccumulatorValue(args->at(1)); - __ pop(left); - - Label done, fail, ok; - __ cmp(left, right); - __ j(equal, &ok); - // Fail if either is a non-HeapObject. - __ mov(tmp, left); - __ and_(tmp, right); - __ JumpIfSmi(tmp, &fail); - __ mov(tmp, FieldOperand(left, HeapObject::kMapOffset)); - __ CmpInstanceType(tmp, JS_REGEXP_TYPE); - __ j(not_equal, &fail); - __ cmp(tmp, FieldOperand(right, HeapObject::kMapOffset)); - __ j(not_equal, &fail); - __ mov(tmp, FieldOperand(left, JSRegExp::kDataOffset)); - __ cmp(tmp, FieldOperand(right, JSRegExp::kDataOffset)); - __ j(equal, &ok); - __ bind(&fail); - __ mov(eax, Immediate(isolate()->factory()->false_value())); - __ jmp(&done); - __ bind(&ok); - __ mov(eax, Immediate(isolate()->factory()->true_value())); - __ bind(&done); - - context()->Plug(eax); -} - - void FullCodeGenerator::EmitHasCachedArrayIndex(CallRuntime* expr) { ZoneList* args = expr->arguments(); ASSERT(args->length() == 1); diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc index 85b2db8..57d3171 100644 --- a/src/mips/full-codegen-mips.cc +++ b/src/mips/full-codegen-mips.cc @@ -3877,43 +3877,6 @@ void FullCodeGenerator::EmitGetFromCache(CallRuntime* expr) { } -void FullCodeGenerator::EmitIsRegExpEquivalent(CallRuntime* expr) { - ZoneList* args = expr->arguments(); - ASSERT_EQ(2, args->length()); - - Register right = v0; - Register left = a1; - Register tmp = a2; - Register tmp2 = a3; - - VisitForStackValue(args->at(0)); - VisitForAccumulatorValue(args->at(1)); // Result (right) in v0. - __ pop(left); - - Label done, fail, ok; - __ Branch(&ok, eq, left, Operand(right)); - // Fail if either is a non-HeapObject. - __ And(tmp, left, Operand(right)); - __ JumpIfSmi(tmp, &fail); - __ lw(tmp, FieldMemOperand(left, HeapObject::kMapOffset)); - __ lbu(tmp2, FieldMemOperand(tmp, Map::kInstanceTypeOffset)); - __ Branch(&fail, ne, tmp2, Operand(JS_REGEXP_TYPE)); - __ lw(tmp2, FieldMemOperand(right, HeapObject::kMapOffset)); - __ Branch(&fail, ne, tmp, Operand(tmp2)); - __ lw(tmp, FieldMemOperand(left, JSRegExp::kDataOffset)); - __ lw(tmp2, FieldMemOperand(right, JSRegExp::kDataOffset)); - __ Branch(&ok, eq, tmp, Operand(tmp2)); - __ bind(&fail); - __ LoadRoot(v0, Heap::kFalseValueRootIndex); - __ jmp(&done); - __ bind(&ok); - __ LoadRoot(v0, Heap::kTrueValueRootIndex); - __ bind(&done); - - context()->Plug(v0); -} - - void FullCodeGenerator::EmitHasCachedArrayIndex(CallRuntime* expr) { ZoneList* args = expr->arguments(); VisitForAccumulatorValue(args->at(0)); diff --git a/src/objects.h b/src/objects.h index 08aba3e..f83d5bb 100644 --- a/src/objects.h +++ b/src/objects.h @@ -1192,8 +1192,6 @@ class MaybeObject BASE_EMBEDDED { "Inlined runtime function: GetFromCache") \ V(kInlinedRuntimeFunctionIsNonNegativeSmi, \ "Inlined runtime function: IsNonNegativeSmi") \ - V(kInlinedRuntimeFunctionIsRegExpEquivalent, \ - "Inlined runtime function: IsRegExpEquivalent") \ V(kInlinedRuntimeFunctionIsStringWrapperSafeForDefaultValueOf, \ "Inlined runtime function: IsStringWrapperSafeForDefaultValueOf") \ V(kInliningBailedOut, "Inlining bailed out") \ diff --git a/src/runtime.h b/src/runtime.h index 354244d..61c019c 100644 --- a/src/runtime.h +++ b/src/runtime.h @@ -634,7 +634,6 @@ namespace internal { F(MathSqrt, 1, 1) \ F(MathLog, 1, 1) \ F(IsMinusZero, 1, 1) \ - F(IsRegExpEquivalent, 2, 1) \ F(HasCachedArrayIndex, 1, 1) \ F(GetCachedArrayIndex, 1, 1) \ F(FastAsciiArrayJoin, 2, 1) \ diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc index b77231c..0673d94 100644 --- a/src/x64/full-codegen-x64.cc +++ b/src/x64/full-codegen-x64.cc @@ -3758,45 +3758,6 @@ void FullCodeGenerator::EmitGetFromCache(CallRuntime* expr) { } -void FullCodeGenerator::EmitIsRegExpEquivalent(CallRuntime* expr) { - ZoneList* args = expr->arguments(); - ASSERT_EQ(2, args->length()); - - Register right = rax; - Register left = rbx; - Register tmp = rcx; - - VisitForStackValue(args->at(0)); - VisitForAccumulatorValue(args->at(1)); - __ pop(left); - - Label done, fail, ok; - __ cmpq(left, right); - __ j(equal, &ok, Label::kNear); - // Fail if either is a non-HeapObject. - Condition either_smi = masm()->CheckEitherSmi(left, right, tmp); - __ j(either_smi, &fail, Label::kNear); - __ j(zero, &fail, Label::kNear); - __ movp(tmp, FieldOperand(left, HeapObject::kMapOffset)); - __ cmpb(FieldOperand(tmp, Map::kInstanceTypeOffset), - Immediate(JS_REGEXP_TYPE)); - __ j(not_equal, &fail, Label::kNear); - __ cmpq(tmp, FieldOperand(right, HeapObject::kMapOffset)); - __ j(not_equal, &fail, Label::kNear); - __ movp(tmp, FieldOperand(left, JSRegExp::kDataOffset)); - __ cmpq(tmp, FieldOperand(right, JSRegExp::kDataOffset)); - __ j(equal, &ok, Label::kNear); - __ bind(&fail); - __ Move(rax, isolate()->factory()->false_value()); - __ jmp(&done, Label::kNear); - __ bind(&ok); - __ Move(rax, isolate()->factory()->true_value()); - __ bind(&done); - - context()->Plug(rax); -} - - void FullCodeGenerator::EmitHasCachedArrayIndex(CallRuntime* expr) { ZoneList* args = expr->arguments(); ASSERT(args->length() == 1); -- 2.7.4