summaryrefslogtreecommitdiff
path: root/src/gcinfo
diff options
context:
space:
mode:
authorSwaroop Sridhar <swaroops@microsoft.com>2016-04-15 15:04:40 -0700
committerSwaroop Sridhar <swaroops@microsoft.com>2016-04-19 14:35:02 -0700
commit8bfab0ac3a0d2ae48b39f28bde2b7f2a8ee718e4 (patch)
treeb6fb81d8eea2348e16fe56522ff1f1a1f143544a /src/gcinfo
parent83e52facfec1ae6002ed9d0a474c300ab3dbe2fe (diff)
downloadcoreclr-8bfab0ac3a0d2ae48b39f28bde2b7f2a8ee718e4.tar.gz
coreclr-8bfab0ac3a0d2ae48b39f28bde2b7f2a8ee718e4.tar.bz2
coreclr-8bfab0ac3a0d2ae48b39f28bde2b7f2a8ee718e4.zip
ARM64: Fix GC encoding settings
This change fixes certain settings in the GCInfo encoder/decoders. It also fixes the debug info for the stack pointer.
Diffstat (limited to 'src/gcinfo')
-rw-r--r--src/gcinfo/gcinfoencoder.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gcinfo/gcinfoencoder.cpp b/src/gcinfo/gcinfoencoder.cpp
index 0f34a3bd4c..e6359c86c8 100644
--- a/src/gcinfo/gcinfoencoder.cpp
+++ b/src/gcinfo/gcinfoencoder.cpp
@@ -1079,6 +1079,7 @@ void GcInfoEncoder::Build()
}
_ASSERTE( m_CodeLength > 0 );
+ _ASSERTE(DENORMALIZE_CODE_LENGTH(NORMALIZE_CODE_LENGTH(m_CodeLength)) == m_CodeLength);
GCINFO_WRITE_VARL_U(m_Info1, NORMALIZE_CODE_LENGTH(m_CodeLength), CODE_LENGTH_ENCBASE, CodeLengthSize);
if(hasGSCookie)
@@ -1216,6 +1217,7 @@ void GcInfoEncoder::Build()
// (after, of course, adding the size of the call instruction to get the return PC).
callSite += m_pCallSiteSizes[callSiteIndex] - 1;
+ _ASSERTE(DENORMALIZE_CODE_OFFSET(NORMALIZE_CODE_OFFSET(callSite)) == callSite);
UINT32 normOffset = NORMALIZE_CODE_OFFSET(callSite);
BOOL keepIt = TRUE;
@@ -2032,7 +2034,7 @@ void GcInfoEncoder::Build()
if(!IsEssential(pClause))
continue;
-
+
UINT32 normStartOffset = NORMALIZE_CODE_OFFSET(pClause->TryStartPC);
UINT32 normStopOffset = NORMALIZE_CODE_OFFSET(pClause->TryEndPC);
_ASSERTE(normStopOffset > normStartOffset);