During morphing, block op assignments had their children set to
the "IND" morph context. This is incorrect. Previously, block
ops would "incorporate" the "IND-ness" of their children. However,
now, the operands will be a IND/BLK/OBJ node explicitly. Deleting
this incorrect code enables other changes, not yet merged, to work.
This causes no amd64 SPMI desktop asm diffs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
87ebd5f4fca70a50d51e5503d13b4e5a05d8d712
// The SIMD type in question could be Vector2f which is 8-bytes in size.
// The below check is to make sure that we don't turn that copyblk
// into a assignment, since rationalizer logic will transform the
- // copyblk apropriately. Otherwise, the transormation made in this
+ // copyblk appropriately. Otherwise, the transformation made in this
// routine will prevent rationalizer logic and we might end up with
// GT_ADDR(GT_SIMD) node post rationalization, leading to a noway assert
// in codegen.
// comma list. The left arg (op1) gets a fresh context.
subMac1 = nullptr;
break;
- case GT_ASG:
- if (tree->OperIsBlkOp())
- {
- subMac1 = &subIndMac1;
- }
- break;
case GT_OBJ:
case GT_BLK:
case GT_DYN_BLK:
}
}
break;
- case GT_ASG:
- if (tree->OperIsBlkOp())
- {
- mac = &subIndMac2;
- }
- break;
default:
break;
}