Мой вопрос очень похож на: GCC: запретить использование некоторых регистров
Однако я хотел бы ограничить количество регистров, используемых в функции C. Другими словами, я хотел бы иметь возможность использовать директиву точно так же, как регистры затирания, но применять ее на уровне функции C, а не внутри встроенного ассемблера. Кроме того, у каждой функции может быть свой набор используемых регистров, поэтому это не может быть универсальным решением.
Единственные 2 возможных решения, о которых я думал, были:
- Делайте все на ассемблере. Не совсем решение моей проблемы...
- Скомпилируйте каждую функцию отдельно, используя какую-нибудь директиву для условного использования регистров в GCC. Я потерял бы много потенциальной оптимизации, скомпилировав каждую функцию отдельно, и это сделало бы код практически нечитаемым.
Поскольку я пытаюсь сделать все это на C, может ли здесь прекомпилятор как-то помочь? Есть ли возможные пути для достижения моей намеченной цели?
Register
, поэтому мне было интересно, есть ли что-то в этом роде, что можно было бы применить здесь - person Oscar Wahltinez   schedule 20.06.2012register
. Это так же важно, как и пробел. - person Fred Larson   schedule 20.06.2012