Конвертировать код C ++ в сборку для SPIM - PullRequest
0 голосов
/ 23 июня 2010

У меня много проблем с тем, чтобы мой скомпилированный файл сборки работал на SPIM.В основном я хочу написать файл C ++, а затем создать файл .s, который я могу открыть в SPIM без ошибок.Это означает, что сборка должна быть в MIPS32 ABI с использованием инструкций MIPS I (некоторые MIPS II).Как мне это сделать?Прямо сейчас я использую g ++, но у меня возникают серьезные ошибки при попытке запустить файл в SPIM.Я работаю на MAC OSx 10.6.3 и удаленно компилирую на машине с Linux.Могу ли я использовать специальный компилятор, который облегчит мне задачу?

Ответы [ 2 ]

1 голос
/ 13 июля 2010

Дайте опцию компилятора -S, он сгенерирует код сборки. Затем вам нужно будет отредактировать код, чтобы SPIM принял его.

Вам также понадобится g++ -S -fno-delayed-branch, если вы включите оптимизацию, например -O1 или -Og, для более удобочитаемого кода. Обычно SPIM конфигурируется для имитации MIPS без интервалов задержки ветвления, но gcc будет предполагать, что инструкция после ветки выполняется, даже если она принята. -fno-delayed-branch получает gcc для заполнения любых интервалов задержки ветвления nop.

Еще одна полезная опция - -fverbose-asm, чтобы gcc добавлял комментарии с именем переменной C каждого операнда.

Вам следует избегать использования библиотек C ++, таких как std::vector, которые компилируют с большим количеством дополнительного кода по сравнению с локальными массивами, особенно без оптимизации, если только вам не нужны эти функции.

0 голосов
/ 13 февраля 2019

записать g ++ -s myfile в терминал локальной машины.тогда вам придется отредактировать его, чтобы сделать его не приемлемым в qtspim, что очень сложнотак что я су

...