Mercurial > projects > ldc
diff tests/mini/asm7.d @ 341:1bb99290e03a trunk
[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
author | lindquist |
---|---|
date | Sun, 13 Jul 2008 02:51:19 +0200 |
parents | tangotests/asm7.d@2b72433d5c8c |
children | 4ac97ec7c18e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,41 @@ +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"); +}