This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Paradoxical subreg questions
- To: John Wehle <john at feith dot com>
- Subject: Re: Paradoxical subreg questions
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Wed, 12 Jan 2000 17:57:07 -0700
- cc: amylaar at cygnus dot co dot uk, gcc at gcc dot gnu dot org
- Reply-To: law at cygnus dot com
In message <200001122201.RAA09435@jwlab.FEITH.COM>you write:
> > 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))
I'm not sure that's even valid RTL. We are allowed to create paradoxical
SUBREGs for a rvalue, but I'm not sure they're valid for an lvalue.
In the SUBREG section of the manual it discusses stores to normal SUBREGs
but does not cover stores to paradoxical SUBREGs at all.
jeff