ій групі інструкцій, що і alloc і бачитимуть стекового вікно, задане за допомогою alloc.
Примітка. Деякі інструкції мають RAW або WAW залежно від ресурсів не схожі на те як alloc впливає на CFM, і таким чином, не дозвольним в тій же самій групі інструкцій після alloc: flusrs, loadrs, пересилання з AR [BSPSTORE], пересилання з AR [RNAT ], br.cexit, br.ctop, br.wtop, br.call, brl.call, br.ia, br.ret, clrrrb, cover, rfi. Див. Розділ 5 «Ресурси і семантики залежності» у третьому томі. Також зауважимо, що alloc потрібно для першої інструкції в групі інструкцій.
Інструкція перевірки завантаження може, або не може виконати завантаження, оскільки це залежить від передачі їй попереднього завантаження. Якщо перевірка завантаження промахнеться в ALAT, то це викличе завантаження з пам'яті. Перевірка завантаження і подальша інструкція, яка читає приймач перевірки завантаження, можуть існувати в тій же самій групі інструкцій. Залежна інструкція завантажить нове значення, завантажене перевіркою завантаження.
Перехід може читати регістри переходів і може неявно читати предикатні регістри, прикладні регістри LC, EC і PFS, а також CFM. Крім регістрів LC, EC і предикатних регістрів, запис в будь-який з цих регістрів за допомогою інструкції не є переходом, буде видна для подальшого переходу в тій же самій групі інструкцій. Запис у предикатні регістри за допомогою будь-якій інструкції, що не є інструкцією з плаваючою точкою, буде видна для подальшого переходу в тій же самій групі інструкцій. Реєстрова залежність RAW не дозволена в тій же самій групі інструкцій для LC і EC. Динамічні RAW залежності, де предикат пишеться інструкцією з плаваючою точкою, а читається переходом, теж не дозволені в тій же самій групі інструкцій. З погляду реєстрової залежності, переходи br.cond, br.call, brl.cond, brl.call, br.ret і br.ia працюють як інші інструкції, тобто, якщо їх кваліфікаційний предикат є 0, то вони не розглядаються зчитувачами або записувача інших ресурсів. Переходи br.cloop, br.cexit, br.ctop, br.wexit і br.wtop є винятками з цього правила - вони завжди читають і пишуть свої ресурси не залежно від значення свого кваліфікаційного предиката. Непрямий перехід brp вважається зчитувачем зазначеного регістра BR.
Інструкції id8.fill і st8.spill неявно звертаються до прикладного регістру UNAT (колекції NaT користувача). Для цих інструкцій обмеження на динамічні регістрові залежності типу RAW по відношенню до UNAT застосовується на рівні бітів. Ці інструкції можуть з'являтися в тій же самій групі інструкцій, якщо вони не звертаються до одного і того ж біту UNAT. Залежності UNAT типу RAW між інструкціями id8.fill або st8.spill та інструкціями mov ar=або mov=ar звертаються до UNAT не повинні відбуватися в межах однієї і тієї ж групи інструкцій.
Для цілей ресурсних залежностей CFM обробляється як окремий ресурс.
Спеціальні випадки залежності WAW
Є три дозволених спеціальних випадку залежно WAW по регістрах в межах групи інструкцій. Це такі спеціальні випадки: інструкції типу порівняння, інструкції з плаваючою точкою і інструкція st8.spill.
Набір інструкцій типу порівняння включає: cmp, cmp4, tbit, tnat, fcmp, frsqrta, frcpa і fclass. Інструкції типу порівняння в одній групі інструкцій, можуть мати адресатом один і той же предикатний регістр:
· Інструкціями типу порівняння є і всі порівняння типу І, і всі порівняння типу АБО (порівняння типу І пов'язані з окончаніямі.and і.andcm; порівняння типу АБО пов'язані з окончаніямі.or і.orcm), або це
· Всі інструкції типу порівняння вказують на PR0. Всі залежності типу WAW дозволені для PR0; порівняння можуть бути деякого типу, і можуть бути різних типів.
Всі інші залежності типу WAW в групах інструкцій заборонені, включаючи регістрові WAW залежності з інструкціями перенесення в PR, які звертаються до тих же самим предикатним регістрам, що й інші записувачі.
Примітка. Інструкції перенесення в PR записують тільки ті PR, які вказані в їх (інструкцій) масці, але інструкціями переносу з PR завжди читають всі регістри.
Інструкції з плаваючою точкою неявно записують регістр стану з плаваючою точкою (FPSR) і регістр стану процесора (PSR). У тій же самій групі інструкцій можуть з'являтися декілька інструкцій з плаваючою точкою, оскільки обмеження на реєстрову залежність типу WAW відносно FPSR і PSR не застосовується. Після виконання групи інструкцій, станом FPSR і PSR буде логічне АБО від всіх записів.
Інструкція st8.spill неявно записує регістр UNAT. Для цієїінструкції обмеження на реєстрову залежність типу WAW щодо UNAT, застосовується на рівні бітів. У тій же самій групі інструкцій можуть з'являтися декілька і...