From 8f840f805579896809f6a17705402a85793ebce9 Mon Sep 17 00:00:00 2001 From: Artem Serov Date: Thu, 15 Dec 2016 17:56:27 +0000 Subject: ARM: Fix vixl related branch issue in JNI. Fix VIXL asserts in EncodeLabelFor in JNI macro assembler when label is out of range of 16-bit branch (now a veneer is correctly used). bug:32545704 Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target Change-Id: Ie6401394cf364daeaaf107b42275997d2edf5b6d --- compiler/utils/assembler_thumb_test.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'compiler/utils/assembler_thumb_test.cc') diff --git a/compiler/utils/assembler_thumb_test.cc b/compiler/utils/assembler_thumb_test.cc index 50a1d9fd98..4e9b619979 100644 --- a/compiler/utils/assembler_thumb_test.cc +++ b/compiler/utils/assembler_thumb_test.cc @@ -1717,6 +1717,11 @@ TEST_F(ArmVIXLAssemblerTest, VixlJniHelpers) { __ ExceptionPoll(scratch_register, 0); + // Push the target out of range of branch emitted by ExceptionPoll. + for (int i = 0; i < 64; i++) { + __ Store(FrameOffset(2047), scratch_register, 4); + } + __ DecreaseFrameSize(4096); __ DecreaseFrameSize(32); __ RemoveFrame(frame_size, callee_save_regs); -- cgit v1.2.3-59-g8ed1b