[llvm-dev] compiler-rt, v4.0: arm\udivsi3.S broken for division by zero

Peter Jakubek via llvm-dev llvm-dev at lists.llvm.org
Tue Mar 21 11:32:50 PDT 2017


Hello,

I think the current implementation for the call "bl __aeabi_idiv0" in 
builtins\arm\udivsi3.S is broken.
At least for the case that __aeabi_idiv0 returns. (the provided 
implementation does)

Since LR is not preserved, the following JMP(lr) results in an endless loop.

Or is this an intentional change of the behavior?

The file contains another implementation enabled by 
__ARM_ARCH_EXT_IDIV__. This uses "b" instead of "bl".
(This works as in previous versions)

Cheers,

Peter


More information about the llvm-dev mailing list