On 13 December 2013 06:08, H. S. Teoh <hsteoh@quickfur.ath.cx> wrote:
I've always wondered about that. What is D supposed to do with asmOn Thu, Dec 12, 2013 at 08:57:42PM +0100, Max Samukha wrote:
> On Thursday, 12 December 2013 at 17:56:12 UTC, Walter Bright wrote:
>
> >11. inline assembler being a part of the language rather than an
> >extension that is in a markedly different format for every
> >compiler
>
> Ahem. If we admit that x86 is not the only ISA in exsistence, then
> what is (under)specified here http://dlang.org/iasm.html is a
> platform-specific extension.
blocks when compiling for a CPU that *isn't* x86?? What *should* a
conforming compiler do? Translate x86 asm into the target CPU's
instructions? Abort compilation? None of those options sound
particularly appealing to me.It occurs to me that a little sugar would be nice, rather than:version(x86){asm{...}}else version(ARM){asm{...}}Which appears basically everywhere an asm block does. 'asm' could optionally receive an architecture as argument, and lower to the version wrapper:asm(x86){...}else asm(ARM){...}(The 'else's in those examples seem unnecessary)