diff options
author | Jan Kotas <jkotas@microsoft.com> | 2015-12-29 00:05:54 +0300 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2015-12-30 16:54:24 +0300 |
commit | 1bc1dfa2a8470ec9508e04b11d7504e7df907206 (patch) | |
tree | 7d8de2269e8647662494a4162096f5ddd14c7ce7 /src/Native/Runtime/EHHelpers.cpp | |
parent | 5a6227d2a5645cc429905654685f36b2c516e2ba (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.cpp | 7 |
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 |