insFormat fmt = id->idInsFmt();
emitAttr size = id->idOpSize();
unsigned char callInstrSize = 0;
- ssize_t condcode;
#ifdef DEBUG
bool dspOffs = emitComp->opts.dspGCtbls || !emitComp->opts.disDiffable;
switch (fmt)
{
int imm;
- int imm0;
- int mask;
- int bit;
BYTE* addr;
regMaskTP gcrefRegs;
regMaskTP byrefRegs;
#ifdef FEATURE_ITINSTRUCTION
case IF_T1_B: // T1_B ........cccc.... cond
+ {
assert(id->idGCref() == GCT_NONE);
- condcode = emitGetInsSC(id);
- dst = emitOutputIT(dst, ins, fmt, condcode);
- sz = SMALL_IDSC_SIZE;
- break;
+ ssize_t condcode = emitGetInsSC(id);
+ dst = emitOutputIT(dst, ins, fmt, condcode);
+ sz = SMALL_IDSC_SIZE;
+ }
+ break;
#endif // FEATURE_ITINSTRUCTION
case IF_T1_C: // T1_C .....iiiiinnnddd R1 R2 imm5
BYTE* srcAddr;
BYTE* dstAddr;
ssize_t distVal;
- ssize_t loBits;
// Set default ins/fmt from id.
instruction ins = id->idIns();
insFormat fmt = id->idInsFmt();
emitAttr size = id->idOpSize();
unsigned char callInstrSize = 0;
- unsigned condcode;
#ifdef DEBUG
#if DUMP_GC_TABLES
ssize_t imm;
ssize_t index;
ssize_t index2;
- unsigned scale;
unsigned cmode;
unsigned immShift;
- bool hasShift;
- emitAttr extSize;
emitAttr elemsize;
emitAttr datasize;
ssize_t imm;
int doffs;
bool isExtendAlias;
- bool canEncode;
bitMaskImm bmi;
halfwordImm hwi;
condFlagsImm cfi;
{
switch (oper)
{
- GenTreeIntConCommon* con;
-
#ifdef _TARGET_ARM_
case GT_CNS_LNG:
costSz = 9;
goto COMMON_CNS;
case GT_CNS_INT:
-
+ {
// If the constant is a handle then it will need to have a relocation
// applied to it.
// Any constant that requires a reloc must use the movw/movt sequence
//
- con = tree->AsIntConCommon();
+ GenTreeIntConCommon* con = tree->AsIntConCommon();
if (con->ImmedValNeedsReloc(this) || !codeGen->validImmForInstr(INS_mov, tree->gtIntCon.gtIconVal))
{
costEx = 1;
}
goto COMMON_CNS;
+ }
#elif defined _TARGET_XARCH_
// If the constant is a handle then it will need to have a relocation
// applied to it.
//
- con = tree->AsIntConCommon();
+ GenTreeIntConCommon* con = tree->AsIntConCommon();
bool iconNeedsReloc = con->ImmedValNeedsReloc(this);
assert((simdSize == 16) || (simdSize == 0));
CORINFO_ARG_LIST_HANDLE argList = sig->args;
- CORINFO_CLASS_HANDLE argClass;
var_types argType = TYP_UNKNOWN;
switch (intrinsic)
// The callTarget tree needs to be sequenced.
LIR::Range callTargetRange = LIR::SeqTree(comp, callTarget);
- fgArgTabEntry* argEntry;
-
#if defined(_TARGET_AMD64_) || defined(_TARGET_ARM_)
-// For ARM32 and AMD64, first argument is CopyRoutine and second argument is a place holder node.
+ // For ARM32 and AMD64, first argument is CopyRoutine and second argument is a place holder node.
+ fgArgTabEntry* argEntry;
#ifdef DEBUG
argEntry = comp->gtArgEntryByArgNum(call, 0);
unsigned numArgs = call->fgArgInfo->ArgCount();
+ fgArgTabEntry* argEntry;
+
// arg 0 == callTarget.
argEntry = comp->gtArgEntryByArgNum(call, numArgs - 1);
assert(argEntry != nullptr);
void Lowering::ContainCheckBoundsChk(GenTreeBoundsChk* node)
{
assert(node->OperIsBoundsCheck());
- GenTree* other;
if (!CheckImmedAndMakeContained(node, node->gtIndex))
{
CheckImmedAndMakeContained(node, node->gtArrLen);
switch (tree->OperGet())
{
- GenTree* op1;
- GenTree* op2;
-
case GT_LCL_VAR:
case GT_LCL_FLD:
{
{
// TODO-ARM: Implement other type of intrinsics (round, sqrt and etc.)
// Both operand and its result must be of the same floating point type.
- op1 = tree->gtGetOp1();
+ GenTree* op1 = tree->gtGetOp1();
assert(varTypeIsFloating(op1));
assert(op1->TypeGet() == tree->TypeGet());
BuildUse(op1);
switch (tree->OperGet())
{
- GenTree* op1;
- GenTree* op2;
-
default:
srcCount = BuildSimple(tree);
break;
(tree->gtIntrinsic.gtIntrinsicId == CORINFO_INTRINSIC_Sqrt));
// Both operand and its result must be of the same floating point type.
- op1 = tree->gtGetOp1();
+ GenTree* op1 = tree->gtGetOp1();
assert(varTypeIsFloating(op1));
assert(op1->TypeGet() == tree->TypeGet());
// Otherwise, it will return TYP_UNKNOWN and we will pass by reference.
bool passedInRegisters = false;
- structPassingKind kind;
- CORINFO_CLASS_HANDLE clsHnd = varDsc->lvVerTypeInfo.GetClassHandle();
- var_types structBaseType = getPrimitiveTypeForStruct(lvaLclExactSize(tmpVarNum), clsHnd);
+ CORINFO_CLASS_HANDLE clsHnd = varDsc->lvVerTypeInfo.GetClassHandle();
+ var_types structBaseType = getPrimitiveTypeForStruct(lvaLclExactSize(tmpVarNum), clsHnd);
if (structBaseType != TYP_UNKNOWN)
{
void Compiler::fgMorphSystemVStructArgs(GenTreeCall* call, bool hasStructArgument)
{
unsigned flagsSummary = 0;
- GenTree* args;
- GenTree* argx;
if (hasStructArgument)
{
fgArgInfo* allArgInfo = call->fgArgInfo;
- for (args = call->gtCallArgs; args != nullptr; args = args->gtOp.gtOp2)
+ for (GenTree* args = call->gtCallArgs; args != nullptr; args = args->gtOp.gtOp2)
{
// For late arguments the arg tree that is overridden is in the gtCallLateArgs list.
// For such late args the gtCallArgList contains the setup arg node (evaluating the arg.)
for (unsigned i = 0; i < pHeader->CountOfUnwindCodes; i++)
{
- unsigned offset;
const UNWIND_CODE* const pCode = &(pHeader->UnwindCode[i]);
switch (pCode->UnwindOp)
{
#ifdef UNIX_AMD64_ABI
case UWOP_SET_FPREG_LARGE:
+ {
printf(" CodeOffset: 0x%02X UnwindOp: UWOP_SET_FPREG_LARGE (%u) OpInfo: Unused (%u)\n",
pCode->CodeOffset, pCode->UnwindOp, pCode->OpInfo); // This should be zero
i++;
- offset = *(ULONG*)&(pHeader->UnwindCode[i]);
+ unsigned offset = *(ULONG*)&(pHeader->UnwindCode[i]);
i++;
printf(" Scaled Offset: %u * 16 = %u = 0x%08X\n", offset, offset * 16, offset * 16);
if ((offset & 0xF0000000) != 0)
{
printf(" Illegal unscaled offset: too large\n");
}
- break;
+ }
+ break;
#endif // UNIX_AMD64_ABI