Skip to content

Commit 41c4c8a

Browse files
committed
misc fixes
1 parent 90982e4 commit 41c4c8a

File tree

7 files changed

+32
-20
lines changed

7 files changed

+32
-20
lines changed

src/coreclr/jit/lower.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -5499,9 +5499,10 @@ GenTree* Lowering::ResetGCGen()
54995499

55005500
GenTree* base = new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, TYP_I_IMPL, comp->info.compLvFrameListRoot);
55015501

5502-
GenTree* stateNode = new (comp, GT_CNS_INT) GenTreeIntCon(TYP_BYTE, 0);
5503-
GenTree* addr = new (comp, GT_LEA) GenTreeAddrMode(TYP_I_IMPL, base, nullptr, 1, pInfo->offsetOfGCState + sizeof(uint32_t));
5504-
GenTree* storeGcGen = new (comp, GT_STOREIND) GenTreeStoreInd(TYP_BYTE, addr, stateNode);
5502+
GenTree* stateNode = new (comp, GT_CNS_INT) GenTreeIntCon(TYP_BYTE, 0);
5503+
GenTree* addr =
5504+
new (comp, GT_LEA) GenTreeAddrMode(TYP_I_IMPL, base, nullptr, 1, pInfo->offsetOfGCState + sizeof(uint32_t));
5505+
GenTree* storeGcGen = new (comp, GT_STOREIND) GenTreeStoreInd(TYP_BYTE, addr, stateNode);
55055506
return storeGcGen;
55065507
}
55075508

src/coreclr/nativeaot/Runtime/GCHelpers.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ static Object* GcAllocInternal(MethodTable* pEEType, uint32_t uFlags, uintptr_t
476476
ASSERT(!pThread->IsDoNotTriggerGcSet());
477477
ASSERT(pThread->IsCurrentThreadInCooperativeMode());
478478

479-
_ASSERT_EXPR(pThread->GetGeneration() == 0, "generation should be reset when running managed code");
479+
ASSERT_MSG(pThread->GetGeneration() == 0, "generation should be reset when running managed code");
480480

481481
if (pEEType->ContainsPointers())
482482
{

src/coreclr/nativeaot/Runtime/arm/PInvoke.S

+3-3
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ LEAF_ENTRY RhpPInvokeReturn, _TEXT
5151
mov r2, #0
5252
str r2, [r3, #OFFSETOF__Thread__m_pTransitionFrame]
5353

54-
PREPARE_EXTERNAL_VAR_INDIRECT RhpTrapThreads, r3
55-
cbnz r3, LOCAL_LABEL(ReturnRareTrapThread) // TrapThreadsFlags_None = 0
54+
PREPARE_EXTERNAL_VAR_INDIRECT RhpTrapThreads, r2
55+
cbnz r2, LOCAL_LABEL(ReturnRareTrapThread) // TrapThreadsFlags_None = 0
5656

57-
str r2, [x10, #OFFSETOF__Thread__m_generation]
57+
str r2, [r3, #OFFSETOF__Thread__m_generation]
5858
bx lr
5959
LOCAL_LABEL(ReturnRareTrapThread):
6060
// passing transition frame pointer in r0

src/coreclr/vm/arm/asmconstants.h

+8-4
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,17 @@ ASMCONSTANTS_C_ASSERT(UnmanagedToManagedFrame__m_pvDatum == offsetof(UnmanagedTo
134134

135135
#endif // FEATURE_COMINTEROP
136136

137-
#define Thread__m_fPreemptiveGCDisabled 0x04
138-
ASMCONSTANTS_C_ASSERT(Thread__m_fPreemptiveGCDisabled == offsetof(Thread, m_fPreemptiveGCDisabled));
139-
#define Thread_m_fPreemptiveGCDisabled Thread__m_fPreemptiveGCDisabled
140-
137+
#define Thread__m_fPreemptiveGCDisabled 0x00
138+
#define Thread__m_generation 0x04
141139
#define Thread__m_pFrame 0x08
140+
141+
ASMCONSTANTS_C_ASSERT(Thread__m_fPreemptiveGCDisabled == offsetof(Thread, m_fPreemptiveGCDisabled));
142+
ASMCONSTANTS_C_ASSERT(Thread__m_generation == offsetof(Thread, m_generation));
142143
ASMCONSTANTS_C_ASSERT(Thread__m_pFrame == offsetof(Thread, m_pFrame));
144+
143145
#define Thread_m_pFrame Thread__m_pFrame
146+
#define Thread_m_fPreemptiveGCDisabled Thread__m_fPreemptiveGCDisabled
147+
#define Thread_m_generation Thread__m_generation
144148

145149
#define DomainLocalModule__m_pDataBlob 0x18
146150
ASMCONSTANTS_C_ASSERT(DomainLocalModule__m_pDataBlob == offsetof(DomainLocalModule, m_pDataBlob));

src/coreclr/vm/arm/pinvokestubs.S

+2
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@
159159
ldr r2, [r2]
160160
cbnz r2, LOCAL_LABEL(RarePath)
161161

162+
str r2, [r1, #Thread_m_generation]
163+
162164
// pThread->m_pFrame = pFrame->m_Next
163165
ldr r2, [r0, #Frame__m_Next]
164166
str r2, [r1, #Thread_m_pFrame]

src/coreclr/vm/i386/asmconstants.h

+6-9
Original file line numberDiff line numberDiff line change
@@ -174,17 +174,14 @@ ASMCONSTANTS_C_ASSERT(CORINFO_ArgumentException_ASM == CORINFO_ArgumentException
174174

175175

176176

177-
#define Thread__m_fPreemptiveGCDisabled 0x00
178-
#define Thread__m_generation 0x04
179-
#define Thread__m_pFrame 0x08
177+
#define Thread_m_fPreemptiveGCDisabled 0x00
178+
ASMCONSTANTS_C_ASSERT(Thread_m_fPreemptiveGCDisabled == offsetof(Thread, m_fPreemptiveGCDisabled))
180179

181-
ASMCONSTANTS_C_ASSERT(Thread__m_fPreemptiveGCDisabled == offsetof(Thread, m_fPreemptiveGCDisabled));
182-
ASMCONSTANTS_C_ASSERT(Thread__m_generation == offsetof(Thread, m_generation));
183-
ASMCONSTANTS_C_ASSERT(Thread__m_pFrame == offsetof(Thread, m_pFrame));
180+
#define Thread_m_generation 0x04
181+
ASMCONSTANTS_C_ASSERT(Thread_m_generation == offsetof(Thread, m_generation))
184182

185-
#define Thread_m_pFrame Thread__m_pFrame
186-
#define Thread_m_fPreemptiveGCDisabled Thread__m_fPreemptiveGCDisabled
187-
#define Thread_m_generation Thread__m_generation
183+
#define Thread_m_pFrame 0x08
184+
ASMCONSTANTS_C_ASSERT(Thread_m_pFrame == offsetof(Thread, m_pFrame))
188185

189186

190187
#ifdef FEATURE_HIJACK

src/coreclr/vm/jithelpers.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -5980,6 +5980,10 @@ HCIMPL3_RAW(void, JIT_ReversePInvokeEnterTrackTransitions, ReversePInvokeFrame*
59805980
// not the next instruction in the stub.
59815981
JIT_ReversePInvokeEnterRare2(frame, _ReturnAddress(), GetMethod(handle)->IsILStub() ? (UMEntryThunk*)secretArg : (UMEntryThunk*)NULL);
59825982
}
5983+
else
5984+
{
5985+
thread->m_generation = 0;
5986+
}
59835987
}
59845988
else
59855989
{
@@ -6015,6 +6019,10 @@ HCIMPL1_RAW(void, JIT_ReversePInvokeEnter, ReversePInvokeFrame* frame)
60156019
{
60166020
JIT_ReversePInvokeEnterRare2(frame, _ReturnAddress());
60176021
}
6022+
else
6023+
{
6024+
thread->m_generation = 0;
6025+
}
60186026
}
60196027
else
60206028
{

0 commit comments

Comments
 (0)