diff options
author | Swaroop Sridhar <swaroops@microsoft.com> | 2016-04-15 15:04:40 -0700 |
---|---|---|
committer | Swaroop Sridhar <swaroops@microsoft.com> | 2016-04-19 14:35:02 -0700 |
commit | 8bfab0ac3a0d2ae48b39f28bde2b7f2a8ee718e4 (patch) | |
tree | b6fb81d8eea2348e16fe56522ff1f1a1f143544a /src/gcinfo/gcinfoencoder.cpp | |
parent | 83e52facfec1ae6002ed9d0a474c300ab3dbe2fe (diff) | |
download | coreclr-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/gcinfoencoder.cpp')
-rw-r--r-- | src/gcinfo/gcinfoencoder.cpp | 4 |
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); |