Index: src/arm64/code-stubs-arm64.cc |
diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc |
index 39fec09c4b921f678758fcfdac9693c8d5f2ced3..b243fadce442e6f42dc41c46925be8e523856934 100644 |
--- a/src/arm64/code-stubs-arm64.cc |
+++ b/src/arm64/code-stubs-arm64.cc |
@@ -10,6 +10,7 @@ |
#include "src/code-stubs.h" |
#include "src/codegen.h" |
#include "src/ic/handler-compiler.h" |
+#include "src/ic/ic.h" |
#include "src/isolate.h" |
#include "src/jsregexp.h" |
#include "src/regexp-macro-assembler.h" |
@@ -472,12 +473,12 @@ static void EmitCheckForInternalizedStringsOrObjects(MacroAssembler* masm, |
static void CompareICStub_CheckInputType(MacroAssembler* masm, Register input, |
Register scratch, |
- CompareIC::State expected, |
+ CompareICState::State expected, |
Label* fail) { |
Label ok; |
- if (expected == CompareIC::SMI) { |
+ if (expected == CompareICState::SMI) { |
__ JumpIfNotSmi(input, fail); |
- } else if (expected == CompareIC::NUMBER) { |
+ } else if (expected == CompareICState::NUMBER) { |
__ JumpIfSmi(input, &ok); |
__ CheckMap(input, scratch, Heap::kHeapNumberMapRootIndex, fail, |
DONT_DO_SMI_CHECK); |
@@ -2953,7 +2954,7 @@ void CallIC_ArrayStub::Generate(MacroAssembler* masm) { |
__ TailCallStub(&stub); |
__ bind(&miss); |
- GenerateMiss(masm, IC::kCallIC_Customization_Miss); |
+ GenerateMiss(masm); |
// The slow case, we need this no matter what to complete a call after a miss. |
CallFunctionNoFeedback(masm, |
@@ -3037,7 +3038,7 @@ void CallICStub::Generate(MacroAssembler* masm) { |
// We are here because tracing is on or we are going monomorphic. |
__ bind(&miss); |
- GenerateMiss(masm, IC::kCallIC_Miss); |
+ GenerateMiss(masm); |
// the slow case |
__ bind(&slow_start); |
@@ -3051,7 +3052,7 @@ void CallICStub::Generate(MacroAssembler* masm) { |
} |
-void CallICStub::GenerateMiss(MacroAssembler* masm, IC::UtilityId id) { |
+void CallICStub::GenerateMiss(MacroAssembler* masm) { |
ASM_LOCATION("CallICStub[Miss]"); |
// Get the receiver of the function from the stack; 1 ~ return address. |
@@ -3064,6 +3065,9 @@ void CallICStub::GenerateMiss(MacroAssembler* masm, IC::UtilityId id) { |
__ Push(x4, x1, x2, x3); |
// Call the entry. |
+ IC::UtilityId id = GetICState() == DEFAULT ? IC::kCallIC_Miss |
+ : IC::kCallIC_Customization_Miss; |
+ |
ExternalReference miss = ExternalReference(IC_Utility(id), |
masm->isolate()); |
__ CallExternalReference(miss, 4); |
@@ -3191,7 +3195,7 @@ void StringCharFromCodeGenerator::GenerateSlow( |
void CompareICStub::GenerateSmis(MacroAssembler* masm) { |
// Inputs are in x0 (lhs) and x1 (rhs). |
- DCHECK(state() == CompareIC::SMI); |
+ DCHECK(state() == CompareICState::SMI); |
ASM_LOCATION("CompareICStub[Smis]"); |
Label miss; |
// Bail out (to 'miss') unless both x0 and x1 are smis. |
@@ -3213,7 +3217,7 @@ void CompareICStub::GenerateSmis(MacroAssembler* masm) { |
void CompareICStub::GenerateNumbers(MacroAssembler* masm) { |
- DCHECK(state() == CompareIC::NUMBER); |
+ DCHECK(state() == CompareICState::NUMBER); |
ASM_LOCATION("CompareICStub[HeapNumbers]"); |
Label unordered, maybe_undefined1, maybe_undefined2; |
@@ -3226,10 +3230,10 @@ void CompareICStub::GenerateNumbers(MacroAssembler* masm) { |
FPRegister rhs_d = d0; |
FPRegister lhs_d = d1; |
- if (left() == CompareIC::SMI) { |
+ if (left() == CompareICState::SMI) { |
__ JumpIfNotSmi(lhs, &miss); |
} |
- if (right() == CompareIC::SMI) { |
+ if (right() == CompareICState::SMI) { |
__ JumpIfNotSmi(rhs, &miss); |
} |
@@ -3258,8 +3262,8 @@ void CompareICStub::GenerateNumbers(MacroAssembler* masm) { |
__ Ret(); |
__ Bind(&unordered); |
- CompareICStub stub(isolate(), op(), CompareIC::GENERIC, CompareIC::GENERIC, |
- CompareIC::GENERIC); |
+ CompareICStub stub(isolate(), op(), CompareICState::GENERIC, |
+ CompareICState::GENERIC, CompareICState::GENERIC); |
__ Jump(stub.GetCode(), RelocInfo::CODE_TARGET); |
__ Bind(&maybe_undefined1); |
@@ -3281,7 +3285,7 @@ void CompareICStub::GenerateNumbers(MacroAssembler* masm) { |
void CompareICStub::GenerateInternalizedStrings(MacroAssembler* masm) { |
- DCHECK(state() == CompareIC::INTERNALIZED_STRING); |
+ DCHECK(state() == CompareICState::INTERNALIZED_STRING); |
ASM_LOCATION("CompareICStub[InternalizedStrings]"); |
Label miss; |
@@ -3319,7 +3323,7 @@ void CompareICStub::GenerateInternalizedStrings(MacroAssembler* masm) { |
void CompareICStub::GenerateUniqueNames(MacroAssembler* masm) { |
- DCHECK(state() == CompareIC::UNIQUE_NAME); |
+ DCHECK(state() == CompareICState::UNIQUE_NAME); |
ASM_LOCATION("CompareICStub[UniqueNames]"); |
DCHECK(GetCondition() == eq); |
Label miss; |
@@ -3358,7 +3362,7 @@ void CompareICStub::GenerateUniqueNames(MacroAssembler* masm) { |
void CompareICStub::GenerateStrings(MacroAssembler* masm) { |
- DCHECK(state() == CompareIC::STRING); |
+ DCHECK(state() == CompareICState::STRING); |
ASM_LOCATION("CompareICStub[Strings]"); |
Label miss; |
@@ -3439,7 +3443,7 @@ void CompareICStub::GenerateStrings(MacroAssembler* masm) { |
void CompareICStub::GenerateObjects(MacroAssembler* masm) { |
- DCHECK(state() == CompareIC::OBJECT); |
+ DCHECK(state() == CompareICState::OBJECT); |
ASM_LOCATION("CompareICStub[Objects]"); |
Label miss; |