====== GTE ====== GTE (Geometry Transformation Engine) - это сопроцессор 2 (COP2), выполняющий векторно-матричные операции. Он не имеет портов, отображенных в память [[CPU]], и полностью управляется специальными опкодами. Перед использованием GTE должен быть включен. Для этого нужно установить бит 30 в статусном регистре COP0: mfc0 $8, $12 # t0 = SR ori $8, $8, 0x40000000 # Set bit 30 in t0 (CU2) mtc0 $8, $12 # SR = t0 nop ===== Инструкции ===== * mtc2 $r, $d - Move To Coprocessor 2. Записывает значение из регистра общего назначения в регистр данных GTE. $d = $r * mfc2 $r, $d - Move From Coprocessor 2. Читает значение из регистра данных GTE в регистр общего назначения. $r = $d * ctc2 $r, $c - записывает значение из регистра общего назначения в контрольный регистр GTE. $c = $r * cfc2 $r, $c - читает значение из контрольного регистра GTE в регистр общего назначения. $r = $c * lwc2 $d, imm(base) - загружает значение из памяти в регистр данных GTE. * swc2 $d, imm(base) - выгружает значение из регистра данных GTE в память. * cop2 imm - выполняет команду GTE. Загрузка и выгрузка регистров GTE имеют задержку в 2 инструкции для любых операций, которые используют эти регистры. ===== Регистры ===== TODO ===== Команды ===== TODO