diff options
author | Sean Gillespie <segilles@microsoft.com> | 2017-10-27 14:37:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-27 14:37:54 -0700 |
commit | bd3424913138d10f9c4fdb6176fb471e8d1ba1d7 (patch) | |
tree | ca05fccdea9a8584194b4a4acf5b7cb1aab6800f /src/gc/env | |
parent | fb4af6c2908b633b200b556986815781f2139f4e (diff) | |
download | coreclr-bd3424913138d10f9c4fdb6176fb471e8d1ba1d7.tar.gz coreclr-bd3424913138d10f9c4fdb6176fb471e8d1ba1d7.tar.bz2 coreclr-bd3424913138d10f9c4fdb6176fb471e8d1ba1d7.zip |
[Local GC] Implement loader protocol for a standalone GC (#14663)
* First cut of the load protocol
* Implement for non-standalone GC
* Initial working implementation
* First steps towards not using GetProcAddress when not using a standalone GC
* Factor out loading routines into standalone and non-standalone cases
* Remove the FEATURE_STANDALONE_GC_ONLY build
* Code cleanup and comments
* Comments for the version numbers
* Use more appropriate type for config string
* add GC_LOAD_STATUS_BEFORE_START to disambiguate failures before the start of the load and failures at the beginning of the load
* FEATURE_STANDALONE_GC on by default
* Implement YieldProcessor and MemoryBarrier for arm and arm64
* Remove missed FEATURE_STANDALONE_GC feature check
Diffstat (limited to 'src/gc/env')
-rw-r--r-- | src/gc/env/gcenv.base.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/gc/env/gcenv.base.h b/src/gc/env/gcenv.base.h index 6c878c1c21..734b46fd3d 100644 --- a/src/gc/env/gcenv.base.h +++ b/src/gc/env/gcenv.base.h @@ -11,8 +11,6 @@ #include <intrin.h> #endif // _MSC_VER -#define FEATURE_REDHAWK 1 - #define REDHAWK_PALIMPORT extern "C" #define REDHAWK_PALAPI __stdcall @@ -208,6 +206,16 @@ typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(void* lpThreadParameter); #endif // defined(__i386__) || defined(__x86_64__) +#ifdef __aarch64__ + #define YieldProcessor() asm volatile ("yield") + #define MemoryBarrier __sync_synchronize +#endif // __aarch64__ + +#ifdef __arm__ + #define YieldProcessor() + #define MemoryBarrier __sync_synchronize +#endif // __arm__ + #endif // _MSC_VER #ifdef _MSC_VER |