35.2.1.8. УСЛОВНЫЕ ПЕРЕСЫЛКИ И УСТАНОВКИ





Conditional Move



	if (Condition)
	{
		Destination = Source
	}
Условное присваивание - очень мощная команда, которая минимизирует число ветвлений в программах.

------------------------------------------------------------------------------- o Conditional MOVE x86 CMOVxx RR RI? --------------------------------------- Alpha CMOVEQ 64 RRR RRI CMOVGE 64 RRR RRI CMOVGT 64 RRR RRI CMOVLBC 64 RRR RRI CMOVLBS 64 RRR RRI CMOVLE 64 RRR RRI CMOVLT 64 RRR RRI CMOVNE 64 RRR RRI ---------------------------------------- PPC ---------------------------------------- MIPS MOVN 32/64 RRR (!=0) MOVZ 32/64 RRR (=0) ---------------------------------------- SPARC MOVA max RRR RRI MOVN max RRR RRI MOVNE max RRR RRI MOVE max RRR RRI MOVG max RRR RRI MOVGE max RRR RRI MOVLE max RRR RRI MOVL max RRR RRI MOVGU max RRR RRI MOVLEU max RRR RRI MOVPOS max RRR RRI MOVNEG max RRR RRI MOVVC max RRR RRI MOVVS max RRR RRI ----------------------------------------- V9 ---------------------------------------- 68K ---------------------------------------- z80 ---------------------------------------- ARM MOVcc 32 RR RI


Conditional Set



------------------------------------------------------------------------------- o Conditional SET x86 SETxx R ---------------------------------------- Alpha ---------------------------------------- PPC ---------------------------------------- MIPS STL RRR (set if Less:Signed) STLI RRI (Signed Immediate) SLTIU RRI (Unsigned) SLTU RRR ---------------------------------------- SPARC (*) via conditional moves ---------------------------------------- 68K Sxx R (A-,D- regs) ---------------------------------------- z80 -------------------------------------------------------------------------------

Index Prev Next