Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M9 / Оптимизация часть 5..doc
Скачиваний:
41
Добавлен:
16.04.2013
Размер:
260 Кб
Скачать

5.4.3.3. Переходы while-циклов

На рис.5.2. показана блок-схема переходов while-циклов.

Есть несколько отличий в работе переходов while-циклов по сравнению с переходами счетных циклов. Переходу while-цикла не нужен LC, вместо этого поведение определяет предикат перехода. В течение фаз ядра и эпилога, предикат перехода равен единице и нулю, соответственно. В течение фазы пролога, предикат перехода может быть либо 0, либо 1, в зависимости от схемы используемой для программы while-цикла. Кроме того, после ротации р16 всегда устанавливается в ноль. Причины этих различий связаны с сущностью while-циклов и будут объяснены подробнее на примере в разделе далее.

wtop, wexit

P R[qp]?

==0 (prolog/epilog)

(специальные неразворачива-

(пролог, ядро)

==1

>1

E C?

==0

емые циклы)

(prolog/epilog)

(epilog)

= =1

EC=EC

EC --

EC --

EC = EC

PR[63]=0

PR[63]=0

PR[63]=0

PR[63]=0

RRB --

RRB --

RRB --

RRB=RRB

wtop: переход

wtop: проскок

wexit : проскок

wexit : переход

Рис. 5.2. Поток выполнения инструкций wtop и wexit.