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;
 }