Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2015-12-29 00:05:54 +0300
committerJan Kotas <jkotas@microsoft.com>2015-12-30 16:54:24 +0300
commit1bc1dfa2a8470ec9508e04b11d7504e7df907206 (patch)
tree7d8de2269e8647662494a4162096f5ddd14c7ce7 /src/Native/Runtime/EHHelpers.cpp
parent5a6227d2a5645cc429905654685f36b2c516e2ba (diff)
Implement most RyuJIT intrinsics
- Add lookup of all RyuJIT intrinsics - Update manage implementations of the intrinsics to fit with what RyuJIT is capable of - Make intrinsic expansions by the codegen to be optional by providing fallback paths - Fix USE_PORTABLE_HELPERS to be defined for portable runtime only These changes are under CORERT ifdefs as necessary to be reconciled with .NET Native for UWP later.
Diffstat (limited to 'src/Native/Runtime/EHHelpers.cpp')
-rw-r--r--src/Native/Runtime/EHHelpers.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Native/Runtime/EHHelpers.cpp b/src/Native/Runtime/EHHelpers.cpp
index e538b1d58..a2fb1c297 100644
--- a/src/Native/Runtime/EHHelpers.cpp
+++ b/src/Native/Runtime/EHHelpers.cpp
@@ -336,6 +336,8 @@ EXTERN_C void * RhpAssignRefAVLocation;
EXTERN_C void * RhpCheckedAssignRefAVLocation;
EXTERN_C void * RhpCheckedLockCmpXchgAVLocation;
EXTERN_C void * RhpCheckedXchgAVLocation;
+EXTERN_C void * RhpLockCmpXchg32AVLocation;
+EXTERN_C void * RhpLockCmpXchg64AVLocation;
EXTERN_C void * RhpCopyMultibyteDestAVLocation;
EXTERN_C void * RhpCopyMultibyteSrcAVLocation;
EXTERN_C void * RhpCopyMultibyteNoGCRefsDestAVLocation;
@@ -352,12 +354,17 @@ static bool InWriteBarrierHelper(UIntNative faultingIP)
(UIntNative)&RhpCheckedAssignRefAVLocation,
(UIntNative)&RhpCheckedLockCmpXchgAVLocation,
(UIntNative)&RhpCheckedXchgAVLocation,
+#ifdef CORERT
+ (UIntNative)&RhpLockCmpXchg32AVLocation,
+ (UIntNative)&RhpLockCmpXchg64AVLocation,
+#else
(UIntNative)&RhpCopyMultibyteDestAVLocation,
(UIntNative)&RhpCopyMultibyteSrcAVLocation,
(UIntNative)&RhpCopyMultibyteNoGCRefsDestAVLocation,
(UIntNative)&RhpCopyMultibyteNoGCRefsSrcAVLocation,
(UIntNative)&RhpCopyMultibyteWithWriteBarrierDestAVLocation,
(UIntNative)&RhpCopyMultibyteWithWriteBarrierSrcAVLocation,
+#endif
};
// compare the IP against the list of known possible AV locations in the write barrier helpers