Обновление gcc, добавление памяти для записи в sparc fsqrts insn - PullRequest
4 голосов
/ 01 февраля 2010

Я бы хотел пропатчить описание машины gcc sparc, чтобы регистр назначения операции fsqrts FPU sqareroot сохранялся в памяти после каждого fsqrts.

следующим образом:

fsqrts %f2,%f4
st %f4, -4[%fp]  <= add this after every fsqrts where -4[%fp] is
                            a slot allocated on the stack for each fsqrts insn

Часть sparc.md, которая определяет шаблон fsqrts:

(define_insn "sqrtsf2"
 [(set (match_operand:SF 0 "register_operand" "=f")
       (sqrt:SF (match_operand:SF 1 "register_operand" "f")))]
 "TARGET_FPU"
 "fsqrts\t%1, %0"
 [(set_attr "type" "fpsqrts")])

Я подумал, что могу добавить туда "st %f4, -4[%fp]".Но теперь мой вопрос:

  • Где / когда / как я могу выделить слот для стекового фрейма, чтобы сохранить регистр fpu назначения (смещение в% fp).

IЯ не очень знаком с представлением RTL и этапами компиляции.Поэтому любая помощь будет оценена.

Возможно, в другой архитектуре уже есть подобная конструкция, которую я мог бы изучить и использовать для своих целей.Если кто-то может указать мне на такую ​​часть описания машины ...

1 Ответ

2 голосов
/ 13 февраля 2010

Опять же, это вопрос для gcc@gcc.gnu.org

...