void emitter::emitIns_R_A_I(instruction ins, emitAttr attr, regNumber reg1, GenTreeIndir* indir, int ival)
{
noway_assert(emitVerifyEncodable(ins, EA_SIZE(attr), reg1));
-
assert(IsSSEOrAVXInstruction(ins));
- assert(IsThreeOperandAVXInstruction(ins));
ssize_t offs = indir->Offset();
instrDesc* id = emitNewInstrAmdCns(attr, offs, ival);
id->idIns(ins);
id->idReg1(reg1);
- emitHandleMemOp(indir, id, IF_RWR_ARD_CNS, ins);
+ emitHandleMemOp(indir, id, IF_RRW_ARD_CNS, ins);
// Plus one for the 1-byte immediate (ival)
UNATIVE_OFFSET sz = emitInsSizeAM(id, insCodeRM(ins)) + emitGetVexPrefixAdjustedSize(ins, attr, insCodeRM(ins)) + 1;
void emitter::emitIns_R_C_I(
instruction ins, emitAttr attr, regNumber reg1, CORINFO_FIELD_HANDLE fldHnd, int offs, int ival)
{
- noway_assert(emitVerifyEncodable(ins, EA_SIZE(attr), reg1));
-
- assert(IsSSEOrAVXInstruction(ins));
- assert(IsThreeOperandAVXInstruction(ins));
-
// Static always need relocs
if (!jitStaticFldIsGlobAddr(fldHnd))
{
attr = EA_SET_FLG(attr, EA_DSP_RELOC_FLG);
}
+ noway_assert(emitVerifyEncodable(ins, EA_SIZE(attr), reg1));
+ assert(IsSSEOrAVXInstruction(ins));
+
instrDesc* id = emitNewInstrCnsDsp(attr, ival, offs);
UNATIVE_OFFSET sz = emitInsSizeCV(id, insCodeRM(ins)) + emitGetVexPrefixAdjustedSize(ins, attr, insCodeRM(ins)) + 1;
id->idIns(ins);
- id->idInsFmt(IF_RWR_RRD_MRD_CNS);
+ id->idInsFmt(IF_RRW_MRD_CNS);
id->idReg1(reg1);
id->idAddr()->iiaFieldHnd = fldHnd;
void emitter::emitIns_R_S_I(instruction ins, emitAttr attr, regNumber reg1, int varx, int offs, int ival)
{
noway_assert(emitVerifyEncodable(ins, EA_SIZE(attr), reg1));
-
assert(IsSSEOrAVXInstruction(ins));
- assert(IsThreeOperandAVXInstruction(ins));
instrDesc* id = emitNewInstrCns(attr, ival);
UNATIVE_OFFSET sz =
emitInsSizeSV(insCodeRM(ins), varx, offs) + emitGetVexPrefixAdjustedSize(ins, attr, insCodeRM(ins)) + 1;
id->idIns(ins);
- id->idInsFmt(IF_RWR_RRD_SRD_CNS);
+ id->idInsFmt(IF_RRW_SRD_CNS);
id->idReg1(reg1);
id->idAddr()->iiaLclVar.initLclVarAddr(varx, offs);
{
emitIns_R_R(INS_movaps, emitTypeSize(simdtype), reg, reg1);
}
- emitIns_R_A(ins, emitTypeSize(simdtype), reg, indir, IF_RWR_ARD);
+ emitIns_R_A(ins, emitTypeSize(simdtype), reg, indir, IF_RRW_ARD);
}
}
emitDispAddrMode(id);
break;
+ case IF_RRW_ARD_CNS:
case IF_RWR_ARD_CNS:
{
printf("%s, %s", emitRegName(id->idReg1(), attr), sstr);
break;
+ case IF_RRW_SRD_CNS:
case IF_RWR_SRD_CNS:
{
printf("%s, %s", emitRegName(id->idReg1(), attr), sstr);
emitDispClsVar(id->idAddr()->iiaFieldHnd, offs, ID_INFO_DSP_RELOC);
break;
+ case IF_RRW_MRD_CNS:
case IF_RWR_MRD_CNS:
{
printf("%s, %s", emitRegName(id->idReg1(), attr), sstr);
break;
case IF_RRW_ARD_CNS:
+ case IF_RWR_ARD_CNS:
emitGetInsAmdCns(id, &cnsVal);
code = insCodeRM(ins);
sz = emitSizeOfInsDsc(id);
break;
- case IF_RWR_ARD_CNS:
case IF_RWR_RRD_ARD_CNS:
{
emitGetInsAmdCns(id, &cnsVal);
break;
case IF_RRW_SRD_CNS:
+ case IF_RWR_SRD_CNS:
emitGetInsCns(id, &cnsVal);
code = insCodeRM(ins);
}
break;
- case IF_RWR_SRD_CNS:
case IF_RWR_RRD_SRD_CNS:
{
emitGetInsCns(id, &cnsVal);
break;
case IF_RRW_MRD_CNS:
+ case IF_RWR_MRD_CNS:
emitGetInsDcmCns(id, &cnsVal);
code = insCodeRM(ins);
sz = emitSizeOfInsDsc(id);
break;
- case IF_RWR_MRD_CNS:
case IF_RWR_RRD_MRD_CNS:
{
emitGetInsCns(id, &cnsVal);