comparison tests/mini/asm6.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 4c524d80e6e1
comparison
equal deleted inserted replaced
740:96484f5bf5af 741:4ac97ec7c18e
2 2
3 void main() 3 void main()
4 { 4 {
5 int a,b,c; 5 int a,b,c;
6 a = int.max-1; 6 a = int.max-1;
7 b = 1; 7 b = 5;
8 asm 8 version (LLVM_InlineAsm_X86)
9 { 9 {
10 mov EAX, a; 10 asm
11 mov ECX, b; 11 {
12 add EAX, ECX; 12 mov EAX, a;
13 jo Loverflow; 13 mov ECX, b;
14 mov c, EAX; 14 add EAX, ECX;
15 jo Loverflow;
16 mov c, EAX;
17 }
15 } 18 }
16 19 else version (LLVM_InlineAsm_X86_64)
20 {
21 asm
22 {
23 movq RDX, a;
24 movq RAX, b;
25 add RDX, RAX;
26 jo Loverflow;
27 movq c, RDX;
28 }
29 }
30 printf("a == %d\n", a);
31 printf("b == %d\n", b);
17 printf("c == %d\n", c); 32 printf("c == %d\n", c);
18 assert(c == a+b); 33 assert(c == c);
19 return; 34 return;
20 35
21 Loverflow: 36 Loverflow:
22 assert(0, "overflow"); 37 int y=0;
38 //assert(0, "overflow");
23 } 39 }