ARM64: Fix Small Operation For optOptimizeBools
authorKyungwoo Lee <kyulee@microsoft.com>
Thu, 23 Jun 2016 22:30:08 +0000 (15:30 -0700)
committerKyungwoo Lee <kyulee@microsoft.com>
Fri, 24 Jun 2016 20:07:06 +0000 (13:07 -0700)
commit1ba04a0d6deaae6152c816bbde33430fd73b088a
tree1ffbba5252eaa860590d5fd7560911db2d7efd22
parente0787c6f35d5cf9e440461cc252fe92d0d9bce19
ARM64: Fix Small Operation For optOptimizeBools

Fixes https://github.com/dotnet/coreclr/issues/5955

When merging two boolean operations (cmp/jmp) in optOptimizeBools, JIT
creates type based on operand type.
There is a case the operand type is bool (1 byte) so JIT creates a tree
that does 1 byte operation which arm64 cannot encode.
The fix is to bail out such case for arm in general.

This passes all 1375 tests in System.Net.Http.Unit.Tests.
src/jit/optimizer.cpp