-
Notifications
You must be signed in to change notification settings - Fork 4.6k
/
AsmOffsetsCpu.h
125 lines (106 loc) · 4.65 KB
/
AsmOffsetsCpu.h
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
//
// This file is used by AsmOffsets.h to validate that our
// assembly-code offsets always match their C++ counterparts.
//
// NOTE: the offsets MUST be in hex notation WITHOUT the 0x prefix
#ifndef UNIX_AMD64_ABI
PLAT_ASM_SIZEOF(260, ExInfo)
PLAT_ASM_OFFSET(0, ExInfo, m_pPrevExInfo)
PLAT_ASM_OFFSET(8, ExInfo, m_pExContext)
PLAT_ASM_OFFSET(10, ExInfo, m_exception)
PLAT_ASM_OFFSET(18, ExInfo, m_kind)
PLAT_ASM_OFFSET(19, ExInfo, m_passNumber)
PLAT_ASM_OFFSET(1c, ExInfo, m_idxCurClause)
PLAT_ASM_OFFSET(20, ExInfo, m_frameIter)
PLAT_ASM_OFFSET(250, ExInfo, m_notifyDebuggerSP)
PLAT_ASM_OFFSET(0, PInvokeTransitionFrame, m_RIP)
PLAT_ASM_OFFSET(8, PInvokeTransitionFrame, m_FramePointer)
PLAT_ASM_OFFSET(10, PInvokeTransitionFrame, m_pThread)
PLAT_ASM_OFFSET(18, PInvokeTransitionFrame, m_Flags)
PLAT_ASM_OFFSET(20, PInvokeTransitionFrame, m_PreservedRegs)
PLAT_ASM_SIZEOF(230, StackFrameIterator)
PLAT_ASM_OFFSET(10, StackFrameIterator, m_FramePointer)
PLAT_ASM_OFFSET(18, StackFrameIterator, m_ControlPC)
PLAT_ASM_OFFSET(20, StackFrameIterator, m_RegDisplay)
PLAT_ASM_OFFSET(220, StackFrameIterator, m_OriginalControlPC)
PLAT_ASM_OFFSET(228, StackFrameIterator, m_pPreviousTransitionFrame)
PLAT_ASM_SIZEOF(100, PAL_LIMITED_CONTEXT)
PLAT_ASM_OFFSET(0, PAL_LIMITED_CONTEXT, IP)
PLAT_ASM_OFFSET(8, PAL_LIMITED_CONTEXT, Rsp)
PLAT_ASM_OFFSET(10, PAL_LIMITED_CONTEXT, Rbp)
PLAT_ASM_OFFSET(18, PAL_LIMITED_CONTEXT, Rdi)
PLAT_ASM_OFFSET(20, PAL_LIMITED_CONTEXT, Rsi)
PLAT_ASM_OFFSET(28, PAL_LIMITED_CONTEXT, Rax)
PLAT_ASM_OFFSET(30, PAL_LIMITED_CONTEXT, Rbx)
PLAT_ASM_OFFSET(38, PAL_LIMITED_CONTEXT, R12)
PLAT_ASM_OFFSET(40, PAL_LIMITED_CONTEXT, R13)
PLAT_ASM_OFFSET(48, PAL_LIMITED_CONTEXT, R14)
PLAT_ASM_OFFSET(50, PAL_LIMITED_CONTEXT, R15)
PLAT_ASM_OFFSET(60, PAL_LIMITED_CONTEXT, Xmm6)
PLAT_ASM_OFFSET(70, PAL_LIMITED_CONTEXT, Xmm7)
PLAT_ASM_OFFSET(80, PAL_LIMITED_CONTEXT, Xmm8)
PLAT_ASM_OFFSET(90, PAL_LIMITED_CONTEXT, Xmm9)
PLAT_ASM_OFFSET(0a0, PAL_LIMITED_CONTEXT, Xmm10)
PLAT_ASM_OFFSET(0b0, PAL_LIMITED_CONTEXT, Xmm11)
PLAT_ASM_OFFSET(0c0, PAL_LIMITED_CONTEXT, Xmm12)
PLAT_ASM_OFFSET(0d0, PAL_LIMITED_CONTEXT, Xmm13)
PLAT_ASM_OFFSET(0e0, PAL_LIMITED_CONTEXT, Xmm14)
PLAT_ASM_OFFSET(0f0, PAL_LIMITED_CONTEXT, Xmm15)
PLAT_ASM_SIZEOF(130, REGDISPLAY)
PLAT_ASM_OFFSET(78, REGDISPLAY, SP)
PLAT_ASM_OFFSET(80, REGDISPLAY, IP)
PLAT_ASM_OFFSET(88, REGDISPLAY, SSP)
PLAT_ASM_OFFSET(18, REGDISPLAY, pRbx)
PLAT_ASM_OFFSET(20, REGDISPLAY, pRbp)
PLAT_ASM_OFFSET(28, REGDISPLAY, pRsi)
PLAT_ASM_OFFSET(30, REGDISPLAY, pRdi)
PLAT_ASM_OFFSET(58, REGDISPLAY, pR12)
PLAT_ASM_OFFSET(60, REGDISPLAY, pR13)
PLAT_ASM_OFFSET(68, REGDISPLAY, pR14)
PLAT_ASM_OFFSET(70, REGDISPLAY, pR15)
PLAT_ASM_OFFSET(90, REGDISPLAY, Xmm)
#else // !UNIX_AMD64_ABI
PLAT_ASM_SIZEOF(1a0, ExInfo)
PLAT_ASM_OFFSET(0, ExInfo, m_pPrevExInfo)
PLAT_ASM_OFFSET(8, ExInfo, m_pExContext)
PLAT_ASM_OFFSET(10, ExInfo, m_exception)
PLAT_ASM_OFFSET(18, ExInfo, m_kind)
PLAT_ASM_OFFSET(19, ExInfo, m_passNumber)
PLAT_ASM_OFFSET(1c, ExInfo, m_idxCurClause)
PLAT_ASM_OFFSET(20, ExInfo, m_frameIter)
PLAT_ASM_OFFSET(198, ExInfo, m_notifyDebuggerSP)
PLAT_ASM_OFFSET(0, PInvokeTransitionFrame, m_RIP)
PLAT_ASM_OFFSET(8, PInvokeTransitionFrame, m_FramePointer)
PLAT_ASM_OFFSET(10, PInvokeTransitionFrame, m_pThread)
PLAT_ASM_OFFSET(18, PInvokeTransitionFrame, m_Flags)
PLAT_ASM_OFFSET(20, PInvokeTransitionFrame, m_PreservedRegs)
PLAT_ASM_SIZEOF(178, StackFrameIterator)
PLAT_ASM_OFFSET(10, StackFrameIterator, m_FramePointer)
PLAT_ASM_OFFSET(18, StackFrameIterator, m_ControlPC)
PLAT_ASM_OFFSET(20, StackFrameIterator, m_RegDisplay)
PLAT_ASM_OFFSET(168, StackFrameIterator, m_OriginalControlPC)
PLAT_ASM_OFFSET(170, StackFrameIterator, m_pPreviousTransitionFrame)
PLAT_ASM_SIZEOF(50, PAL_LIMITED_CONTEXT)
PLAT_ASM_OFFSET(0, PAL_LIMITED_CONTEXT, IP)
PLAT_ASM_OFFSET(8, PAL_LIMITED_CONTEXT, Rsp)
PLAT_ASM_OFFSET(10, PAL_LIMITED_CONTEXT, Rbp)
PLAT_ASM_OFFSET(18, PAL_LIMITED_CONTEXT, Rax)
PLAT_ASM_OFFSET(20, PAL_LIMITED_CONTEXT, Rbx)
PLAT_ASM_OFFSET(28, PAL_LIMITED_CONTEXT, Rdx)
PLAT_ASM_OFFSET(30, PAL_LIMITED_CONTEXT, R12)
PLAT_ASM_OFFSET(38, PAL_LIMITED_CONTEXT, R13)
PLAT_ASM_OFFSET(40, PAL_LIMITED_CONTEXT, R14)
PLAT_ASM_OFFSET(48, PAL_LIMITED_CONTEXT, R15)
PLAT_ASM_SIZEOF(88, REGDISPLAY)
PLAT_ASM_OFFSET(78, REGDISPLAY, SP)
PLAT_ASM_OFFSET(18, REGDISPLAY, pRbx)
PLAT_ASM_OFFSET(20, REGDISPLAY, pRbp)
PLAT_ASM_OFFSET(28, REGDISPLAY, pRsi)
PLAT_ASM_OFFSET(30, REGDISPLAY, pRdi)
PLAT_ASM_OFFSET(58, REGDISPLAY, pR12)
PLAT_ASM_OFFSET(60, REGDISPLAY, pR13)
PLAT_ASM_OFFSET(68, REGDISPLAY, pR14)
PLAT_ASM_OFFSET(70, REGDISPLAY, pR15)
#endif // !UNIX_AMD64_ABI