Mercurial > projects > ldc
diff tests/mini/asm7.d @ 741:4ac97ec7c18e
Applied easy part from wilsonk's x86-64 patch in #107
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Thu, 30 Oct 2008 11:08:34 +0100 |
parents | 1bb99290e03a |
children | 12b423e17860 |
line wrap: on
line diff
--- a/tests/mini/asm7.d Thu Oct 30 10:17:05 2008 +0100 +++ b/tests/mini/asm7.d Thu Oct 30 11:08:34 2008 +0100 @@ -1,6 +1,7 @@ module tangotests.asm7; // test massive label collisions (runtime uses Loverflow too) +extern(C) int printf(char*, ...); void main() { @@ -13,13 +14,27 @@ int add(int a, int b) { int res; - asm + version (LLVM_InlineAsm_X86) { - mov EAX, a; - add EAX, b; - jo Loverflow; - mov res, EAX; + asm + { + mov EAX, a; + add EAX, b; + jo Loverflow; + mov res, EAX; + } } + else version (LLVM_InlineAsm_X86_64) + { + asm + { + mov EAX, a; + add EAX, b; + jo Loverflow; + mov res, EAX; + } + } + printf("%d\n",res); return res; Loverflow: assert(0, "add overflow"); @@ -28,14 +43,29 @@ int sub(int a, int b) { int res; - asm + version (LLVM_InlineAsm_X86) { - mov EAX, a; - sub EAX, b; - jo Loverflow; - mov res, EAX; + asm + { + mov EAX, a; + sub EAX, b; + jo Loverflow; + mov res, EAX; + } } + else version (LLVM_InlineAsm_X86_64) + { + asm + { + mov EAX, a; + sub EAX, b; + jo Loverflow; + mov res, EAX; + } + } + printf("%d\n",res); return res; Loverflow: assert(0, "sub overflow"); + int x; }