diff --git a/tests/mini/naked_asm4.d b/tests/mini/naked_asm4.d index 6e167d93..5303dc66 100644 --- a/tests/mini/naked_asm4.d +++ b/tests/mini/naked_asm4.d @@ -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"); diff --git a/tests/mini/naked_asm6.d b/tests/mini/naked_asm6.d index 8a2db5c8..9826f90a 100644 --- a/tests/mini/naked_asm6.d +++ b/tests/mini/naked_asm6.d @@ -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); + } }