On 8 March 2012 22:42, Denis Shelomovskij <verylonglogin....@gmail.com> wrote:
> 1. Is there any guaranties that no code will be added between sequential
> inline assembler blocks, e.g.:
> ---
> void f()
> {
>    static if(x)
>        asm { mov EBX, 3; }
>    else
>        asm { mov EBX, 7; }
>
>    asm { mov EAX, EBX; } // Is EBX value defined here?
> }
> ---
> Is it documented?
>
>
> 2. Such question about return via EAX (is the following use
> legal/documented):
> ---
> int g()
> {
>    asm { mov EAX, 4; }
> }
> ---
> Such use of `asm` to return a value is used here and there in
> http://dlang.org/iasm.html

For 1. I'd say that it would probably work, but you can't necessarily
rely on that, you may have to live with a bit of code duplication.

For 2. It seems that it should be fine, I can't check it right now,
but I would be surprised if it didn't compile and run.

--
James Miller

Reply via email to