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)
commit9ba58fbf9e6f4d714288953d060f0291d3e3b8d9
treef6456d6603ecfaee56e998c5e24cf8d6848ff51c
parentf2d510c89564d1701cc5d750cec5fd0537fb9733
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.

Commit migrated from https://github.com/dotnet/coreclr/commit/1ba04a0d6deaae6152c816bbde33430fd73b088a
src/coreclr/src/jit/optimizer.cpp