This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: (subreg:SF (reg:SC)) question - 20020227-1.c failure
- From: Ulrich Weigand <weigand at immd1 dot informatik dot uni-erlangen dot de>
- To: geoffk at geoffk dot org (Geoff Keating)
- Cc: weigand at immd1 dot informatik dot uni-erlangen dot de (Ulrich Weigand), gcc at gcc dot gnu dot org
- Date: Sat, 3 May 2003 22:14:12 +0200 (MET DST)
- Subject: Re: (subreg:SF (reg:SC)) question - 20020227-1.c failure
Geoff Keating wrote:
> The actual rule is:
>
> Storing in a non-paradoxical `subreg' has undefined results for
> bits belonging to the same word as the `subreg'. This laxity makes
> it easier to generate efficient code for such instructions. To
> represent an instruction that preserves all the bits outside of
> those in the `subreg', use `strict_low_part' around the `subreg'.
>
> so it depends on your word size.
This would appear unfortunate, as this means that it may
indeed be necessary to use strict_low_part in order to
manipulate the real or imaginary part of a complex.
> Fix whatever's generating the RTL above to use strict_low_part when
> necessary.
However, as far as I can see, all code handling complex numbers
appears to assume gen_realpart / gen_imagpart return RTX that
can be used both to access and to modify the components of a
complex number. So we can't just have those return strict_low_part,
but all users would need to be changed ...
Bye,
Ulrich
--
Dr. Ulrich Weigand
weigand@informatik.uni-erlangen.de