Uh oh!
There was an error while loading. Please reload this page.
[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 Fixesdotnet#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))
lambdageek
commented
Aug 18, 2023
TODO: need to add a regression test. attn @SamMonoRT we will need to backport this to net8. |
lambdageek
commented
Aug 18, 2023
@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 |
lewing
commented
Aug 18, 2023
if this is a blocker for rc1 we should open the backport now and send the email |
lambdageek
commented
Aug 18, 2023
/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