ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry.

In T32 some of the instructions (add, mov, etc) outside an IT block
have only 32-bit encodings. But there are 16-bit flag setting
versions of these instructions (adds, movs, etc). In most of the
cases in ART we don't care if the instructions keep flags or not;
thus we can benefit from smaller code size.
VIXL will never generate flag setting versions (for example, adds
for Add macro instruction) unless vixl32::DontCare option is
explicitly specified. That's why we introduce wrappers to use
DontCare option by default.

This patch reduces code size of compiled code. For example,
core.oat has shown over 1.16% code size reduction.

Also contains a fix for GenerateFrameEntry.

Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target

Change-Id: Id55a16f34208e7b702016ee83e2f2d0daeb42eaf
4 files changed