Соглашения о вызовах GCC MIPS-32 / Определение фрейма стека

StackOverflow https://stackoverflow.com/questions/811424

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

Ссылается ли это на MIPS EABI для RedHat Linux помочь?

Я не разбираюсь в MIPS, но, может быть, это История MIPS ABI ссылка могла бы помочь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top