<p dir="ltr">We discussed push and pop at the US developers meeting and I think it's the only sane way forward. </p>
<p dir="ltr">The ARM build attributes is a different problem, and one that is also discussed on those bugs. Push and pop also solve those. </p>
<p dir="ltr">But we should discuss that on the bugs themselves, not on this thread that is past due closure. :-) </p>
<p dir="ltr">Cheers, <br>
Renato </p>
<div class="gmail_quote">On 3 Dec 2014 22:21, "Joerg Sonnenberger" <<a href="mailto:joerg@britannica.bec.de">joerg@britannica.bec.de</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Dec 03, 2014 at 09:32:02PM +0000, Renato Golin wrote:<br>
> > This is wrong. Only if you (a) use inline assembler and (b) don't make<br>
> > it self contained.<br>
><br>
> Many people use inline assembly, and the FreeBSD kernel is no<br>
> different. Also, inline assembly *cannot* be self contained if it has<br>
> .cpu/.fpu directives in it. You'd not know what to change back to,<br>
> since that would depend on the compilation arguments.<br>
<br>
I disagree, but that's more an issue with GNU as limitations. Consider<br>
MIPS options -- they have push/pop support. Section switching provides<br>
it too. It would be pretty easy to implement on top of this, but that's<br>
still an incremental improvement.<br>
<br>
> Also, both the .cpu cortex-a15 for HDIV and the .fpu neon were taken<br>
> from real life, critical software (like the Linux kernel, libraries,<br>
> chromium, etc). This is not theoretical stuff.<br>
<br>
You wouldn't believe how many cases of "how did this ever work" I've<br>
seen with inline assembly and how many of those turned out to be "well,<br>
it didn't, really". While I am all for providing the tools to make it<br>
possible to write proper inline assembler, it is up to the user to<br>
depend on them. Now something like GCC's target attribute would be a<br>
somewhat different issue, but that seems like a prime target for .cpu<br>
push too.<br>
<br>
Joerg<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>