[interp] Optimize enum Hasflag (#14173)
commit6d9c4c24d243b850381ff724cef7bd3e2054deb1
authorVlad Brezae <brezaevlad@gmail.com>
Sat, 27 Apr 2019 09:14:16 +0000 (27 12:14 +0300)
committerGitHub <noreply@github.com>
Sat, 27 Apr 2019 09:14:16 +0000 (27 12:14 +0300)
treefc1e27d894336b2a1380872e57a3682e06a9afd2
parent5d9ecd7112bd877df234ca7edac35de02b8c27c8
[interp] Optimize enum Hasflag (#14173)

* [interp] Optimize enum.HasFlag for csc pattern

Avoid boxing and slow call. Makes it 100x faster.

* [interp] Optimize enum.HasFlag for mcs pattern

* [interp] Transform ldc.i4 + conv.i8 into ldc.i8

Simplifies code, making enum.HasFlag optimization work for long enums.
mono/mini/interp/interp.c
mono/mini/interp/mintops.def
mono/mini/interp/transform.c