Index: src/arm64/macro-assembler-arm64.cc |
diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc |
index 5e17bbd58dfc9de67a4a44d9fc7da220a3865ef8..05753ffab945d05abecf554a71f48f9230ff04eb 100644 |
--- a/src/arm64/macro-assembler-arm64.cc |
+++ b/src/arm64/macro-assembler-arm64.cc |
@@ -1488,18 +1488,15 @@ void MacroAssembler::LoadAccessor(Register dst, Register holder, |
} |
-void MacroAssembler::CheckEnumCache(Register object, |
- Register null_value, |
- Register scratch0, |
- Register scratch1, |
- Register scratch2, |
- Register scratch3, |
+void MacroAssembler::CheckEnumCache(Register object, Register scratch0, |
+ Register scratch1, Register scratch2, |
+ Register scratch3, Register scratch4, |
Label* call_runtime) { |
- DCHECK(!AreAliased(object, null_value, scratch0, scratch1, scratch2, |
- scratch3)); |
+ DCHECK(!AreAliased(object, scratch0, scratch1, scratch2, scratch3, scratch4)); |
Register empty_fixed_array_value = scratch0; |
Register current_object = scratch1; |
+ Register null_value = scratch4; |
LoadRoot(empty_fixed_array_value, Heap::kEmptyFixedArrayRootIndex); |
Label next, start; |
@@ -1516,6 +1513,7 @@ void MacroAssembler::CheckEnumCache(Register object, |
Cmp(enum_length, kInvalidEnumCacheSentinel); |
B(eq, call_runtime); |
+ LoadRoot(null_value, Heap::kNullValueRootIndex); |
B(&start); |
Bind(&next); |