[mini] Fix typo in mono_decompose_vtype_opts#90825
Conversation
Without this, if some previous instruction already created a vreg for ins->dest (for example if we are doing multiple passes over the basic block because `restart == TRUE`) we will use an incorrect vreg when decomposing the current VMOVE Fixes dotnet#90800
This is used by a CreateSpan optimization that needs access to the MonoClassField* For other cases of a bare LDTOKEN (such as hand-written IL that calls LDTOKEN on a type but doesn't follow it up with a call to `GetTypeFromHandle` leave the opcode as a VMOVE (from the `EMIT_NEW_TEMPLOAD` above))
|
TODO: need to add a regression test. attn @SamMonoRT we will need to backport this to net8. |
|
@simonrozsival @rolfbjarne do we need to try to get this into rc1, is it completely blocking ios? As a workaround, emitting roslyn-style IL will avoid this issue (because there will be an intervening ie instead of |
|
if this is a blocker for rc1 we should open the backport now and send the email |
|
/backport to release/8.0-rc1 |
|
Started backporting to release/8.0-rc1: https://github.com/dotnet/runtime/actions/runs/5907349234 |
|
@lewing I'm offline for at least another 3 hours. |
Without this, if some previous instruction already created a vreg for
ins->dest(for example if we are doing multiple passes over the basic block becauserestart == TRUE) we will use an incorrect vreg for thesrcwhen decomposing the current VMOVEAdditionally, only emit
OP_LDTOKEN_FIELDif we loaded a field tokenThis is used by a CreateSpan intrinsic #81695 that needs access to the
MonoClassField*For other cases of a bare LDTOKEN (such as hand-written IL that calls LDTOKEN on a type but doesn't follow it up with a call to
GetTypeFromHandleleave the opcode as a VMOVE (from theEMIT_NEW_TEMPLOADabove))Fixes #90800