OSDN Git Service

ART: ARM64: Fix instruction addresses in the disassembly.
authorAlexandre Rames <alexandre.rames@arm.com>
Fri, 10 Oct 2014 16:14:18 +0000 (17:14 +0100)
committerAlexandre Rames <alexandre.rames@arm.com>
Mon, 13 Oct 2014 13:12:33 +0000 (14:12 +0100)
Change-Id: Ic8b6e0d5cd15e029de9bc82e0a4fc2e33d07936c

disassembler/disassembler_arm64.cc

index 5d0c218..fc1065a 100644 (file)
 namespace art {
 namespace arm64 {
 
-static uint32_t ReadU32(const uint8_t* ptr) {
-  return *((const uint32_t*)ptr);
-}
-
 size_t DisassemblerArm64::Dump(std::ostream& os, const uint8_t* begin) {
-  uint32_t instruction = ReadU32(begin);
-  decoder.Decode(reinterpret_cast<vixl::Instruction*>(&instruction));
+  const vixl::Instruction* instr = reinterpret_cast<const vixl::Instruction*>(begin);
+  decoder.Decode(instr);
   os << FormatInstructionPointer(begin)
-     << StringPrintf(": %08x\t%s\n", instruction, disasm.GetOutput());
+     << StringPrintf(": %08x\t%s\n", instr->InstructionBits(), disasm.GetOutput());
   return vixl::kInstructionSize;
 }