[interp] Remove hack for nint/nfloat (#21395)mono-6.12.0.165
commit45efaa3b6f9bb6aa5e6e2ef82d08ad849a40a34c
authorVlad Brezae <brezaevlad@gmail.com>
Thu, 13 Jan 2022 17:11:45 +0000 (13 19:11 +0200)
committerGitHub <noreply@github.com>
Thu, 13 Jan 2022 17:11:45 +0000 (13 19:11 +0200)
tree77cf2490451daa7968269bfdecfd9bea3dc3c40c
parenta5d1934898bfdf06662cee5799782b09ce8afe5a
[interp] Remove hack for nint/nfloat (#21395)

These structures are valuetypes, but their mint_type is a primitive. This means that a LDFLD applied on the type would have attempted to do a pointer dereference, because it saw that the current top of stack is not STACK_TYPE_VT. This was fixed in the past by passing the managed pointer to the valuetype rather than the valuetype itself, against the normal call convention, which lead to inconsistencies in the code.

This commit removes that hack and fixes the problem by ignoring LDFLD applied to nint/nfloat valuetypes in the first place.
mono/mini/interp/transform.c