Mercurial > projects > dstress
diff run/mini/asm10.d @ 1628:c6ef09dfba4d
add mini test set from ldc project
author | Moritz Warning <moritzwarning@web.de> |
---|---|
date | Mon, 10 Jan 2011 19:47:18 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/mini/asm10.d Mon Jan 10 19:47:18 2011 +0100 @@ -0,0 +1,31 @@ +module asm10; + +struct S { + ushort first; + ushort second; + int unaccessed; +} + +void main() { + auto s = S(512, 42, -1); + ushort x = 0; + version(D_InlineAsm_X86) { + asm { + lea EAX, s; + mov CX, S.second[EAX]; + mov x, CX; + mov S.first[EAX], 640; + } + } else version(D_InlineAsm_X86_64) { + asm { + lea RAX, s; + mov CX, S.second[RAX]; + mov x, CX; + mov S.first[RAX], 640; + } + } + assert(x == 42); + assert(s.first == 640); + assert(s.second == 42); + assert(s.unaccessed == -1); +}