view tests/mini/asm7.d @ 443:44f08170f4ef

Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn. Reworked the LLVMDC specific pragmas.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Fri, 01 Aug 2008 00:32:06 +0200
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");
}