Я пытался перепроектировать некоторые программы psp, разработанные с использованием бесплатного pspsdk
https://sourceforge.net/projects/minpspw/
Я заметил, что создал функцию, чтобы увидеть, как MIPS обрабатывает более 4 аргументов (а0-а4). Все, кого я знаю, сказали мне, что они попадают в стек. К моему удивлению, этот 5-й аргумент был фактически передан в регистр t0, и компилятору даже не использовался стек!
он также встроил функцию, даже не используя jal или переход к ней. (очевидная оптимизация). Хотя в памяти действительно был пробел, и вы могли бы проверить это дважды, используя print с аргументом указателя на функцию. Тот фактический код, который был выполнен, автоматически вставлялся без необходимости инструкции вызова функции.
^^, но это не очень полезно для попытки обратного инжиниринга ...
есть справочная страница для этой версии g cc. и установка занимает несколько секунд, если кто-то может предоставить его человеку для компиляции, если он есть. Это так долго, я даже не знаю, как ссылаться на информацию надежно