Index: src/arm64/ic-arm64.cc |
diff --git a/src/arm64/ic-arm64.cc b/src/arm64/ic-arm64.cc |
index d835d0fa5e25f0bc25a5a29d14d5d5535a0f9a3a..842b3e75dcbf65d805bbbe3f6af2086e5b7aff01 100644 |
--- a/src/arm64/ic-arm64.cc |
+++ b/src/arm64/ic-arm64.cc |
@@ -429,14 +429,18 @@ void LoadIC::GenerateNormal(MacroAssembler* masm) { |
// -- lr : return address |
// -- x0 : receiver |
// ----------------------------------- |
- Label miss; |
+ Label miss, slow; |
GenerateNameDictionaryReceiverCheck(masm, x0, x1, x3, x4, &miss); |
// x1 now holds the property dictionary. |
- GenerateDictionaryLoad(masm, &miss, x1, x2, x0, x3, x4); |
+ GenerateDictionaryLoad(masm, &slow, x1, x2, x0, x3, x4); |
__ Ret(); |
+ // Dictionary load failed, go slow (but don't miss). |
+ __ Bind(&slow); |
+ GenerateRuntimeGetProperty(masm); |
+ |
// Cache miss: Jump to runtime. |
__ Bind(&miss); |
GenerateMiss(masm); |