On 5 August 2017 at 17:33, James Cowgill <jcowg...@debian.org> wrote:
> On 04/08/17 09:58, Jiong Wang wrote:
>> "adreq lr,X(ff_h264_idct_add_neon) +CONFIG_THUMB"
>> .eqv ff_h264_idct_add_neon_without_func_type, X(ff_h264_idct_add_neon)
>> adreq lr, ff_h264_idct_add_neon_without_func_type +CONFIG_THUMB
>> might be a solution. The idea is we use .eqv to remove the function
>> attribute, so the assembler won't set LSB in any case.
> On the technical side, does having the LSB clear when executing a blx
> instruction cause a mode change out of Thumb, or does it retain the
> mode? I think all the code in that file is compiled in the same mode, so
> if the mode is retained then simply dropping +CONFIG_THUMB might work.
All the usual register branch instructions set or reset T32 (Thumb)
mode according to bit 0 of the target address. This is to enable
"interworking": an A32 function can call a T32 function and vice
What Jiong suggested, above, looks like the right solution for now.