[llvm] r215862 - ARM: improve RTABI 4.2 conformance on Linux

Renato Golin renato.golin at linaro.org
Thu Aug 21 09:42:57 PDT 2014


On 21 August 2014 17:35, Saleem Abdulrasool <compnerd at compnerd.org> wrote:
> Sorry, Im afraid I don't understand something here.  Why would we want a
> flag for the "bare-metal" target?  I believe both environments should
> conform to the RTABI (which defines the functions being used).  As it
> stands, compiler-rt (correctly, AIUI) doesn't change behavior based on the
> "bare-metal" vs Linux or Android.

In GNUEABI mode, _modsi3 and _divsi3 are perfectly valid replacements
for __aeabi_divmod. In pure EABI mode, they're not. Most of the time,
they're just aliases, so that's ok, but in divmod's case, the
remainder comes from a different place, so it does matter. So we don't
actually need to differentiate "bare-metal" vs. "OS", but "pure EABI"
from "relaxed EABI". AndroidEABI is yet another variation, not
entirely compatible with either, and not just in library calls.

Compiler-RT has both standards (AFAIK) and it doesn't change anything,
it just provides the functionality. The problem, IIUC, is not RT, but
the back-end emitting conflicting calls and result expectation.

cheers,
--renato



More information about the llvm-commits mailing list