[jit] Decompose long immediate shifts
authorVlad Brezae <brezaevlad@gmail.com>
Wed, 10 Feb 2016 09:55:17 +0000 (11:55 +0200)
committerVlad Brezae <brezaevlad@gmail.com>
Mon, 11 Apr 2016 16:21:32 +0000 (19:21 +0300)
commit81a6080fd4a3cb01bd1f09b1a268eef482d8f1e7
treed70e3d4093fae11f7cd47a368f5b47eb9d61da38
parente097ce511153036b9146ee9ca32b766b260e6d1e
[jit] Decompose long immediate shifts

We decompose them as part of the cprop pass to handle more immediates and to further propagate copies.

The native backend of some architectures (for example x86) may support long shifts with specialized instructions. Even there, this still makes immediate shifts 2 times faster because long ops are poorly handled by the jit.

On arm, where we were emulating, this makes long immediate shifts 3-5 times faster.
mono/mini/decompose.c
mono/mini/local-propagation.c