diff options
author | Petr Bred <bredpetr@gmail.com> | 2018-04-13 07:35:29 +0300 |
---|---|---|
committer | Sergiy Kuryata <sergeyk@microsoft.com> | 2018-04-13 07:35:29 +0300 |
commit | 084a8c7c43d4a9375d1ff1144515669a78a0f893 (patch) | |
tree | fa94e62f83e002be8570fea41d3b09f82dad81ed /src/Native | |
parent | ca7b6a82e8a9cc7620cd983f8d1acf622d5247bd (diff) |
[ARM/X86] Fix calling conventions (#5684)
Signed-off-by: Petr Bred <bredpetr@gmail.com>
Diffstat (limited to 'src/Native')
-rw-r--r-- | src/Native/jitinterface/dllexport.h | 37 | ||||
-rw-r--r-- | src/Native/jitinterface/jithost.cpp | 16 | ||||
-rw-r--r-- | src/Native/jitinterface/jitinterface.cpp | 28 |
3 files changed, 43 insertions, 38 deletions
diff --git a/src/Native/jitinterface/dllexport.h b/src/Native/jitinterface/dllexport.h index 4b28b7ba1..eac5f387f 100644 --- a/src/Native/jitinterface/dllexport.h +++ b/src/Native/jitinterface/dllexport.h @@ -2,22 +2,39 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. + +// *** +// Define default C export attributes +// *** #ifdef _WIN32 -#define DLL_EXPORT extern "C" __declspec(dllexport) +#define DLL_EXPORT extern "C" __declspec(dllexport) #else -#define DLL_EXPORT extern "C" __attribute((visibility("default"))) -#endif - -#ifdef __i386__ +#define DLL_EXPORT extern "C" __attribute((visibility("default"))) +#endif // _WIN32 -#if !defined(__stdcall) -#define __stdcall __attribute__((stdcall)) -#endif -#else +// *** +// Define default call conventions +// *** +#ifndef _X86_ -#if !defined(__stdcall) +#define DEFAULT_CALL_CONV +#define __cdecl #define __stdcall + +#else // _X86_ + +#ifndef __stdcall +#define __stdcall __attribute__((stdcall)) #endif +#ifdef PLATFORM_UNIX +#define DEFAULT_CALL_CONV +#else +#define DEFAULT_CALL_CONV __stdcall #endif + +#endif // _X86_ + + +#define STDMETHODCALLTYPE DEFAULT_CALL_CONV diff --git a/src/Native/jitinterface/jithost.cpp b/src/Native/jitinterface/jithost.cpp index 62770ddca..2e2f17bfb 100644 --- a/src/Native/jitinterface/jithost.cpp +++ b/src/Native/jitinterface/jithost.cpp @@ -6,27 +6,15 @@ #include "dllexport.h" -#ifdef _X86_ -#ifdef PLATFORM_UNIX -#define DEFAULT_CALL_CONV __cdecl -#else -#define DEFAULT_CALL_CONV __stdcall -#endif -#else -#define DEFAULT_CALL_CONV -#define __cdecl -#define __stdcall -#endif - class JitConfigProvider { public: - virtual int DEFAULT_CALL_CONV getIntConfigValue( + virtual int getIntConfigValue( const wchar_t* name, int defaultValue ) = 0; - virtual int DEFAULT_CALL_CONV getStringConfigValue( + virtual int getStringConfigValue( const wchar_t* name, wchar_t* retBuffer, int retBufferLength diff --git a/src/Native/jitinterface/jitinterface.cpp b/src/Native/jitinterface/jitinterface.cpp index acdcfa39e..e18036465 100644 --- a/src/Native/jitinterface/jitinterface.cpp +++ b/src/Native/jitinterface/jitinterface.cpp @@ -67,32 +67,32 @@ public: { } - virtual void __stdcall QueryInterface() { NotImplemented(); } - virtual void __stdcall AddRef() { NotImplemented(); } - virtual void __stdcall Release() { NotImplemented(); } + virtual void STDMETHODCALLTYPE QueryInterface() { NotImplemented(); } + virtual void STDMETHODCALLTYPE AddRef() { NotImplemented(); } + virtual void STDMETHODCALLTYPE Release() { NotImplemented(); } // JIT only ever uses IEEMemoryManager::ClrVirtualAlloc/IEEMemoryManager::ClrVirtualFree - virtual void * __stdcall ClrVirtualAlloc(void * lpAddress, size_t dwSize, uint32_t flAllocationType, uint32_t flProtect) + virtual void * STDMETHODCALLTYPE ClrVirtualAlloc(void * lpAddress, size_t dwSize, uint32_t flAllocationType, uint32_t flProtect) { return malloc(dwSize); } - virtual uint32_t __stdcall ClrVirtualFree(void * lpAddress, size_t dwSize, uint32_t dwFreeType) + virtual uint32_t STDMETHODCALLTYPE ClrVirtualFree(void * lpAddress, size_t dwSize, uint32_t dwFreeType) { free(lpAddress); return 1; } - virtual void __stdcall ClrVirtualQuery() { NotImplemented(); } - virtual void __stdcall ClrVirtualProtect() { NotImplemented(); } - virtual void __stdcall ClrGetProcessHeap() { NotImplemented(); } - virtual void __stdcall ClrHeapCreate() { NotImplemented(); } - virtual void __stdcall ClrHeapDestroy() { NotImplemented(); } - virtual void __stdcall ClrHeapAlloc() { NotImplemented(); } - virtual void __stdcall ClrHeapFree() { NotImplemented(); } - virtual void __stdcall ClrHeapValidate() { NotImplemented(); } - virtual void __stdcall ClrGetProcessExecutableHeap() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrVirtualQuery() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrVirtualProtect() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrGetProcessHeap() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrHeapCreate() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrHeapDestroy() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrHeapAlloc() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrHeapFree() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrHeapValidate() { NotImplemented(); } + virtual void STDMETHODCALLTYPE ClrGetProcessExecutableHeap() { NotImplemented(); } }; static EEMemoryManager eeMemoryManager; |