view tests/mini/callingconv1.d @ 632:df196c8dea26

Updated to latest LLVM trunk, function notes have been removed and merged with parameter attributes, which have been renamed to just attributes. Nothing seems to have broke!
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Wed, 01 Oct 2008 23:17:14 +0200
parents 642f6fa854e5
children 4ac97ec7c18e
line wrap: on
line source

module mini.callingconv1;

extern(C) int printf(char*, ...);

float foo(float a, float b)
{
    return a + b;
}

void main()
{
    float a = 1.5;
    float b = 2.5;
    float c;

    asm
    {
        mov EAX, [a];
        push EAX;
        mov EAX, [b];
        push EAX;
        call foo;
        fstp c;
    }

    printf("%f\n", c);
    
    assert(c == 4.0);
    
    printf("passed\n", c);
}