| Index: src/ic/arm64/ic-arm64.cc
|
| diff --git a/src/ic/arm64/ic-arm64.cc b/src/ic/arm64/ic-arm64.cc
|
| index d25dd07a1cd6ef0dcf1d8c0684d9ca77968db580..4804a23be7055415a1e629cdfe57ed80879a2c59 100644
|
| --- a/src/ic/arm64/ic-arm64.cc
|
| +++ b/src/ic/arm64/ic-arm64.cc
|
| @@ -640,7 +640,7 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| -static void KeyedStoreGenerateGenericHelper(
|
| +static void KeyedStoreGenerateMegamorphicHelper(
|
| MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow,
|
| KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length,
|
| Register value, Register key, Register receiver, Register receiver_map,
|
| @@ -772,10 +772,9 @@ static void KeyedStoreGenerateGenericHelper(
|
| }
|
|
|
|
|
| -void KeyedStoreIC::GenerateGeneric(
|
| - MacroAssembler* masm, StrictMode strict_mode,
|
| - KeyedStoreStubCacheRequirement handler_requirement) {
|
| - ASM_LOCATION("KeyedStoreIC::GenerateGeneric");
|
| +void KeyedStoreIC::GenerateMegamorphic(MacroAssembler* masm,
|
| + StrictMode strict_mode) {
|
| + ASM_LOCATION("KeyedStoreIC::GenerateMegamorphic");
|
| Label slow;
|
| Label array;
|
| Label fast_object;
|
| @@ -841,12 +840,7 @@ void KeyedStoreIC::GenerateGeneric(
|
| masm->isolate()->stub_cache()->GenerateProbe(masm, flags, false, receiver,
|
| key, x3, x4, x5, x6);
|
| // Cache miss.
|
| - if (handler_requirement == kCallRuntimeOnMissingHandler) {
|
| - __ B(&slow);
|
| - } else {
|
| - DCHECK(handler_requirement == kMissOnMissingHandler);
|
| - __ B(&miss);
|
| - }
|
| + __ B(&miss);
|
|
|
| __ Bind(&extra);
|
| // Extra capacity case: Check if there is extra capacity to
|
| @@ -881,18 +875,16 @@ void KeyedStoreIC::GenerateGeneric(
|
| __ B(eq, &extra); // We can handle the case where we are appending 1 element.
|
| __ B(lo, &slow);
|
|
|
| - KeyedStoreGenerateGenericHelper(
|
| + KeyedStoreGenerateMegamorphicHelper(
|
| masm, &fast_object, &fast_double, &slow, kCheckMap, kDontIncrementLength,
|
| value, key, receiver, receiver_map, elements_map, elements);
|
| - KeyedStoreGenerateGenericHelper(masm, &fast_object_grow, &fast_double_grow,
|
| - &slow, kDontCheckMap, kIncrementLength, value,
|
| - key, receiver, receiver_map, elements_map,
|
| - elements);
|
| -
|
| - if (handler_requirement == kMissOnMissingHandler) {
|
| - __ bind(&miss);
|
| - GenerateMiss(masm);
|
| - }
|
| + KeyedStoreGenerateMegamorphicHelper(masm, &fast_object_grow,
|
| + &fast_double_grow, &slow, kDontCheckMap,
|
| + kIncrementLength, value, key, receiver,
|
| + receiver_map, elements_map, elements);
|
| +
|
| + __ bind(&miss);
|
| + GenerateMiss(masm);
|
| }
|
|
|
|
|
|
|