view run/a/asm_cmova_01_A.d @ 988:052b82b4924c

inline ASM review
author thomask
date Sun, 07 May 2006 18:20:25 +0000
parents
children a468938b0160
line wrap: on
line source

 // $HeadURL$
 // $Date$
 // $Author$
 
module dstress.run.a.asm_cmova_01_A;

version(D_InlineAsm_X86){
	version = doTest;
}else version(D_InlineAsm_X86_64){
	version = doTest;
}

int main(){
	version(doTest){
		uint a;
		asm{
			mov ECX, 0xAB_CD_EF_01;
			mov DX, 0x12_34;
			mov AL, 1;
			mov BL, 2;
			cmp AL, BL;
			cmova CX, DX;
			mov a, ECX;
		}

		if(a != 0xAB_CD_EF_01){
			assert(0);
		}

		asm{
			mov ECX, 0xAB_CD_EF_01;
			mov DX, 0x12_34;
			mov AL, 2;
			mov BL, 1;
			cmp AL, BL;
			cmova CX, DX;
			mov a, ECX;
		}
		if(a != 0xAB_CD_12_34){
			assert(0);
		}
		
		return 0;
	error:
		assert(0);
	}else{
		pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
		static assert(0);
	}
}