| Index: runtime/vm/disassembler_arm64.cc
|
| diff --git a/runtime/vm/disassembler_arm64.cc b/runtime/vm/disassembler_arm64.cc
|
| index a2386412d3080adc9fbb6c0c241b02db4486a2dc..dd7d00c3d1c170080f91f8888a413a1587576554 100644
|
| --- a/runtime/vm/disassembler_arm64.cc
|
| +++ b/runtime/vm/disassembler_arm64.cc
|
| @@ -7,6 +7,7 @@
|
| #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64.
|
| #if defined(TARGET_ARCH_ARM64)
|
| #include "platform/assert.h"
|
| +#include "vm/instructions.h"
|
|
|
| namespace dart {
|
|
|
| @@ -1488,7 +1489,8 @@ void ARM64Decoder::InstructionDecode(uword pc) {
|
|
|
| void Disassembler::DecodeInstruction(char* hex_buffer, intptr_t hex_size,
|
| char* human_buffer, intptr_t human_size,
|
| - int* out_instr_size, uword pc) {
|
| + int* out_instr_size, const Code& code,
|
| + Object** object, uword pc) {
|
| ARM64Decoder decoder(human_buffer, human_size);
|
| decoder.InstructionDecode(pc);
|
| int32_t instruction_bits = Instr::At(pc)->InstructionBits();
|
| @@ -1496,6 +1498,14 @@ void Disassembler::DecodeInstruction(char* hex_buffer, intptr_t hex_size,
|
| if (out_instr_size) {
|
| *out_instr_size = Instr::kInstrSize;
|
| }
|
| +
|
| + *object = NULL;
|
| + if (!code.IsNull()) {
|
| + *object = &Object::Handle();
|
| + if (!DecodeLoadObjectFromPoolOrThread(pc, code, *object)) {
|
| + *object = NULL;
|
| + }
|
| + }
|
| }
|
|
|
| #endif // !PRODUCT
|
|
|