<div class="gmail_quote">On 19 June 2012 21:19, Iain Buclaw <span dir="ltr"><<a href="mailto:ibuclaw@ubuntu.com" target="_blank">ibuclaw@ubuntu.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
1) D Inline Asm and naked function support is raising far too many alarm bells. So would just be easier to remove it and avoid all the other comments on why we need middle-end and backend headers in gdc.<br></blockquote><div>
<br></div><div>Inline assembly has been relatively useless in GCC for years. Inline asm interferes with the optimisers ability to do a good job, which basically makes use of inline assembly self-defeating.</div><div>The only time I ever need to use inline-asm is to interface an arch feature that has no API. As long as there are intrinsics for all the opcodes one might want, then it's better to use them.</div>
<div><br></div><div>There are 2 operations that spring to mind that typically don't have intrinsics, or high level API's, which I always use asm to interface; the fine-grain manual manipulation of the flags register on PPC (ie, the '.' suite of opcodes), and conditional execution opcodes on ARM. Neither of these have high level expressions, and they are both relatively important.</div>
<div>That said, as stated above, if use of this stuff is for performance, then using an inline-asm block will ruin the surrounding code anyway, so I almost always find I'm required to write the entire function in asm to achieve the expected result...</div>
<div><br></div><div>I see no major loss to removing the inline assembler.</div><div>I would like to know what the issue is though? Why are you compelled to remove it?</div><div>I thought GCC optionally supported the microsoft asm syntax instead, which should make it syntactically consistent with D?</div>
</div>