#ifdef _TARGET_ARM64_
regNumber targetReg = REG_ZR;
#else
- regNumber targetReg = tree->gtRegNum;
+ regNumber targetReg = tree->GetSingleTempReg();
#endif
getEmitter()->emitIns_R_R_I(INS_ldr, EA_4BYTE, targetReg, addrReg, 0);
break;
case GT_NULLCHECK:
- // Although NULLCHECK is defined as GTK_NOVALUE, it requires a target
- // register on ARM, as it is implemented as a load.
- info->dstCount = 1;
- info->srcCount = 1;
- info->isLocalDefUse = true;
- // null check is an indirection on an addr
- TreeNodeInfoInitIndir(tree->AsIndir());
+ // It requires a internal register on ARM, as it is implemented as a load
+ assert(info->dstCount == 0);
+ info->srcCount = 1;
+ info->internalIntCount = 1;
break;
case GT_IND:
break;
case GT_NULLCHECK:
- // Unlike ARM, ARM64 implements NULLCHECK as a load to REG_ZR, so no target register
+ // Unlike ARM, ARM64 implements NULLCHECK as a load to REG_ZR, so no internal register
// is required, and it is not a localDefUse.
assert(info->dstCount == 0);
info->srcCount = 1;
- // null check is an indirection on an addr
- TreeNodeInfoInitIndir(tree->AsIndir());
break;
case GT_IND: