Mercurial > projects > ldc
comparison tests/mini/naked_asm6.d @ 981:855889b7b268
Update some testcases now that 64-bit immediates are working.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Wed, 18 Feb 2009 23:18:34 +0100 |
parents | 97688ff7cf93 |
children |
comparison
equal
deleted
inserted
replaced
980:ae710cba0884 | 981:855889b7b268 |
---|---|
2 | 2 |
3 ulong retval() { | 3 ulong retval() { |
4 version (X86) | 4 version (X86) |
5 asm { naked; mov EAX, 0xff; mov EDX, 0xaa; ret; } | 5 asm { naked; mov EAX, 0xff; mov EDX, 0xaa; ret; } |
6 else version (X86_64) | 6 else version (X86_64) |
7 asm { naked; mov EAX, 0xff; mov EDX, 0xaa; ret; } | 7 asm { naked; mov RAX, 0xaa000000ff; ret; } |
8 } | 8 } |
9 | 9 |
10 ulong retval2() { | 10 ulong retval2() { |
11 return (cast(ulong)0xaa << 32) | 0xff; | 11 return (cast(ulong)0xaa << 32) | 0xff; |
12 } | 12 } |
13 | 13 |
14 void main() { | 14 void main() { |
15 ulong a,b; | 15 auto a = retval(); |
16 a = retval(); | 16 auto b = retval2(); |
17 b = retval2(); | |
18 printf("%llu\n%llu\n", retval(), retval2()); | 17 printf("%llu\n%llu\n", retval(), retval2()); |
19 version (X86) | 18 assert(a == 0xaa000000ff); |
20 { | |
21 assert(a == 0x000000aa000000ff); | |
22 assert(a == b); | 19 assert(a == b); |
23 } | |
24 else version (X86_64) | |
25 { | |
26 assert(a == 0xff); | |
27 assert(b == 0x000000aa000000ff); | |
28 } | |
29 } | 20 } |