This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: x86-64 merger part 40 - missing bits
- To: Jan Hubicka <jh at suse dot cz>
- Subject: Re: x86-64 merger part 40 - missing bits
- From: Richard Henderson <rth at redhat dot com>
- Date: Mon, 1 Oct 2001 10:24:11 -0700
- Cc: gcc-patches at gcc dot gnu dot org, patches at x86-64 dot org
- References: <20011001184415.B3776@atrey.karlin.mff.cuni.cz>
On Mon, Oct 01, 2001 at 06:44:15PM +0200, Jan Hubicka wrote:
> There are two problematic bits. First the ix86_attr_length_immediate_default,
> where you were unhappy about returning '4' for DImode
[...]
> Otherwise "pushl $4" should have mode "QI".
Hmm. That's a very good point. I retract my objection; just make
sure that the documentation is clear.
> Using :P does not work, as the Pmode leaks into the static array in insn-recog.c
> and compilation fails on biarch compilation. I am not quite sure how to deal
> with this problem right now.
Yeah, I noticed this a while ago. The right solution is to have
a special constant for Pmode in the object file, say external_Pmode,
and when loading from the global data structures, substitute.
> * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
> (ix86_expand_int_movcc): Optimize DImode conditional moves with
> constants on x86_64.
> (ix86_attr_length_immediate_default): Support MODE_DI.
> * i386.md (fixdi splitter): Add missing "&& 1" in splitter
> condition.
> (indirect_jump, tablejump): Turn into expander.
Ok.
r~