-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gc poll without HELPER_METHOD_FRAME #109378
base: main
Are you sure you want to change the base?
Changes from all commits
0fbff89
7d6a205
51c69d5
d1fccda
08fe963
12c9de2
2c0cb78
0fb7f4a
0cb8f78
aacdb2a
00b6df4
34ebcaf
f740618
e2498bb
0d03a51
367e95b
ccfafe1
5ff66b4
0586455
0f6290a
8f5448f
2152544
2c9bc7d
1d4b19a
82fcb9f
2f7c7aa
b56404e
edd2dbd
c40d2f9
ec56ef6
04ab3fc
0001a6d
b926e5d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -606,5 +606,6 @@ inline BOOL ClrFlushInstructionCache(LPCVOID pCodeAddr, size_t sizeOfCode, bool | |
// | ||
#define JIT_GetDynamicGCStaticBase JIT_GetDynamicGCStaticBase_SingleAppDomain | ||
#define JIT_GetDynamicNonGCStaticBase JIT_GetDynamicNonGCStaticBase_SingleAppDomain | ||
#define JIT_PollGC JIT_PollGC | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why are we defining the name itself? |
||
|
||
#endif // __cgencpu_h__ |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -102,6 +102,8 @@ EXTERN_C void setFPReturn(int fpSize, INT64 retVal); | |
|
||
#define FLOAT_REGISTER_SIZE 4 // each register in FloatArgumentRegisters is 4 bytes. | ||
|
||
#define JIT_PollGC JIT_PollGC | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same question as above. Why same name? |
||
|
||
//********************************************************************** | ||
// Parameter size | ||
//********************************************************************** | ||
|
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -39,6 +39,9 @@ | |||||||||||||
IMPORT g_pGetGCStaticBase | ||||||||||||||
IMPORT g_pGetNonGCStaticBase | ||||||||||||||
|
||||||||||||||
IMPORT g_pPollGC | ||||||||||||||
IMPORT g_TrapReturningThreads | ||||||||||||||
|
||||||||||||||
#ifdef WRITE_BARRIER_CHECK | ||||||||||||||
SETALIAS g_GCShadow, ?g_GCShadow@@3PEAEEA | ||||||||||||||
SETALIAS g_GCShadowEnd, ?g_GCShadowEnd@@3PEAEEA | ||||||||||||||
|
@@ -1179,6 +1182,17 @@ __HelperNakedFuncName SETS "$helper":CC:"Naked" | |||||||||||||
|
||||||||||||||
#endif ; FEATURE_SPECIAL_USER_MODE_APC | ||||||||||||||
|
||||||||||||||
LEAF_ENTRY JIT_PollGC | ||||||||||||||
ldr x9, =g_TrapReturningThreads | ||||||||||||||
ldr w9, [x9] | ||||||||||||||
cbnz w9, RarePath | ||||||||||||||
ret | ||||||||||||||
RarePath | ||||||||||||||
Comment on lines
+1188
to
+1190
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||
ldr x9, =g_pPollGC | ||||||||||||||
ldr x9, [x9] | ||||||||||||||
br x9 | ||||||||||||||
LEAF_END | ||||||||||||||
|
||||||||||||||
|
||||||||||||||
; Must be at very end of file | ||||||||||||||
END |
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -44,6 +44,9 @@ JIT_TailCallVSDLeave TEXTEQU <_JIT_TailCallVSDLeave@0> | |||||||||||||
JIT_TailCallHelper TEXTEQU <_JIT_TailCallHelper@4> | ||||||||||||||
JIT_TailCallReturnFromVSD TEXTEQU <_JIT_TailCallReturnFromVSD@0> | ||||||||||||||
|
||||||||||||||
g_pPollGC TEXTEQU <_g_pPollGC> | ||||||||||||||
g_TrapReturningThreads TEXTEQU <_g_TrapReturningThreads> | ||||||||||||||
|
||||||||||||||
EXTERN g_ephemeral_low:DWORD | ||||||||||||||
EXTERN g_ephemeral_high:DWORD | ||||||||||||||
EXTERN g_lowest_address:DWORD | ||||||||||||||
|
@@ -59,6 +62,10 @@ EXTERN _g_TailCallFrameVptr:DWORD | |||||||||||||
EXTERN @JIT_FailFast@0:PROC | ||||||||||||||
EXTERN _s_gsCookie:DWORD | ||||||||||||||
|
||||||||||||||
EXTERN g_pPollGC:DWORD | ||||||||||||||
EXTERN g_TrapReturningThreads:DWORD | ||||||||||||||
|
||||||||||||||
|
||||||||||||||
ifdef WRITE_BARRIER_CHECK | ||||||||||||||
; Those global variables are always defined, but should be 0 for Server GC | ||||||||||||||
g_GCShadow TEXTEQU <?g_GCShadow@@3PAEA> | ||||||||||||||
|
@@ -1149,4 +1156,13 @@ _JIT_StackProbe_End@0 PROC | |||||||||||||
ret | ||||||||||||||
_JIT_StackProbe_End@0 ENDP | ||||||||||||||
|
||||||||||||||
@JIT_PollGC@0 PROC public | ||||||||||||||
cmp [g_TrapReturningThreads], 0 | ||||||||||||||
jnz RarePath | ||||||||||||||
ret | ||||||||||||||
RarePath: | ||||||||||||||
Comment on lines
+1161
to
+1163
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||
mov eax, g_pPollGC | ||||||||||||||
jmp eax | ||||||||||||||
@JIT_PollGC@0 ENDP | ||||||||||||||
|
||||||||||||||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.