summaryrefslogtreecommitdiff
path: root/src/jit/unwindamd64.cpp
diff options
context:
space:
mode:
authorPat Gavlin <pagavlin@microsoft.com>2016-05-19 19:05:53 -0700
committerPat Gavlin <pagavlin@microsoft.com>2016-05-19 19:05:53 -0700
commitaa752704910dd2322be7733f0f648e3733522f42 (patch)
tree3d98bc47c3111d6d5be6bb4b629560c5129f40d5 /src/jit/unwindamd64.cpp
parentc61b67485a363ee38e9882cc25d3a83f5239db49 (diff)
downloadcoreclr-aa752704910dd2322be7733f0f648e3733522f42.tar.gz
coreclr-aa752704910dd2322be7733f0f648e3733522f42.tar.bz2
coreclr-aa752704910dd2322be7733f0f648e3733522f42.zip
Add some quirk and versioning flags and change some preprocessor symbols into fields of CORINFO_EE_INFO.
The quirk flags--CORJIT_FLG2_JIT32_QUIRKS and CORJIT_FLG2_JIT64_QUIRKS--are passed by the EE to request that the JIT generate appropriately compatible executable code. These flags are only passed on x86/Windows and x64/Desktop/Windows, respectively. Version numbers for GC and EH info have been added to CORINFO_EE_INFO. The EE sets these versions to indicate the formats of the aforementioned data that it supports. CORINFO_PAGE_SIZE and MAX_UNCHECKED_OFFSET_FOR_NULL_OBJECT have been converted to fields on CORINFO_EE_INFO. [tfs-changeset: 1606533]
Diffstat (limited to 'src/jit/unwindamd64.cpp')
-rw-r--r--src/jit/unwindamd64.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/jit/unwindamd64.cpp b/src/jit/unwindamd64.cpp
index 6a5b199a07..6c8833bfc0 100644
--- a/src/jit/unwindamd64.cpp
+++ b/src/jit/unwindamd64.cpp
@@ -104,7 +104,7 @@ UNATIVE_OFFSET Compiler::unwindGetCurrentOffset(FuncInfoDsc* func)
void Compiler::unwindBegProlog()
{
#ifdef UNIX_AMD64_ABI
- if ((opts.eeFlags & CORJIT_FLG_CFI_UNWIND) != 0)
+ if (generateCFIUnwindCodes())
{
unwindBegPrologCFI();
}
@@ -206,12 +206,12 @@ void Compiler::unwindEndEpilog()
void Compiler::unwindPush(regNumber reg)
{
#ifdef UNIX_AMD64_ABI
- if ((opts.eeFlags & CORJIT_FLG_CFI_UNWIND) != 0)
+ if (generateCFIUnwindCodes())
{
unwindPushCFI(reg);
}
else
-#endif
+#endif // UNIX_AMD64_ABI
{
unwindPushWindows(reg);
}
@@ -287,7 +287,7 @@ void Compiler::unwindPushCFI(regNumber reg)
void Compiler::unwindAllocStack(unsigned size)
{
#ifdef UNIX_AMD64_ABI
- if ((opts.eeFlags & CORJIT_FLG_CFI_UNWIND) != 0)
+ if (generateCFIUnwindCodes())
{
unwindAllocStackCFI(size);
}
@@ -361,7 +361,7 @@ void Compiler::unwindAllocStackCFI(unsigned size)
void Compiler::unwindSetFrameReg(regNumber reg, unsigned offset)
{
#ifdef UNIX_AMD64_ABI
- if ((opts.eeFlags & CORJIT_FLG_CFI_UNWIND) != 0)
+ if (generateCFIUnwindCodes())
{
unwindSetFrameRegCFI(reg, offset);
}
@@ -444,7 +444,7 @@ void Compiler::unwindSetFrameRegCFI(regNumber reg, unsigned offset)
void Compiler::unwindSaveReg(regNumber reg, unsigned offset)
{
#ifdef UNIX_AMD64_ABI
- if ((opts.eeFlags & CORJIT_FLG_CFI_UNWIND) != 0)
+ if (generateCFIUnwindCodes())
{
unwindSaveRegCFI(reg, offset);
}
@@ -775,7 +775,7 @@ void Compiler::unwindReserveFuncHelper(FuncInfoDsc* func, bool isHotCode)
if (isHotCode)
{
#ifdef UNIX_AMD64_ABI
- if ((opts.eeFlags & CORJIT_FLG_CFI_UNWIND) != 0)
+ if (generateCFIUnwindCodes())
{
unwindCodeBytes = func->cfiCodes->size() * sizeof(CFI_CODE);
}
@@ -873,7 +873,7 @@ void Compiler::unwindEmitFuncHelper(FuncInfoDsc* func, void* pHotCode, void* pCo
}
#ifdef UNIX_AMD64_ABI
- if ((opts.eeFlags & CORJIT_FLG_CFI_UNWIND) != 0)
+ if (generateCFIUnwindCodes())
{
int size = func->cfiCodes->size();
if (size > 0)
@@ -924,7 +924,7 @@ void Compiler::unwindEmitFuncHelper(FuncInfoDsc* func, void* pHotCode, void* pCo
if (opts.dspUnwind)
{
#ifdef UNIX_AMD64_ABI
- if ((opts.eeFlags & CORJIT_FLG_CFI_UNWIND) != 0)
+ if (generateCFIUnwindCodes())
{
DumpCfiInfo(isHotCode, startOffset, endOffset, unwindCodeBytes, (const CFI_CODE * const)pUnwindBlock);
}