This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: Use PLUS instead of HIGH/LO_SUM for large constants
- To: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Subject: Re: PATCH: Use PLUS instead of HIGH/LO_SUM for large constants
- From: law at redhat dot com
- Date: Mon, 22 Oct 2001 15:07:26 -0600
- cc: gcc-patches at gcc dot gnu dot org
- Reply-To: law at redhat dot com
In message <200110222045.f9MKjk8g025439@hiauly1.hia.nrc.ca>you write:
> > The one thing that still doesn't make any sense to me is the need for a
> > HImode addition pattern. Can you figure out why this is needed and expla
> in
> > it to me.
>
> Here is what happens without the HImode addition pattern:
Right. But how is this handled in the current code? We certainly
don't have HImode HIGH/LO_SUM patterns. I suspect we just perform the
constant load in SImode and I don't see a compelling reason to do anything
different with the new code.
> (insn 66 65 67 (set:HI (reg:HI 106)
> (const_int 32768 [0x8000])) -1 (nil)
> (nil))
>
> (insn 67 66 68 (set:HI (reg:HI 106)
> (plus:HI (reg:HI 106)
> (const_int -4493 [0xffffee73]))) -1 (nil)
> (expr_list:REG_EQUAL (const_int 28275 [0x6e73])
> (nil)))
Right. What I want to know is how is this handled in the current
sources. Again, my guess is we just load up the constant in SImode.
jeff