From 8bfab0ac3a0d2ae48b39f28bde2b7f2a8ee718e4 Mon Sep 17 00:00:00 2001 From: Swaroop Sridhar Date: Fri, 15 Apr 2016 15:04:40 -0700 Subject: 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. --- src/gcinfo/gcinfoencoder.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/gcinfo/gcinfoencoder.cpp') 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); -- cgit v1.2.3