Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
runtime
提交
f37f0b98
R
runtime
项目概览
dotNET Platform
/
runtime
12 个月 前同步成功
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
runtime
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
f37f0b98
编写于
6月 18, 2021
作者:
G
Gleb Balykov
提交者:
GitHub
6月 18, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix Linux x86 build (#50836)
上级
5221db92
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
74 addition
and
42 deletion
+74
-42
src/coreclr/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.cpp
...erpmi/superpmi-shim-collector/superpmi-shim-collector.cpp
+2
-2
src/coreclr/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.cpp
.../superpmi/superpmi-shim-counter/superpmi-shim-counter.cpp
+2
-2
src/coreclr/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.cpp
...ox/superpmi/superpmi-shim-simple/superpmi-shim-simple.cpp
+2
-2
src/coreclr/clrdefinitions.cmake
src/coreclr/clrdefinitions.cmake
+5
-3
src/coreclr/debug/ee/funceval.cpp
src/coreclr/debug/ee/funceval.cpp
+1
-1
src/coreclr/debug/ee/i386/x86walker.cpp
src/coreclr/debug/ee/i386/x86walker.cpp
+1
-1
src/coreclr/gc/unix/gcenv.unix.cpp
src/coreclr/gc/unix/gcenv.unix.cpp
+1
-1
src/coreclr/gcinfo/CMakeLists.txt
src/coreclr/gcinfo/CMakeLists.txt
+4
-0
src/coreclr/jit/CMakeLists.txt
src/coreclr/jit/CMakeLists.txt
+4
-0
src/coreclr/md/inc/VerifyLayouts.inc
src/coreclr/md/inc/VerifyLayouts.inc
+3
-0
src/coreclr/md/inc/metamodel.h
src/coreclr/md/inc/metamodel.h
+1
-0
src/coreclr/pal/src/misc/sysinfo.cpp
src/coreclr/pal/src/misc/sysinfo.cpp
+1
-1
src/coreclr/vm/callingconvention.h
src/coreclr/vm/callingconvention.h
+5
-4
src/coreclr/vm/codeman.cpp
src/coreclr/vm/codeman.cpp
+2
-2
src/coreclr/vm/common.h
src/coreclr/vm/common.h
+1
-0
src/coreclr/vm/crossgencompile.cpp
src/coreclr/vm/crossgencompile.cpp
+5
-0
src/coreclr/vm/exceptionhandling.cpp
src/coreclr/vm/exceptionhandling.cpp
+2
-2
src/coreclr/vm/fcall.h
src/coreclr/vm/fcall.h
+3
-0
src/coreclr/vm/field.cpp
src/coreclr/vm/field.cpp
+19
-0
src/coreclr/vm/field.h
src/coreclr/vm/field.h
+1
-16
src/coreclr/vm/jithelpers.cpp
src/coreclr/vm/jithelpers.cpp
+8
-4
src/coreclr/vm/jitinterface.cpp
src/coreclr/vm/jitinterface.cpp
+1
-1
未找到文件。
src/coreclr/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.cpp
浏览文件 @
f37f0b98
...
...
@@ -130,7 +130,7 @@ extern "C"
return
TRUE
;
}
extern
"C"
DLLEXPORT
void
__stdcall
jitStartup
(
ICorJitHost
*
host
)
extern
"C"
DLLEXPORT
void
jitStartup
(
ICorJitHost
*
host
)
{
// crossgen2 doesn't invoke DllMain on Linux/Mac (under PAL), so optionally do initialization work here.
InitializeShim
();
...
...
@@ -157,7 +157,7 @@ extern "C" DLLEXPORT void __stdcall jitStartup(ICorJitHost* host)
pnjitStartup
(
g_ourJitHost
);
}
extern
"C"
DLLEXPORT
ICorJitCompiler
*
__stdcall
getJit
()
extern
"C"
DLLEXPORT
ICorJitCompiler
*
getJit
()
{
DWORD
dwRetVal
=
0
;
PgetJit
pngetJit
;
...
...
src/coreclr/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.cpp
浏览文件 @
f37f0b98
...
...
@@ -108,7 +108,7 @@ extern "C"
return
TRUE
;
}
extern
"C"
DLLEXPORT
void
__stdcall
jitStartup
(
ICorJitHost
*
host
)
extern
"C"
DLLEXPORT
void
jitStartup
(
ICorJitHost
*
host
)
{
SetDefaultPaths
();
SetLibName
();
...
...
@@ -141,7 +141,7 @@ extern "C" DLLEXPORT void __stdcall jitStartup(ICorJitHost* host)
pnjitStartup
(
g_ourJitHost
);
}
extern
"C"
DLLEXPORT
ICorJitCompiler
*
__stdcall
getJit
()
extern
"C"
DLLEXPORT
ICorJitCompiler
*
getJit
()
{
DWORD
dwRetVal
=
0
;
PgetJit
pngetJit
;
...
...
src/coreclr/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.cpp
浏览文件 @
f37f0b98
...
...
@@ -93,7 +93,7 @@ extern "C"
return
TRUE
;
}
extern
"C"
DLLEXPORT
void
__stdcall
jitStartup
(
ICorJitHost
*
host
)
extern
"C"
DLLEXPORT
void
jitStartup
(
ICorJitHost
*
host
)
{
SetDefaultPaths
();
SetLibName
();
...
...
@@ -117,7 +117,7 @@ extern "C" DLLEXPORT void __stdcall jitStartup(ICorJitHost* host)
pnjitStartup
(
g_ourJitHost
);
}
extern
"C"
DLLEXPORT
ICorJitCompiler
*
__stdcall
getJit
()
extern
"C"
DLLEXPORT
ICorJitCompiler
*
getJit
()
{
DWORD
dwRetVal
=
0
;
PgetJit
pngetJit
;
...
...
src/coreclr/clrdefinitions.cmake
浏览文件 @
f37f0b98
...
...
@@ -57,12 +57,14 @@ if(CLR_CMAKE_HOST_WIN32)
add_definitions
(
-D_CRT_SECURE_NO_WARNINGS
)
endif
(
CLR_CMAKE_HOST_WIN32
)
add_compile_definitions
(
$<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:EnC_SUPPORTED>
)
if
(
CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386
)
if
(
NOT
(
CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARGET_UNIX
))
add_compile_definitions
(
$<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:EnC_SUPPORTED>
)
endif
()
if
(
CLR_CMAKE_TARGET_ARCH_AMD64
OR
(
CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARGET_WIN32
))
if
(
CLR_CMAKE_TARGET_WIN32
)
add_compile_definitions
(
$<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_ENC_SUPPORTED>
)
endif
(
CLR_CMAKE_TARGET_WIN32
)
endif
(
CLR_CMAKE_TARGET_ARCH_AMD64 OR
CLR_CMAKE_TARGET_ARCH_I386
)
endif
(
CLR_CMAKE_TARGET_ARCH_AMD64
OR
(
CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARGET_WIN32
)
)
# Features - please keep them alphabetically sorted
if
(
CLR_CMAKE_TARGET_WIN32
)
...
...
src/coreclr/debug/ee/funceval.cpp
浏览文件 @
f37f0b98
...
...
@@ -1635,7 +1635,7 @@ static void GCProtectAllPassedArgs(DebuggerEval *pDE,
#endif
}
#endif // TARGET_X86
FALLTHROUGH
;
default:
//
// Ignorable - no need to protect
...
...
src/coreclr/debug/ee/i386/x86walker.cpp
浏览文件 @
f37f0b98
...
...
@@ -415,7 +415,7 @@ void NativeWalker::DecodeInstructionForPatchSkip(const BYTE *address, Instructio
case
2
:
case
3
:
pInstrAttrib
->
m_fIsCall
=
true
;
// fall through
FALLTHROUGH
;
case
4
:
case
5
:
pInstrAttrib
->
m_fIsAbsBranch
=
true
;
...
...
src/coreclr/gc/unix/gcenv.unix.cpp
浏览文件 @
f37f0b98
...
...
@@ -884,7 +884,7 @@ static size_t GetLogicalProcessorCacheSizeFromOS()
cacheSize
=
std
::
max
(
cacheSize
,
(
size_t
)
sysconf
(
_SC_LEVEL4_CACHE_SIZE
));
#endif
#if defined(TARGET_LINUX) && !defined(HOST_ARM)
#if defined(TARGET_LINUX) && !defined(HOST_ARM)
&& !defined(HOST_X86)
if
(
cacheSize
==
0
)
{
//
...
...
src/coreclr/gcinfo/CMakeLists.txt
浏览文件 @
f37f0b98
...
...
@@ -82,3 +82,7 @@ create_gcinfo_lib(TARGET gcinfo_unix_armel OS unix ARCH armel)
create_gcinfo_lib
(
TARGET gcinfo_unix_arm OS unix ARCH arm
)
create_gcinfo_lib
(
TARGET gcinfo_win_arm OS win ARCH arm
)
create_gcinfo_lib
(
TARGET gcinfo_win_x86 OS win ARCH x86
)
if
(
CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARGET_UNIX
)
create_gcinfo_lib
(
TARGET gcinfo_unix_x86 OS unix ARCH x86
)
endif
(
CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARGET_UNIX
)
src/coreclr/jit/CMakeLists.txt
浏览文件 @
f37f0b98
...
...
@@ -516,6 +516,10 @@ target_compile_definitions(clrjit_unix_arm_${ARCH_HOST_NAME} PRIVATE ARM_SOFTFP
create_standalone_jit
(
TARGET clrjit_win_arm_
${
ARCH_HOST_NAME
}
OS win ARCH arm DESTINATIONS .
)
create_standalone_jit
(
TARGET clrjit_win_x86_
${
ARCH_HOST_NAME
}
OS win ARCH x86 DESTINATIONS .
)
if
(
CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARGET_UNIX
)
create_standalone_jit
(
TARGET clrjit_unix_x86_
${
ARCH_HOST_NAME
}
OS unix ARCH x86 DESTINATIONS .
)
endif
(
CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARGET_UNIX
)
if
(
CLR_CMAKE_TARGET_UNIX
)
if
(
NOT ARCH_TARGET_NAME STREQUAL s390x
)
install_clr
(
TARGETS clrjit_unix_
${
ARCH_TARGET_NAME
}
_
${
ARCH_HOST_NAME
}
DESTINATIONS . COMPONENT jit
)
...
...
src/coreclr/md/inc/VerifyLayouts.inc
浏览文件 @
f37f0b98
...
...
@@ -156,6 +156,9 @@ FIELD(CLiteWeightStgdbRW, m_wszFileName, sizeof(void*))
FIELD
(
CLiteWeightStgdbRW
,
m_dwDatabaseLFT
,
4
)
FIELD
(
CLiteWeightStgdbRW
,
m_dwDatabaseLFS
,
4
)
FIELD
(
CLiteWeightStgdbRW
,
m_pStgIO
,
sizeof
(
void
*
))
#ifdef FEATURE_METADATA_EMIT_PORTABLE_PDB
FIELD
(
CLiteWeightStgdbRW
,
m_pPdbHeap
,
sizeof
(
void
*
))
#endif
END_TYPE
(
CLiteWeightStgdbRW
,
8
)
USING_ALIAS
(
CLiteWeightStgdb__CMiniMdRW__
,
CLiteWeightStgdb
<
CMiniMdRW
>
)
...
...
src/coreclr/md/inc/metamodel.h
浏览文件 @
f37f0b98
...
...
@@ -594,6 +594,7 @@ public:
protected:
DAC_ALIGNAS
(
8
)
CMiniMdSchema
m_Schema
;
// data header.
ULONG
m_TblCount
;
// Tables in this database.
BOOL
m_fVerifiedByTrustedSource
;
// whether the data was verified by a trusted source
...
...
src/coreclr/pal/src/misc/sysinfo.cpp
浏览文件 @
f37f0b98
...
...
@@ -558,7 +558,7 @@ PAL_GetLogicalProcessorCacheSizeFromOS()
cacheSize
=
std
::
max
(
cacheSize
,
(
size_t
)
sysconf
(
_SC_LEVEL4_CACHE_SIZE
));
#endif
#if defined(TARGET_LINUX) && !defined(HOST_ARM)
#if defined(TARGET_LINUX) && !defined(HOST_ARM)
&& !defined(HOST_X86)
if
(
cacheSize
==
0
)
{
//
...
...
src/coreclr/vm/callingconvention.h
浏览文件 @
f37f0b98
...
...
@@ -423,11 +423,12 @@ public:
//@todo: Is it more apropos to call LookupApproxFieldTypeHandle() here?
TypeHandle
fldHnd
=
pFD
->
GetApproxFieldTypeHandleThrowing
();
CONSISTENCY_CHECK
(
!
fldHnd
.
IsNull
());
pMT
=
fldHnd
.
GetMethodTable
();
pMT
=
fldHnd
.
GetMethodTable
();
FALLTHROUGH
;
}
case
ELEMENT_TYPE_PTR
:
case
ELEMENT_TYPE_I
:
case
ELEMENT_TYPE_U
:
case
ELEMENT_TYPE_PTR
:
case
ELEMENT_TYPE_I
:
case
ELEMENT_TYPE_U
:
case
ELEMENT_TYPE_I4
:
case
ELEMENT_TYPE_U4
:
{
...
...
src/coreclr/vm/codeman.cpp
浏览文件 @
f37f0b98
...
...
@@ -1718,8 +1718,8 @@ static void LoadAndInitializeJIT(LPCWSTR pwzJitName, OUT HINSTANCE* phJit, OUT I
}
#ifdef FEATURE_MERGE_JIT_AND_ENGINE
EXTERN_C
void
__stdcall
jitStartup
(
ICorJitHost
*
host
);
EXTERN_C
ICorJitCompiler
*
__stdcall
getJit
();
EXTERN_C
void
jitStartup
(
ICorJitHost
*
host
);
EXTERN_C
ICorJitCompiler
*
getJit
();
#endif // FEATURE_MERGE_JIT_AND_ENGINE
BOOL
EEJitManager
::
LoadJIT
()
...
...
src/coreclr/vm/common.h
浏览文件 @
f37f0b98
...
...
@@ -367,6 +367,7 @@ inline void ClrRestoreNonvolatileContext(PCONTEXT ContextRecord)
#include "pefile.inl"
#include "excep.h"
#include "method.hpp"
#include "field.h"
#include "callingconvention.h"
#include "frames.h"
#include "qcall.h"
...
...
src/coreclr/vm/crossgencompile.cpp
浏览文件 @
f37f0b98
...
...
@@ -271,6 +271,11 @@ void CrawlFrame::GetExactGenericInstantiations(Instantiation *pClassInst, Instan
UNREACHABLE
();
}
void
SetObjectReferenceUnchecked
(
OBJECTREF
*
dst
,
OBJECTREF
ref
)
{
UNREACHABLE
();
}
BOOL
Object
::
SupportsInterface
(
OBJECTREF
pObj
,
MethodTable
*
pInterfaceMT
)
{
UNREACHABLE
();
...
...
src/coreclr/vm/exceptionhandling.cpp
浏览文件 @
f37f0b98
...
...
@@ -1219,7 +1219,7 @@ lExit: ;
invalidRevPInvoke
=
gcInfoDecoder
.
GetReversePInvokeFrameStackSlot
()
!=
NO_REVERSE_PINVOKE_FRAME
;
#else // USE_GC_INFO_DECODER
hdrInfo
gcHdrInfo
;
DecodeGCHdrInfo
(
gcInfoToken
,
0
,
&
gcHdrInfo
);
DecodeGCHdrInfo
(
codeInfo
.
GetGCInfoToken
()
,
0
,
&
gcHdrInfo
);
invalidRevPInvoke
=
gcHdrInfo
.
revPInvokeOffset
!=
INVALID_REV_PINVOKE_OFFSET
;
#endif // USE_GC_INFO_DECODER
...
...
@@ -4640,7 +4640,7 @@ VOID DECLSPEC_NORETURN UnwindManagedExceptionPass1(PAL_SEHException& ex, CONTEXT
invalidRevPInvoke
=
gcInfoDecoder
.
GetReversePInvokeFrameStackSlot
()
!=
NO_REVERSE_PINVOKE_FRAME
;
#else // USE_GC_INFO_DECODER
hdrInfo
gcHdrInfo
;
DecodeGCHdrInfo
(
gcInfoToken
,
0
,
&
gcHdrInfo
);
DecodeGCHdrInfo
(
codeInfo
.
GetGCInfoToken
()
,
0
,
&
gcHdrInfo
);
invalidRevPInvoke
=
gcHdrInfo
.
revPInvokeOffset
!=
INVALID_REV_PINVOKE_OFFSET
;
#endif // USE_GC_INFO_DECODER
...
...
src/coreclr/vm/fcall.h
浏览文件 @
f37f0b98
...
...
@@ -1145,6 +1145,7 @@ public:
#define HCIMPL2_IV(rettype, funcname, a1, a2) rettype F_CALL_CONV funcname(int
/* EAX */
, int
/* EDX */
, a1, a2) { HCIMPL_PROLOG(funcname)
#define HCIMPL2VA(rettype, funcname, a1, a2) rettype F_CALL_VA_CONV funcname(a1, a2, ...) { HCIMPL_PROLOG(funcname)
#define HCIMPL3(rettype, funcname, a1, a2, a3) rettype F_CALL_CONV funcname(int
/* EAX */
, a2, a1, a3) { HCIMPL_PROLOG(funcname)
#define HCIMPL3_RAW(rettype, funcname, a1, a2, a3) rettype F_CALL_CONV funcname(int
/* EAX */
, a2, a1, a3) {
#define HCIMPL4(rettype, funcname, a1, a2, a3, a4) rettype F_CALL_CONV funcname(int
/* EAX */
, a2, a1, a4, a3) { HCIMPL_PROLOG(funcname)
#define HCIMPL5(rettype, funcname, a1, a2, a3, a4, a5) rettype F_CALL_CONV funcname(int
/* EAX */
, a2, a1, a5, a4, a3) { HCIMPL_PROLOG(funcname)
...
...
@@ -1169,6 +1170,7 @@ public:
#define HCIMPL2_IV(rettype, funcname, a1, a2) rettype F_CALL_CONV funcname(a1, a2) { HCIMPL_PROLOG(funcname)
#define HCIMPL2VA(rettype, funcname, a1, a2) rettype F_CALL_VA_CONV funcname(a1, a2, ...) { HCIMPL_PROLOG(funcname)
#define HCIMPL3(rettype, funcname, a1, a2, a3) rettype F_CALL_CONV funcname(a1, a2, a3) { HCIMPL_PROLOG(funcname)
#define HCIMPL3_RAW(rettype, funcname, a1, a2, a3) rettype F_CALL_CONV funcname(a1, a2, a3) {
#define HCIMPL4(rettype, funcname, a1, a2, a3, a4) rettype F_CALL_CONV funcname(a1, a2, a4, a3) { HCIMPL_PROLOG(funcname)
#define HCIMPL5(rettype, funcname, a1, a2, a3, a4, a5) rettype F_CALL_CONV funcname(a1, a2, a5, a4, a3) { HCIMPL_PROLOG(funcname)
...
...
@@ -1194,6 +1196,7 @@ public:
#define HCIMPL2_IV(rettype, funcname, a1, a2) rettype F_CALL_CONV funcname(a1, a2) { HCIMPL_PROLOG(funcname)
#define HCIMPL2VA(rettype, funcname, a1, a2) rettype F_CALL_VA_CONV funcname(a1, a2, ...) { HCIMPL_PROLOG(funcname)
#define HCIMPL3(rettype, funcname, a1, a2, a3) rettype F_CALL_CONV funcname(a1, a2, a3) { HCIMPL_PROLOG(funcname)
#define HCIMPL3_RAW(rettype, funcname, a1, a2, a3) rettype F_CALL_CONV funcname(a1, a2, a3) {
#define HCIMPL4(rettype, funcname, a1, a2, a3, a4) rettype F_CALL_CONV funcname(a1, a2, a3, a4) { HCIMPL_PROLOG(funcname)
#define HCIMPL5(rettype, funcname, a1, a2, a3, a4, a5) rettype F_CALL_CONV funcname(a1, a2, a3, a4, a5) { HCIMPL_PROLOG(funcname)
...
...
src/coreclr/vm/field.cpp
浏览文件 @
f37f0b98
...
...
@@ -18,6 +18,25 @@
#include "peimagelayout.inl"
#ifndef DACCESS_COMPILE
VOID
FieldDesc
::
SetStaticOBJECTREF
(
OBJECTREF
objRef
)
{
CONTRACTL
{
THROWS
;
GC_TRIGGERS
;
MODE_COOPERATIVE
;
INJECT_FAULT
(
COMPlusThrowOM
());
}
CONTRACTL_END
GCPROTECT_BEGIN
(
objRef
);
OBJECTREF
*
pObjRef
=
(
OBJECTREF
*
)
GetCurrentStaticAddress
();
SetObjectReference
(
pObjRef
,
objRef
);
GCPROTECT_END
();
}
#endif
// called from code:MethodTableBuilder::InitializeFieldDescs#InitCall
VOID
FieldDesc
::
Init
(
mdFieldDef
mb
,
CorElementType
FieldType
,
DWORD
dwMemberAttrs
,
BOOL
fIsStatic
,
BOOL
fIsRVA
,
BOOL
fIsThreadLocal
,
LPCSTR
pszFieldName
)
{
...
...
src/coreclr/vm/field.h
浏览文件 @
f37f0b98
...
...
@@ -483,22 +483,7 @@ public:
return
*
(
OBJECTREF
*
)
GetCurrentStaticAddress
();
}
VOID
SetStaticOBJECTREF
(
OBJECTREF
objRef
)
{
CONTRACTL
{
THROWS
;
GC_TRIGGERS
;
MODE_COOPERATIVE
;
INJECT_FAULT
(
COMPlusThrowOM
());
}
CONTRACTL_END
GCPROTECT_BEGIN
(
objRef
);
OBJECTREF
*
pObjRef
=
(
OBJECTREF
*
)
GetCurrentStaticAddress
();
SetObjectReference
(
pObjRef
,
objRef
);
GCPROTECT_END
();
}
VOID
SetStaticOBJECTREF
(
OBJECTREF
objRef
);
void
*
GetStaticValuePtr
()
{
...
...
src/coreclr/vm/jithelpers.cpp
浏览文件 @
f37f0b98
...
...
@@ -5471,7 +5471,7 @@ NOINLINE static void JIT_ReversePInvokeEnterRare2(ReversePInvokeFrame* frame, vo
// As a result, we specially decorate this method to have the correct calling convention
// and argument ordering for an HCALL, but we don't use the HCALL macros and contracts
// since this method doesn't follow the contracts.
void
F_CALL_CONV
HCCALL3
(
JIT_ReversePInvokeEnterTrackTransitions
,
ReversePInvokeFrame
*
frame
,
CORINFO_METHOD_HANDLE
handle
,
void
*
secretArg
)
HCIMPL3_RAW
(
void
,
JIT_ReversePInvokeEnterTrackTransitions
,
ReversePInvokeFrame
*
frame
,
CORINFO_METHOD_HANDLE
handle
,
void
*
secretArg
)
{
_ASSERTE
(
frame
!=
NULL
&&
handle
!=
NULL
);
...
...
@@ -5520,8 +5520,9 @@ void F_CALL_CONV HCCALL3(JIT_ReversePInvokeEnterTrackTransitions, ReversePInvoke
INSTALL_EXCEPTION_HANDLING_RECORD
(
&
frame
->
record
.
m_ExReg
);
#endif
}
HCIMPLEND_RAW
void
F_CALL_CONV
HCCALL1
(
JIT_ReversePInvokeEnter
,
ReversePInvokeFrame
*
frame
)
HCIMPL1_RAW
(
void
,
JIT_ReversePInvokeEnter
,
ReversePInvokeFrame
*
frame
)
{
_ASSERTE
(
frame
!=
NULL
);
...
...
@@ -5552,8 +5553,9 @@ void F_CALL_CONV HCCALL1(JIT_ReversePInvokeEnter, ReversePInvokeFrame* frame)
INSTALL_EXCEPTION_HANDLING_RECORD
(
&
frame
->
record
.
m_ExReg
);
#endif
}
HCIMPLEND_RAW
void
F_CALL_CONV
HCCALL1
(
JIT_ReversePInvokeExitTrackTransitions
,
ReversePInvokeFrame
*
frame
)
HCIMPL1_RAW
(
void
,
JIT_ReversePInvokeExitTrackTransitions
,
ReversePInvokeFrame
*
frame
)
{
_ASSERTE
(
frame
!=
NULL
);
_ASSERTE
(
frame
->
currentThread
==
GetThread
());
...
...
@@ -5574,8 +5576,9 @@ void F_CALL_CONV HCCALL1(JIT_ReversePInvokeExitTrackTransitions, ReversePInvokeF
}
#endif
}
HCIMPLEND_RAW
void
F_CALL_CONV
HCCALL1
(
JIT_ReversePInvokeExit
,
ReversePInvokeFrame
*
frame
)
HCIMPL1_RAW
(
void
,
JIT_ReversePInvokeExit
,
ReversePInvokeFrame
*
frame
)
{
_ASSERTE
(
frame
!=
NULL
);
_ASSERTE
(
frame
->
currentThread
==
GetThread
());
...
...
@@ -5589,6 +5592,7 @@ void F_CALL_CONV HCCALL1(JIT_ReversePInvokeExit, ReversePInvokeFrame* frame)
UNINSTALL_EXCEPTION_HANDLING_RECORD
(
&
frame
->
record
.
m_ExReg
);
#endif
}
HCIMPLEND_RAW
//========================================================================
//
...
...
src/coreclr/vm/jitinterface.cpp
浏览文件 @
f37f0b98
...
...
@@ -12526,7 +12526,7 @@ void CEEJitInfo::getEHinfo(
#endif // CROSSGEN_COMPILE
#if defined(CROSSGEN_COMPILE)
EXTERN_C
ICorJitCompiler
*
__stdcall
getJit
();
EXTERN_C
ICorJitCompiler
*
getJit
();
#endif // defined(CROSSGEN_COMPILE)
#ifdef FEATURE_INTERPRETER
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录