From edf8c17adba6f9b8120adaa943693f27ef82bdbf Mon Sep 17 00:00:00 2001 From: Pat Gavlin Date: Thu, 27 Jul 2017 12:32:07 -0700 Subject: [PATCH] Fix `getTargetOfCall` for ARM. If the instruction we're decoding is not a call, don't attempt to decode it as if it were an x86 instruction. Instead, just return 0 as on ARM64. --- src/vm/gccover.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vm/gccover.cpp b/src/vm/gccover.cpp index 15ce761..895c176 100644 --- a/src/vm/gccover.cpp +++ b/src/vm/gccover.cpp @@ -1035,6 +1035,10 @@ static SLOT getTargetOfCall(SLOT instrPtr, PCONTEXT regs, SLOT*nextInstr) { unsigned int regnum = (instrPtr[0] & 0x78) >> 3; return (BYTE *)getRegVal(regnum, regs); } + else + { + return 0; // Not a call. + } #elif defined(_TARGET_ARM64_) if (((*reinterpret_cast(instrPtr)) & 0xFC000000) == 0x94000000) { -- 2.7.4