Added X86-64 versioning

This commit is contained in:
Kelly Wilson
2009-02-03 12:34:12 -07:00
parent d969e0b1cb
commit fe5c047568
2 changed files with 19 additions and 0 deletions

View File

@@ -6,6 +6,14 @@ void foo()
naked;
jmp pass;
hlt;
pass: ret;
}
version(X86_64)
asm
{
naked;
jmp pass;
hlt;
pass: ret;
}
else static assert(0, "todo");

View File

@@ -1,6 +1,9 @@
extern(C) int printf(char*, ...);
ulong retval() {
version (X86)
asm { naked; mov EAX, 0xff; mov EDX, 0xaa; ret; }
else version (X86_64)
asm { naked; mov EAX, 0xff; mov EDX, 0xaa; ret; }
}
@@ -13,6 +16,14 @@ void main() {
a = retval();
b = retval2();
printf("%llu\n%llu\n", retval(), retval2());
version (X86)
{
assert(a == 0x000000aa000000ff);
assert(a == b);
}
else version (X86_64)
{
assert(a == 0xff);
assert(b == 0x000000aa000000ff);
}
}