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: Bootstrap failure on Solaris


> Hi,
> 
> > The call to gen_highpart with VOIDmode operand is bogus, as you need to
> > know size of the value to extract upper n bits. We usually call gen_highpart
> > with mode size equal to the half of the argument, but you can't bet on
> > that.
> 
> Ok, shouldn't this be mentioned in the comments for gen_highpart and
> gen_lowpart then? This is new, behaviour, obviously.
Hmm, I see, the gen_lowpart is able to handle CONST_INTs,
because the operation is always well defined,  even when you don't know
the mode.

Concerning the gen_highpart it didn't handled CONST_INTs correctly, as
it missed the information of size of the value, but siltenly generated
wrong code.

I will send patch fixing the comment. Or perhaps we can simply add the
mode argument.
> Proper fix is probably to make Sparc call simplify_gen_subreg directly
> > with subreg_highpart_offset having proper mode argument.
> > 
> > In case it is dificult for you to fix that, I can do it if you send me
> > the preprocessed testcase.
> 
> I'll try to fix that on Monday, shouldn't be too hard. There is a
> define_split somewhere in sparc.md which calls gen_highpart for
> CONST_INTs. Thank you for the explanation.
Thank you for investigating the problem and working on fix.
Subreg changes i've made has been quite destabilizing and so I am happy to
see thinks settling down.
I have prepared second wave of such changes and I would really love to see
such issues discovered and fixed soon.

Honza
> 
> Bye
> 
> Roman
> 


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