修补gcc,将内存写入sparc fsqrts insn
我想修补gcc的sparc机器说明,以便 FPU SQAREOOT操作的目标寄存器fsqrts 在每次FSQRT后存储到内存中 像这样:修补gcc,将内存写入sparc fsqrts insn,gcc,code-generation,Gcc,Code Generation,我想修补gcc的sparc机器说明,以便 FPU SQAREOOT操作的目标寄存器fsqrts 在每次FSQRT后存储到内存中 像这样: 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 我想我可以在那里添加“st%f4,-
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
我想我可以在那里添加“st%f4,-4[%fp]
”。但是现在
我的问题:
- 在何处/何时/如何分配stackframe插槽以保存 目标fpu reg in(到%fp的偏移量)
你能给我指一下这样的机器描述部分吗…再说一遍,这是我的问题gcc@gcc.gnu.org我设法修补了.md描述以发布额外的存储,但是现在我想知道如何避免被安排到延迟槽中。发布了patched.md(带有日程安排问题):无论你想实现什么,通过一些巧妙的重新定义适当的C级函数,同样的事情不会更容易吗?
(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")])