define_split rtl template usage

Ian Lance Taylor iant@google.com
Wed Feb 25 22:15:00 GMT 2009


raja.saleru@iap-online.com writes:

> How can I split the below assembly line using define_split RTL template
> <1> rd = dps
>
> into the below two liens
>
> <2>
> rd = dps
> rd = signext(rdhl)
>
> Here rd is 40-bit register
> dps is 32-bit register contains the address
>
> Here register name can be r1, r2 ... rd.  and
> dp1, dp2, .....dps
>
> sigext(rdhl) is the sign extending from 32-bit to 40bit.

The details are going to depend on your target.  The first step is to
figure out the RTL for instructions <1> and <2> above.  Then write a
define_split which matches the RTL for instruction <1> and produces the
RTL for instruction <2>.

It's hard to be more helpful without more details.  There are hundreds
of existing examples of define_split in the existing backends, so it
should be easy to see how it is used.

Ian



More information about the Gcc-help mailing list