GenTree* testTree;
if (addrOfCaptureThreadGlobal != nullptr)
{
- testTree = Ind(AddrGen(addrOfCaptureThreadGlobal));
+ testTree = AddrGen(addrOfCaptureThreadGlobal);
}
else
{
- testTree = Ind(Ind(AddrGen(pAddrOfCaptureThreadGlobal)));
+ testTree = Ind(AddrGen(pAddrOfCaptureThreadGlobal));
}
- return comp->gtNewOperNode(GT_RETURNTRAP, TYP_INT, testTree);
+ return comp->gtNewOperNode(GT_RETURNTRAP, TYP_INT, Ind(testTree, TYP_INT));
}
//------------------------------------------------------------------------
GenTree* AddrGen(ssize_t addr);
GenTree* AddrGen(void* addr);
- GenTree* Ind(GenTree* tree)
+ GenTree* Ind(GenTree* tree, var_types type = TYP_I_IMPL)
{
- return comp->gtNewOperNode(GT_IND, TYP_I_IMPL, tree);
+ return comp->gtNewOperNode(GT_IND, type, tree);
}
GenTree* PhysReg(regNumber reg, var_types type = TYP_I_IMPL)
;; Check return trap
ldr x9, =g_TrapReturningThreads
- ldr x9, [x9]
- cbnz x9, RarePath
+ ldr w9, [x9]
+ cbnz w9, RarePath
;; pThread->m_pFrame = pFrame->m_Next
ldr x9, [x0, #Frame__m_Next]
IMPORT g_lowest_address
IMPORT g_highest_address
IMPORT g_card_table
- IMPORT g_TrapReturningThreads
IMPORT g_dispatch_cache_chain_success_counter
#ifdef WRITE_BARRIER_CHECK
SETALIAS g_GCShadow, ?g_GCShadow@@3PEAEEA
// Check return trap
PREPARE_EXTERNAL_VAR g_TrapReturningThreads, x9
- ldr x9, [x9]
- cbnz x9, LOCAL_LABEL(RarePath)
+ ldr w9, [x9]
+ cbnz w9, LOCAL_LABEL(RarePath)
// pThread->m_pFrame = pFrame->m_Next
ldr x9, [x0, #Frame__m_Next]