-
Notifications
You must be signed in to change notification settings - Fork 5.1k
[mini] Fix typo in mono_decompose_vtype_opts #90825
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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 thesrc
when decomposing the current VMOVEAdditionally, only emit
OP_LDTOKEN_FIELD
if 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
GetTypeFromHandle
leave the opcode as a VMOVE (from theEMIT_NEW_TEMPLOAD
above))Fixes #90800