Mercurial > projects > ldc
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 } |