diff options
| author | Isaac Chen <ycchen@google.com> | 2017-06-26 20:23:26 +0800 |
|---|---|---|
| committer | Isaac Chen <ycchen@google.com> | 2017-08-14 06:05:20 +0000 |
| commit | d544fb7da025b805b6e9dd61c4bfabb9272271b2 (patch) | |
| tree | a0314f538ee7e4684b5499602a474fdd4626c547 /libc/malloc_hooks/tests/malloc_hooks_tests.cpp | |
| parent | 248b5cb672a9eadde695edb7d73e9d1ed5cb0b7f (diff) | |
Build support for 32-bit armv8-a
The assembly in arm's generic strlen implementation contains deprecated
instruction sequence:
it eq ; start of IT block
ldreq ... ; 32-bit T32 insruction in IT block deprecated in armv8
This will cause compiler error because of -Winline-asm and -Werror.
The fix here is to change the sequence:
it eq
ldreq ...
bne 1f
to equivalent sequence:
bne 1f
ldr ...
The resulted sequence is (1 instruction) shorter.
See ARM for ARMv8 for details:
F6.2 Partial Deprecation of IT
... All uses of IT that apply to instructions other than a single
subsequent 16-bit instruction from a restricted set are deprecated, ...
Bug: 62895439
Test: "bionic-unit-tests-static --gtest_filter=*strlen*" on Nexus 4
(krait), emulator (armv7), and sailfish (armv8).
The test binary for the first 2 is built with armv7-a as its
TARGET_CPU_ARCH; The test binary for the last is built with
armv8-a as its TARGET_2ND_CPU_ARCH.
TARGET(_2ND)_CPU_VARIANTs of both binaries are set to "generic".
Change-Id: Ia2208b4e2ba2cad589975bc7b4617688cbb8826a
Diffstat (limited to 'libc/malloc_hooks/tests/malloc_hooks_tests.cpp')
0 files changed, 0 insertions, 0 deletions
