builtins: Add ARM Thumb1 implementation for uidiv and uidivmod
authorWeiming Zhao <weimingz@codeaurora.org>
Mon, 5 Dec 2016 21:40:36 +0000 (21:40 +0000)
committerWeiming Zhao <weimingz@codeaurora.org>
Mon, 5 Dec 2016 21:40:36 +0000 (21:40 +0000)
commitadf4258f50f79c4fad8ac3b7bb73f7235556b6c8
treee6fbd9c3df047e0ddea5fb80a2aa5ba8add04eb7
parent6ad7b9f83712f171acec4d55c3b295c15cb3037c
builtins: Add ARM Thumb1 implementation for uidiv and uidivmod

Summary:
The current uidiv supports archs without clz. However, the asm is for thumb2/arm.
For uidivmod, the existing code calls the C version of uidivmodsi4, which then calls uidiv. The extra push/pop/bl makes it less efficient.

Reviewers: jmolloy, jroelofs, joerg, compnerd, rengolin

Subscribers: llvm-commits, aemerson

Differential Revision: https://reviews.llvm.org/D27309

llvm-svn: 288710
compiler-rt/lib/builtins/arm/aeabi_uidivmod.S
compiler-rt/lib/builtins/arm/udivsi3.S
compiler-rt/lib/builtins/assembly.h