gte
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| gte [2026/07/17 12:39] – создано gecko | gte [2026/07/17 12:42] (текущий) – gecko | ||
|---|---|---|---|
| Строка 2: | Строка 2: | ||
| GTE (Geometry Transformation Engine) - это сопроцессор 2 (COP2), выполняющий векторно-матричные операции. Он не имеет портов, | GTE (Geometry Transformation Engine) - это сопроцессор 2 (COP2), выполняющий векторно-матричные операции. Он не имеет портов, | ||
| + | Перед использованием GTE должен быть включен. Для этого нужно установить бит 30 в статусном регистре COP0: | ||
| + | < | ||
| + | mfc0 $8, $12 # t0 = SR | ||
| + | ori $8, $8, 0x40000000 | ||
| + | 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 | ||
gte.1784291988.txt.gz · Последнее изменение: — gecko
