view tests/mini/asm7.d @ 583:12bda38ea366

Fixed choosing default target machine without needing to link in targets.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sun, 07 Sep 2008 17:44:25 -0700
parents 1bb99290e03a
children 4ac97ec7c18e
line wrap: on
line source

module tangotests.asm7;

// test massive label collisions (runtime uses Loverflow too)

void main()
{
    int a = add(1,2);
    int s = sub(1,2);
    assert(a == 3);
    assert(s == -1);
}

int add(int a, int b)
{
    int res;
    asm
    {
        mov EAX, a;
        add EAX, b;
        jo Loverflow;
        mov res, EAX;
    }
    return res;
Loverflow:
    assert(0, "add overflow");
}

int sub(int a, int b)
{
    int res;
    asm
    {
        mov EAX, a;
        sub EAX, b;
        jo Loverflow;
        mov res, EAX;
    }
    return res;
Loverflow:
    assert(0, "sub overflow");
}