Files
ldc/tests/mini/asm6.d
2008-10-30 11:08:34 +01:00

40 lines
597 B
D

extern(C) int printf(char*, ...);
void main()
{
int a,b,c;
a = int.max-1;
b = 5;
version (LLVM_InlineAsm_X86)
{
asm
{
mov EAX, a;
mov ECX, b;
add EAX, ECX;
jo Loverflow;
mov c, EAX;
}
}
else version (LLVM_InlineAsm_X86_64)
{
asm
{
movq RDX, a;
movq RAX, b;
add RDX, RAX;
jo Loverflow;
movq c, RDX;
}
}
printf("a == %d\n", a);
printf("b == %d\n", b);
printf("c == %d\n", c);
assert(c == c);
return;
Loverflow:
int y=0;
//assert(0, "overflow");
}