OSDN Git Service

ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible.
authorArtem Serov <artem.serov@linaro.org>
Mon, 12 Dec 2016 15:51:15 +0000 (15:51 +0000)
committerArtem Serov <artem.serov@linaro.org>
Fri, 16 Dec 2016 14:34:35 +0000 (14:34 +0000)
commit517d9f6678c5d577f25777bc000a83afd5503874
tree3cff9450980d4e0a11468b24100331778cf16493
parentc5fcb44405b436e8671e0c8c96b6d6d924649d1e
ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible.

If conditional branch's target is known to be not far from branch
(within the range of 254 bytes), 16-bit encoding can be used.
However, we can't assume this by default for branches to a basic
block or a slow path; if we do and fail the range requirement,
veneer pool will be emitted.

Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target
Change-Id: I2fbe6d1a43bc2d1b54472c2c3fe05a575e5634f2
compiler/optimizing/code_generator_arm_vixl.cc
compiler/optimizing/intrinsics_arm_vixl.cc
compiler/utils/arm/assembler_arm_vixl.cc
compiler/utils/arm/assembler_arm_vixl.h