Change `callvirt` into `calli` for virtual delegates (#83461)
authorVlad-Alexandru Ionescu <114913836+LeVladIonescu@users.noreply.github.com>
Wed, 26 Apr 2023 06:27:29 +0000 (08:27 +0200)
committerGitHub <noreply@github.com>
Wed, 26 Apr 2023 06:27:29 +0000 (08:27 +0200)
commit2677eb26595966013d73d6d04e4350ecb09b71b3
tree80482fcf1ddbcb2c26092058abd488dbd745c777
parent63a7a13190448f1ba5b3b449f1b9628d042d209d
Change `callvirt` into `calli` for virtual delegates (#83461)

JIT delegates do not depend on the target method and an call is used

---------

Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-2.local>
Co-authored-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-5.local>
13 files changed:
src/mono/mono/metadata/icall-signatures.h
src/mono/mono/metadata/icall.c
src/mono/mono/metadata/jit-icall-reg.h
src/mono/mono/metadata/loader-internals.h
src/mono/mono/metadata/marshal-lightweight.c
src/mono/mono/metadata/marshal.c
src/mono/mono/metadata/marshal.h
src/mono/mono/metadata/object-internals.h
src/mono/mono/mini/mini-runtime.c
src/tests/JIT/Methodical/delegate/GSDelegate.cs [new file with mode: 0644]
src/tests/JIT/Methodical/delegate/GSDelegate.csproj [new file with mode: 0644]
src/tests/JIT/Methodical/delegate/VirtualDelegate.cs [new file with mode: 0644]
src/tests/JIT/Methodical/delegate/VirtualDelegate.csproj [new file with mode: 0644]