forked from dotnet/runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJitHelpers_SingleAppDomain.asm
46 lines (36 loc) · 1.48 KB
/
JitHelpers_SingleAppDomain.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
; Licensed to the .NET Foundation under one or more agreements.
; The .NET Foundation licenses this file to you under the MIT license.
; ***********************************************************************
; File: JitHelpers_SingleAppDomain.asm
; ***********************************************************************
include AsmMacros.inc
include asmconstants.inc
; Min amount of stack space that a nested function should allocate.
MIN_SIZE equ 28h
EXTERN g_pGetGCStaticBase:QWORD
EXTERN g_pGetNonGCStaticBase:QWORD
LEAF_ENTRY JIT_GetDynamicNonGCStaticBase_SingleAppDomain, _TEXT
; If class is not initialized, bail to C++ helper
mov rax, [rcx + OFFSETOF__DynamicStaticsInfo__m_pNonGCStatics]
test al, 1
jnz CallHelper
REPRET
align 16
CallHelper:
mov rcx, [rcx + OFFSETOF__DynamicStaticsInfo__m_pMethodTable]
mov rax, g_pGetNonGCStaticBase
TAILJMP_RAX
LEAF_END JIT_GetDynamicNonGCStaticBase_SingleAppDomain, _TEXT
LEAF_ENTRY JIT_GetDynamicGCStaticBase_SingleAppDomain, _TEXT
; If class is not initialized, bail to C++ helper
mov rax, [rcx + OFFSETOF__DynamicStaticsInfo__m_pGCStatics]
test al, 1
jnz CallHelper
REPRET
align 16
CallHelper:
mov rcx, [rcx + OFFSETOF__DynamicStaticsInfo__m_pMethodTable]
mov rax, g_pGetGCStaticBase
TAILJMP_RAX
LEAF_END JIT_GetDynamicGCStaticBase_SingleAppDomain, _TEXT
end