[LLVMdev] [cfe-dev] ARM EABI and modulo

Joerg Sonnenberger joerg at britannica.bec.de
Mon Dec 9 03:51:36 PST 2013


On Mon, Dec 09, 2013 at 07:56:26AM +0000, Tim Northover wrote:
> Hi Joerg,
> 
> > At the moment, this will call __modsi3 and __umodsi3, even though those
> > functions are not part of AAPCS. Should this be considered a lowering
> > bug in the ARM target?
> 
> LLVM actually supports both variants, depending on the target. The
> __aeabi_* functions are part of the ARM "runtime ABI" and largely
> independent of AAPCS. For whatever reason, Linux (& Darwin) ended up
> not adopting it and using those GNU functions instead.
> 
> If NetBSD uses the aeabi ones instead, it probably needs some extra
> checks added to the code. I believe ELF targets currently decide based
> on whether the final part of the triple is "-eabi" or not (as opposed
> to "-gnueabi", ...), though I haven't looked at the code recently.

Part of the concern is that the same code using / does call __aeabi_idiv
and __aeabi_uidiv.

Joerg



More information about the llvm-dev mailing list