Оптимизация используемых регистров при использовании встроенной сборки ARM в GCC

Я хочу написать некоторую встроенную сборку ARM в моем коде на C. Для этого кода мне нужно использовать регистр или два больше, чем только те, которые объявлены как входы и выходы функции. Я знаю, как использовать список clobber, чтобы сообщить GCC, что я буду использовать несколько дополнительных регистров для выполнения своих вычислений.

Однако я уверен, что GCC может свободно выбирать, какие регистры и для чего используются при оптимизации. То есть я чувствую, что использовать фиксированный регистр для моих вычислений - плохая идея.

Как лучше всего использовать дополнительный регистр, который не является ни входом, ни выходом моей встроенной сборки, без использования фиксированного регистра?

P.S. Я думал, что использование фиктивной выходной переменной может помочь, но я не уверен, какие еще странные эффекты будут иметь ...

5
задан Madcowswe 4 January 2012 в 00:42
поделиться