Отключить передачу аргументов в функции через регистры (gcc, clang) - PullRequest
0 голосов
/ 26 мая 2018

для университета нам нужно реализовать наши собственные va_start и va_arg (без использования библиотек) для списков переменных аргументов.

На самом деле это не проблема, но gcc и clang доставляют нам затруднения.

Они оптимизируют код так, чтобы параметр передавался через регистры, а не в стек, что делает нашу задачу невозможной.

Я уже пытался использовать оптимизацию -O0, но даже тогда они, кажется,передать их в регистры.

Есть ли способ отключить эту функцию?

наилучшие пожелания Лев

Редактировать: Мы используем 64-битные машинытолько

Edit2: Я нашел этот сайт: https://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_17.html Он описывает макросы, которые определяют, передается ли параметр в стеке или нет.Могу я как-нибудь использовать эти маркеры, чтобы сказать gcc передать все параметры в стеке?

Я играл с ними, но, к сожалению, ничего не заархивировал ...

...