开发者

Patching gcc, Adding memory write to a sparc fsqrts insn

开发者 https://www.devze.com 2022-12-19 06:57 出处:网络
I\'d like to patch gcc\'s sparc machine description so that the destination register of a FPU sqareroot operation fsqrts

I'd like to patch gcc's sparc machine description so that the destination register of a FPU sqareroot operation fsqrts is stored into memory after each fsqrts.

like this:

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 in开发者_JS百科sn

The sparc.md portion that defines the fsqrts pattern is:

(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")])

i thought I could add the "st %f4, -4[%fp]" there. But now my question:

  • Where/when/how can I allocate the stackframe slot to save the destination fpu reg in (the offset to %fp).

I'm not that familiar with rtl representation and the stages of compilation. So any help would be apreciated.

Maybe another architecture has a similar construct already that I could study and use for my purpose. If somebody can point me to such machine description part ...


Again, that's a question for gcc@gcc.gnu.org

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号