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]
Other format: [Raw text]

Re: PR 6394


In message <200204302128.g3ULSB8S000435@hiauly1.hia.nrc.ca>, "John David Anglin
" writes:
 > >  In message <200204302007.g3UK7DeK000134@hiauly1.hia.nrc.ca>, "John David 
 > > Anglin" writes:
 > >  > DImode is also allowed in FPRs on the PA.  The class used by global_all
 > oc
 > >  > for the pseudo was GENERAL_OR_FP_REGS.  This was the first class select
 > ed
 > >  > for the psuedo and a register %fr22 was selected from this class.
 > > Does the choice of GENERAL_OR_FP_REGS make sense given the uses/sets of
 > > the particular register?  [ I'm probably not going to have time to look
 > > seriously at this today. ]
 > 
 > No.  I would say the class should be GENERAL_REGS.
>From looking at the RTL dump, I'm less certain.

The relevalt tidbits:
[ ... paths which set reg714 ... ]

(insn 3010 3481 3011 (set (reg/f:DI 66)
        (reg:DI 714)) 119 {*pa.md:3106} (nil)
    (expr_list:REG_DEAD (reg:DI 714)
        (nil)))

[ ... ]
(insn 3088 3494 3091 (set (reg/i:DI 28 %r28)
        (reg/f:DI 66)) 119 {*pa.md:3106} (nil)
    (expr_list:REG_DEAD (reg/f:DI 66)
        (nil)))

I suspect the copy from reg714 to reg66 is what's causing us to get bumped
into the various FP classes.

What I can't find a reason for is why we would use reg66 explicitly like that
in the first place.  Where in the world did (reg 66) come from?

jeff


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