The use of thread local storage (TLS) requires the thread pointer to access thread specific data.
LLVM generates subroutine calls to a ABI specified function "__eabi_read_tp" to get hold of the thread pointer.
Unfortunately, LLVM uses the ARM coding of the branch long instructions in Thumb mode, instead of the Thumb encoding.
This patch enables the correct encoding for the Thumb branch long instruction.
Please review, thanks,