Index: runtime/vm/assembler_x64.cc |
diff --git a/runtime/vm/assembler_x64.cc b/runtime/vm/assembler_x64.cc |
index fcab5eafb922677ce26acc847fd68ac7d4211bf3..863bf622d876bed7f5c1babcbec8303d62f31b41 100644 |
--- a/runtime/vm/assembler_x64.cc |
+++ b/runtime/vm/assembler_x64.cc |
@@ -70,6 +70,15 @@ void Assembler::LoadExternalLabel(Register dst, |
} |
+void Assembler::LoadNativeEntry(Register dst, |
+ const ExternalLabel* label, |
+ Patchability patchable) { |
+ const int32_t offset = ObjectPool::element_offset( |
+ object_pool_wrapper_.FindNativeEntry(label, patchable)); |
+ LoadWordFromPoolOffset(dst, offset - kHeapObjectTag); |
+} |
+ |
+ |
void Assembler::call(const ExternalLabel* label) { |
{ // Encode movq(TMP, Immediate(label->address())), but always as imm64. |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |