comparison tests/mini/asm5.d @ 949:b2d27ddf8f45

changes to get the naked asm stuff working for x64
author wilsonk@ubuntu
date Tue, 10 Feb 2009 08:02:25 -0700
parents 03d7c4aac654
children 855889b7b268
comparison
equal deleted inserted replaced
948:780530d1cad3 949:b2d27ddf8f45
1 int foo() 1 int foo()
2 { 2 {
3 version(X86) 3 version(X86)
4 asm { mov EAX, 42; } 4 {
5 asm { mov EAX, 42; }
6 } else version(X86_64)
7 {
8 asm { movq RAX, 42; }
9 }
5 else static assert(0, "todo"); 10 else static assert(0, "todo");
6 } 11 }
7 12
8 ulong bar() 13 ulong bar()
9 { 14 {
10 version(X86) 15 version(X86)
11 asm { mov EAX, 0xFF; mov EDX, 0xAA; } 16 {
17 asm { mov EAX, 0xFF; mov EDX, 0xAA; }
18 } else version(X86_64)
19 {
20 asm { movq RAX, 0xFF; }
21 }
12 else static assert(0, "todo"); 22 else static assert(0, "todo");
13 } 23 }
14 24
15 void main() 25 void main()
16 { 26 {
17 long l = 1; 27 long l = 1;
18 l = 2; 28 l = 2;
19 l = 4; 29 l = 4;
20 l = 8; 30 l = 8;
21 assert(foo() == 42); 31 assert(foo() == 42);
22 assert(bar() == 0x000000AA000000FF); 32 version(X86)
33 {
34 assert(bar() == 0x000000AA000000FF);
35 } else version(X86_64)
36 {
37 assert(bar() == 0x00000000000000FF);
38 }
23 } 39 }