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

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

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


person Tall Jeff    schedule 01.05.2009    source источник


Ответы (3)


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

  • http://math-atlas.sourceforge.net/devel/assembly/mipsabi32.pdf
  • "See MIPS Run" Доминика Свитмана
  • Проверка дизассемблированного кода, сгенерированного компилятором, на наличие расхождений с приведенными выше ссылками.
person Lance Richardson    schedule 01.05.2009
comment
Спасибо за ссылки. На самом деле я просмотрел сгенерированный код, и большую его часть я понял, но трудно понять, что на самом деле у меня есть общий случай, хорошо определенный для всех различных типов параметров и их комбинаций и т. д. - person Tall Jeff; 01.05.2009

Помогает ли эта ссылка на MIPS EABI для RedHat Linux?

person nominolo    schedule 01.05.2009

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

person starblue    schedule 01.05.2009
comment
Эта ссылка больше не работает. Новая ссылка выглядит следующим образом: linux-mips.org/wiki/MIPS_ABI_History - person antoyo; 23.10.2015