Hi,
>> My first shot at this would be to emit RTV/N in a dummy form as
>> part of the epilogue and leave the usual Rn--->R0 setup as it is,
>> producing
>> (set (reg R0) (reg Rn))
...
>> (parallel [
>> (set (reg R0) (reg R0))
>> (return)
>> ])
>> and hope that the rnreg pass changes this to
>> (set (reg R0) (reg Rn))
...
>> (parallel [
>> (set (reg R0) (reg Rn))
>> (return)
>> ])
Thanks for your valuable suggestion.
We had implemented an insn as:-
(define_insn "return_rtv"
[(parallel [
(set (reg:SI R0_REG)
(match_operand:SI "register_operand" "r"))
(return)])]
We modified the implementation after the suggestion as:-
(define_insn "return_rtv"
[(parallel [
(set (reg:SI R0_REG)
(reg:SI R0_REG))
(return)])]
The complier still did not recognize the RTL pattern and the RTV/N Rn
instruction was not generated.
Can you please comment on the above modifications?
Regards,
Naveen.H.S.
KPIT Cummins Infosystems Ltd,
Pune (INDIA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Free download of GNU based tool-chains for Renesas' SH, H8, R8C, M16C
and M32C Series. The following site also offers free technical support
to its users. Visit http://www.kpitgnutools.com for details.
Latest versions of KPIT GNU tools were released on June 1, 2007.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~