Mercurial > projects > ldc
comparison tests/mini/asm1_1.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 |
comparison
equal
deleted
inserted
replaced
740:96484f5bf5af | 741:4ac97ec7c18e |
---|---|
5 int main() | 5 int main() |
6 { | 6 { |
7 int i = 12; | 7 int i = 12; |
8 int* ip = &i; | 8 int* ip = &i; |
9 printf("%d\n", i); | 9 printf("%d\n", i); |
10 asm | 10 version (LLVM_InlineAsm_X86) |
11 { | 11 { |
12 mov EBX, ip; | 12 asm |
13 mov EAX, [EBX]; | 13 { |
14 add EAX, 8; | 14 mov EBX, ip; |
15 mul EAX, EAX; | 15 mov EAX, [EBX]; |
16 mov [EBX], EAX; | 16 add EAX, 8; |
17 mul EAX, EAX; | |
18 mov [EBX], EAX; | |
19 } | |
20 } | |
21 else version (LLVM_InlineAsm_X86_64) | |
22 { | |
23 asm | |
24 { | |
25 movq RCX, ip; | |
26 movq RAX, [RCX]; | |
27 add RAX, 8; | |
28 imul RAX, RAX; | |
29 movq [RCX], RAX; | |
30 } | |
17 } | 31 } |
18 printf("%d\n", i); | 32 printf("%d\n", i); |
19 assert(i == 400); | 33 assert(i == 400); |
20 return 0; | 34 return 0; |
21 } | 35 } |