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");
+}