# HG changeset patch # User thomask # Date 1191145404 0 # Node ID 24fcb78d93f68d11312e839076110ceafb2f40e1 # Parent 36bedfa079e63f859932483fbd7a0f7fa581e25e r8714@birke: tk | 2007-09-29 23:27:16 +0200 [Issue 1539] X86 inline assembler fails to recognize when the branch address outside range 2007-09-28 http://d.puremagic.com/issues/show_bug.cgi?id=1539 diff -r 36bedfa079e6 -r 24fcb78d93f6 nocompile/a/asm_loop_02_B.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/a/asm_loop_02_B.d Sun Sep 30 09:43:24 2007 +0000 @@ -0,0 +1,166 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ +// @date@ 2007-09-28 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1539 +// @desc@ [Issue 1539] X86 inline assembler fails to recognize when the branch address outside range + +module dstress.nocompile.a.asm_loop_02_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int count = 0; + + asm{ + mov EAX, 0; + mov ECX, 2; + Lnext: + inc EAX; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + loop Lnext; + Ldone: + mov count, EAX; + } + + if(2 != count){ + assert(0); + } + + return 0; + } +}else{ + static assert(0, "DSTRESS{XFAIL}: no inline x86 ASM support"); +} diff -r 36bedfa079e6 -r 24fcb78d93f6 nocompile/a/asm_loop_02_D.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/a/asm_loop_02_D.d Sun Sep 30 09:43:24 2007 +0000 @@ -0,0 +1,166 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ +// @date@ 2007-09-28 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1539 +// @desc@ [Issue 1539] X86 inline assembler fails to recognize when the branch address outside range + +module dstress.nocompile.a.asm_loop_02_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int count = 0; + + asm{ + mov EAX, 0; + mov ECX, 2; + Lstart: + loop Lnext; + jmp Ldone; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + Lnext: + inc EAX; + jmp Lstart; + Ldone: + mov count, EAX; + } + + if(1 != count){ + assert(0); + } + + return 0; + } +}else{ + static assert(0, "DSTRESS{XFAIL}: no inline x86 ASM support"); +} diff -r 36bedfa079e6 -r 24fcb78d93f6 run/a/asm_loop_02_A.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_loop_02_A.d Sun Sep 30 09:43:24 2007 +0000 @@ -0,0 +1,165 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ +// @date@ 2007-09-28 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1539 +// @desc@ [Issue 1539] X86 inline assembler fails to recognize when the branch address outside range + +module dstress.run.a.asm_loop_02_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int count = 0; + + asm{ + mov EAX, 0; + mov ECX, 2; + Lnext: + inc EAX; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + loop Lnext; + Ldone: + mov count, EAX; + } + + if(2 != count){ + assert(0); + } + + return 0; + } +}else{ + static assert(0, "DSTRESS{XFAIL}: no inline x86 ASM support"); +} diff -r 36bedfa079e6 -r 24fcb78d93f6 run/a/asm_loop_02_C.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_loop_02_C.d Sun Sep 30 09:43:24 2007 +0000 @@ -0,0 +1,165 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ +// @date@ 2007-09-28 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1539 +// @desc@ [Issue 1539] X86 inline assembler fails to recognize when the branch address outside range + +module dstress.run.a.asm_loop_02_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int count = 0; + + asm{ + mov EAX, 0; + mov ECX, 2; + Lstart: + loop Lnext; + jmp Ldone; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + nop; + Lnext: + inc EAX; + jmp Lstart; + Ldone: + mov count, EAX; + } + + if(1 != count){ + assert(0); + } + + return 0; + } +}else{ + static assert(0, "DSTRESS{XFAIL}: no inline x86 ASM support"); +}