RFA: fix mode confusion in caller-save.c:replace_reg_with_saved_mem

Joern Rennecke joern.rennecke@embecosm.com
Tue Oct 7 21:56:00 GMT 2014


On 7 October 2014 18:38, Jeff Law <law@redhat.com> wrote:
> On 10/06/14 20:57, Joern Rennecke wrote:
>>
>> On 6 October 2014 19:58, Jeff Law <law@redhat.com> wrote:
>>>
>>> What makes word_mode special here?  ie, why is special casing for
>>> word_mode
>>> the right thing to do?
>>
>>
>> The patch does not special-case word mode.  The if condition tests if
>> smode would
>> cover multiple hard registers.
>> If that would be the case, smode is replaced with word_mode.
>
> SO I'll ask another way.  Why do you want to change smode to word_mode?

Because SImode covers four hard registers, wheras the intention is to
have a single
one.

(concatn:SI [
                    (reg:SI 18 r18)
                    (reg:SI 19 r19)
                    (mem/c:QI (plus:HI (reg/f:HI 28 r28)
                            (const_int 43 [0x2b])) [6  S1 A8])
                    (mem/c:QI (plus:HI (reg/f:HI 28 r28)
                            (const_int 44 [0x2c])) [6  S1 A8])
                ])

(see original post) is invalid RTL, and thuis the cause of the later ICE.



More information about the Gcc-patches mailing list