До конца нет полного понимания, что происходит, когда инструкция условного выполнения не выполняется. Она заменяется на nop или вообще ничего в данный момент не выполняется, экономя 1 такт?
На сайте ARM есть примерчик:
http://infocenter.arm.com/help/index.jsp?t...ch02s05s04.htmlНапротив подобных команд написано в столбце циклов: 1 (not executed).
Допустим, есть еще более простой пример:
Код
if (a>0)
{
b += c;
}
Это сводится к двум командам:
Код
CMP ...
ADD<> ...
Каждая из команд выполняется за такт. При выполнении условия (a > 0) будет затрачено 2 такта. Что будет, когда условие окажется ложным? Сама команда ADD<> не выполнится. В итоге 1 такт или 2 такта (с учетом nop) будут затрачены?