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:
authorPetr Bred <bredpetr@gmail.com>2018-04-13 07:35:29 +0300
committerSergiy Kuryata <sergeyk@microsoft.com>2018-04-13 07:35:29 +0300
commit084a8c7c43d4a9375d1ff1144515669a78a0f893 (patch)
treefa94e62f83e002be8570fea41d3b09f82dad81ed /src/Native
parentca7b6a82e8a9cc7620cd983f8d1acf622d5247bd (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.h37
-rw-r--r--src/Native/jitinterface/jithost.cpp16
-rw-r--r--src/Native/jitinterface/jitinterface.cpp28
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;