summaryrefslogtreecommitdiff
path: root/src/vm/gcinfodecoder.cpp
diff options
context:
space:
mode:
authorGeoff Norton <grompf@gmail.com>2015-07-25 14:48:20 +0900
committerGeoff Norton <grompf@gmail.com>2015-07-27 21:12:04 -0700
commit16c43e35d1a9a858374757ccf0484a50afdb0b69 (patch)
tree1e8977500a18b28c00716d5378a1d5f0afa3b7a3 /src/vm/gcinfodecoder.cpp
parent0a83c2fc30146b335a24c85de2a5ba33a72bdbdd (diff)
downloadcoreclr-16c43e35d1a9a858374757ccf0484a50afdb0b69.tar.gz
coreclr-16c43e35d1a9a858374757ccf0484a50afdb0b69.tar.bz2
coreclr-16c43e35d1a9a858374757ccf0484a50afdb0b69.zip
[aarch64] Initial aarch64/linux bring up
Diffstat (limited to 'src/vm/gcinfodecoder.cpp')
-rw-r--r--src/vm/gcinfodecoder.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/vm/gcinfodecoder.cpp b/src/vm/gcinfodecoder.cpp
index b231924e0f..c4dcfc4565 100644
--- a/src/vm/gcinfodecoder.cpp
+++ b/src/vm/gcinfodecoder.cpp
@@ -1793,6 +1793,24 @@ void GcInfoDecoder::ReportRegisterToGC( // ARM64
pCallBack(hCallBack, pObjRef, gcFlags DAC_ARG(DacSlotLocation(regNum, 0, false)));
}
+#ifdef FEATURE_PAL
+OBJECTREF* GcInfoDecoder::GetCapturedRegister(
+ int regNum,
+ PREGDISPLAY pRD
+ )
+{
+ _ASSERTE(regNum >= 0 && regNum <= 28);
+
+ // The fields of CONTEXT are in the same order as
+ // the processor encoding numbers.
+
+ DWORD64 *pX0;
+ pX0 = &pRD->pCurrentContext->X0;
+
+ return (OBJECTREF*)(pX0 + regNum);
+}
+#endif // FEATURE_PAL
+
#else // Unknown platform
OBJECTREF* GcInfoDecoder::GetRegisterSlot(