GCC MIPS-32 Условные обозначения/определение фреймов

Похоже, что не существует окончательного стандартизованного фрейма стека и соглашений о вызовах языка C (использование регистров и т.д.) для архитектуры процессора MIPS-32. То есть, по-видимому, он полностью соответствует цепочке инструментов ассемблера/компилятора, чтобы определить свой собственный фрейм стека и соглашения о вызовах. Я изо всех сил пытался найти окончательную ссылку на то, какие соглашения использует компилятор GCC для набора инструкций MIPS-32. Я специально использую кросс-компилятор GCC на Cygwin, который нацелен на ядро ​​MIPS-32, используемое во встроенной среде в ядре с открытым исходным кодом eCos.

Любые ссылки на окончательную документацию о GCC для MIPS-32 в этой области будут оценены.

Ответ 1

Вы правы, это немного беспорядок и плохо документирован. Я бы рекомендовал:

  • http://math-atlas.sourceforge.net/devel/assembly/mipsabi32.pdf
  • "См." Прогон MIPS "Доминика Свитмана
  • Изучение дизассемблированного кода, сгенерированного компилятором, для проверки несоответствий с приведенными выше ссылками.