<div dir="ltr">On Fri, Sep 5, 2014 at 11:32 AM, Jonathan Roelofs <span dir="ltr"><<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Sergey,<br>
<br>
Not that it'll save you much hassle, but here's an implementation of __aeabi_idiv0 and __aeabi_ldiv0 that I've been sitting on for a while.<br>
<br>
I vaguely remember compnerd suggesting that I don't commit them to compiler_rt, but I don't remember why.<br></blockquote><div><br></div><div>I did dig into this further and it seems that they are, in fact, considered part of the RT-ABI :-(.  Ive committed a simple conforming implementation in SVN r217322.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Cheers,<br>
<br>
Jon<div class=""><div class="h5"><br>
<br>
On 9/5/14, 12:10 PM, Sergey Dmitrouk wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hi,<br>
<br>
There are several places in compiler-rt which refer to __aeabi_idiv0.<br>
For example, in lib/builtins/arm/udivsi3.S:<br>
<br>
#ifdef __ARM_EABI__<br>
     b __aeabi_idiv0<br>
#else<br>
     JMP(lr)<br>
#endif<br>
<br>
At the same time there is no definition of it.  It looks as if it was<br>
done intentionally so that third-party could provide custom handler for<br>
division by zero.<br>
<br>
IMHO It's not very consistent and looks odd as all other __aebi_*<br>
functions are provided by compiler-rt.<br>
<br>
Did I get it all right or maybe I'm missing something?<br>
<br>
libgcc provides both __aeabi_idiv0 and __aeabi_ldiv0 as weak symbols,<br>
any reasons not to do the same in compiler-rt?  Or, to put it<br>
differently, why force external implementation of these functions?<br>
<br>
Thanks,<br>
Sergey<br>
______________________________<u></u>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvmdev</a><br>
<br>
</blockquote>
<br></div></div><span class=""><font color="#888888">
-- <br>
Jon Roelofs<br>
<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a><br>
CodeSourcery / Mentor Embedded<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Saleem Abdulrasool<br>compnerd (at) compnerd (dot) org
</div></div>