view tests/mini/asm5.d @ 969:fe2d9bb7078d

Add some extra debug output that's useful in diagnosing inline assembler bugs.
author Frits van Bommel <fvbommel wxs.nl>
date Mon, 16 Feb 2009 23:56:56 +0100
parents b2d27ddf8f45
children 855889b7b268
line wrap: on
line source

int foo()
{
    version(X86)
    {
      asm { mov EAX, 42; }
    } else version(X86_64)
    {
      asm { movq RAX, 42; }
    }
    else static assert(0, "todo");
}

ulong bar()
{
    version(X86)
    {
      asm { mov EAX, 0xFF; mov EDX, 0xAA; }
    } else version(X86_64)
    {
      asm { movq RAX, 0xFF; }
    }
    else static assert(0, "todo");
}

void main()
{
    long l = 1;
    l = 2;
    l = 4;
    l = 8;
    assert(foo() == 42);
    version(X86)
    {
        assert(bar() == 0x000000AA000000FF);
    } else version(X86_64)
    {
        assert(bar() == 0x00000000000000FF);
    }
}