Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index 31ffbf1e49010e8eaec1263510fe0930a6db85c2..b12b3ef903e5b90f5a0b39ad33a4af7889df2206 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -3750,6 +3750,19 @@ void MacroAssembler::EnumLength(Register dst, Register map) { |
} |
+void MacroAssembler::LoadAccessor(Register dst, Register holder, |
+ int accessor_index, |
+ AccessorComponent accessor) { |
+ ldr(dst, FieldMemOperand(holder, HeapObject::kMapOffset)); |
+ LoadInstanceDescriptors(dst, dst); |
+ ldr(dst, |
+ FieldMemOperand(dst, DescriptorArray::GetValueOffset(accessor_index))); |
+ int offset = accessor == ACCESSOR_GETTER ? AccessorPair::kGetterOffset |
+ : AccessorPair::kSetterOffset; |
+ ldr(dst, FieldMemOperand(dst, offset)); |
+} |
+ |
+ |
void MacroAssembler::CheckEnumCache(Register null_value, Label* call_runtime) { |
Register empty_fixed_array_value = r6; |
LoadRoot(empty_fixed_array_value, Heap::kEmptyFixedArrayRootIndex); |