summaryrefslogtreecommitdiff
path: root/src/inc
diff options
context:
space:
mode:
authordotnet-bot <dotnet-bot@microsoft.com>2015-05-06 23:43:46 -0700
committerJan Kotas <jkotas@microsoft.com>2015-05-07 12:03:00 -0700
commit484a2cf0b0c4e304a5093ec26e07fe41f8896c3c (patch)
tree348b56df4cdb235bb87ba9bc9118711c8db13bfd /src/inc
parentc6efc7047edb38075310cfef8ea28b91717b8108 (diff)
downloadcoreclr-484a2cf0b0c4e304a5093ec26e07fe41f8896c3c.tar.gz
coreclr-484a2cf0b0c4e304a5093ec26e07fe41f8896c3c.tar.bz2
coreclr-484a2cf0b0c4e304a5093ec26e07fe41f8896c3c.zip
Merge changes from parent branch
[tfs-changeset: 1466545]
Diffstat (limited to 'src/inc')
-rw-r--r--src/inc/corcompile.h10
-rw-r--r--src/inc/eetwain.h8
-rw-r--r--src/inc/eventtracebase.h15
-rw-r--r--src/inc/pedecoder.h1
-rw-r--r--src/inc/pedecoder.inl15
5 files changed, 47 insertions, 2 deletions
diff --git a/src/inc/corcompile.h b/src/inc/corcompile.h
index 693cf31edf..e3f73a79c9 100644
--- a/src/inc/corcompile.h
+++ b/src/inc/corcompile.h
@@ -198,8 +198,16 @@ enum CorCompileCodegen
CORCOMPILE_CODEGEN_PROFILING = 0x0004, // supports profiling
CORCOMPILE_CODEGEN_PROF_INSTRUMENTING = 0x0008, // code is instrumented to collect profile count info
+
+#if defined(_TARGET_AMD64_) && !defined(FEATURE_CORECLR)
+ CORCOMPILE_CODEGEN_USE_RYUJIT = 0x0100, // code is generated by Ryu JIT
+#endif
};
+#if defined(_TARGET_AMD64_) && !defined(FEATURE_CORECLR)
+bool UseRyuJit();
+#endif
+
// Used for INativeImageInstallInfo::GetConfigMask()
// A bind will ask for the particular bits it needs set; if all bits are set, it is a match. Additional
// bits are ignored.
@@ -225,6 +233,8 @@ enum CorCompileHeaderFlags
// Note it is useless to cache the actual directory contents
// since it must be verified as part of the original image
CORCOMPILE_HEADER_IS_IBC_OPTIMIZED = 0x00000002,
+
+ CORCOMPILE_HEADER_IS_READY_TO_RUN = 0x00000004,
};
//
diff --git a/src/inc/eetwain.h b/src/inc/eetwain.h
index d849bcf47c..21f74847e6 100644
--- a/src/inc/eetwain.h
+++ b/src/inc/eetwain.h
@@ -43,6 +43,8 @@
#define CHECK_APP_DOMAIN 0
#endif
+#define NO_OVERRIDE_OFFSET (DWORD)-1
+
struct EHContext;
#ifdef DACCESS_COMPILE
@@ -231,7 +233,8 @@ virtual bool EnumGcRefs(PREGDISPLAY pContext,
EECodeInfo *pCodeInfo,
unsigned flags,
GCEnumCallback pCallback,
- LPVOID hCallBack) = 0;
+ LPVOID hCallBack,
+ DWORD relOffsetOverride = NO_OVERRIDE_OFFSET) = 0;
/*
Return the address of the local security object reference
@@ -460,7 +463,8 @@ bool EnumGcRefs(PREGDISPLAY pContext,
EECodeInfo *pCodeInfo,
unsigned flags,
GCEnumCallback pCallback,
- LPVOID hCallBack);
+ LPVOID hCallBack,
+ DWORD relOffsetOverride = NO_OVERRIDE_OFFSET);
#ifdef FEATURE_CONSERVATIVE_GC
// Temporary conservative collection, for testing purposes, until we have
diff --git a/src/inc/eventtracebase.h b/src/inc/eventtracebase.h
index 517125f49b..eac127e732 100644
--- a/src/inc/eventtracebase.h
+++ b/src/inc/eventtracebase.h
@@ -650,8 +650,23 @@ namespace ETW
public:
#ifdef FEATURE_EVENT_TRACE
static VOID ExceptionThrown(CrawlFrame *pCf, BOOL bIsReThrownException, BOOL bIsNewException);
+ static VOID ExceptionThrownEnd();
+ static VOID ExceptionCatchBegin(MethodDesc * pMethodDesc, PVOID pEntryEIP);
+ static VOID ExceptionCatchEnd();
+ static VOID ExceptionFinallyBegin(MethodDesc * pMethodDesc, PVOID pEntryEIP);
+ static VOID ExceptionFinallyEnd();
+ static VOID ExceptionFilterBegin(MethodDesc * pMethodDesc, PVOID pEntryEIP);
+ static VOID ExceptionFilterEnd();
+
#else
static VOID ExceptionThrown(CrawlFrame *pCf, BOOL bIsReThrownException, BOOL bIsNewException) {};
+ static VOID ExceptionThrownEnd() {};
+ static VOID ExceptionCatchBegin(MethodDesc * pMethodDesc, PVOID pEntryEIP) {};
+ static VOID ExceptionCatchEnd() {};
+ static VOID ExceptionFinallyBegin(MethodDesc * pMethodDesc, PVOID pEntryEIP) {};
+ static VOID ExceptionFinallyEnd() {};
+ static VOID ExceptionFilterBegin(MethodDesc * pMethodDesc, PVOID pEntryEIP) {};
+ static VOID ExceptionFilterEnd() {};
#endif // FEATURE_EVENT_TRACE
typedef union _ExceptionStructs
{
diff --git a/src/inc/pedecoder.h b/src/inc/pedecoder.h
index 71126d3ff3..a744764a6d 100644
--- a/src/inc/pedecoder.h
+++ b/src/inc/pedecoder.h
@@ -307,6 +307,7 @@ class PEDecoder
const void *GetNativePreferredBase() const;
BOOL GetNativeILHasSecurityDirectory() const;
BOOL GetNativeILIsIbcOptimized() const;
+ BOOL GetNativeILHasReadyToRunHeader() const;
BOOL IsNativeILILOnly() const;
BOOL IsNativeILDll() const;
void GetNativeILPEKindAndMachine(DWORD* pdwKind, DWORD* pdwMachine) const;
diff --git a/src/inc/pedecoder.inl b/src/inc/pedecoder.inl
index 94c93c3526..9794625a58 100644
--- a/src/inc/pedecoder.inl
+++ b/src/inc/pedecoder.inl
@@ -1046,6 +1046,21 @@ inline BOOL PEDecoder::GetNativeILIsIbcOptimized() const
return (GetNativeHeader()->Flags & CORCOMPILE_HEADER_IS_IBC_OPTIMIZED) != 0;
}
+inline BOOL PEDecoder::GetNativeILHasReadyToRunHeader() const
+{
+ CONTRACTL
+ {
+ INSTANCE_CHECK;
+ PRECONDITION(CheckNativeHeader());
+ NOTHROW;
+ GC_NOTRIGGER;
+ }
+ CONTRACTL_END;
+
+ PREFIX_ASSUME (GetNativeHeader()!=NULL);
+ return (GetNativeHeader()->Flags & CORCOMPILE_HEADER_IS_READY_TO_RUN) != 0;
+}
+
inline BOOL PEDecoder::IsNativeILILOnly() const
{
CONTRACTL