view tests/mini/asm10.d @ 1628:6c36e3f49b28

Merge DMD r324: bugzilla 3663 and 3664 - fwd ref regressions --- dmd/class.c | 2 +- dmd/enum.c | 4 +++- dmd/enum.h | 2 ++ dmd/mars.c | 2 +- dmd/struct.c | 5 ++++- 5 files changed, 11 insertions(+), 4 deletions(-)
author Leandro Lucarella <llucax@gmail.com>
date Wed, 06 Jan 2010 15:18:23 -0300
parents 97d80437cb80
children
line wrap: on
line source

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);
}