This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Paradoxical subreg questions


>>   2) What does:
>> 
>>        (set (subreg:DI (reg:SI 76) 0) (reg:DI 77))
>> 
>>      mean and how does it differ from:
>> 
>>        (set (reg:SI 76)) (truncate:SI (reg:DI 77))
> 
> It means the same thing, but the former can be used in a DImode insn,
> while the latter is SImode, and a truncate will rarely - if at all -
> be generated by the optimizers.  Generating subregs is much more common.
> The DImode form will require register allocation to provide a DImode hard
> register, unless the insn can be transformed to an SImode one before
> reloading.

Are the other bits of the DImode hard register assumed clobbered by the
set?  In other words:

  (set (subreg:DI (reg:SI 76) 0) (reg:DI 77))

implies:

  (clobber (reg:DI 76))

prior to setting the SImode bits equal to (truncate:SI (reg:DI 77))?

-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]