This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Is Gcc broken on x86-64?
- From: Jakub Jelinek <jakub at redhat dot com>
- To: "H. J. Lu" <hjl at lucon dot org>
- Cc: gcc at gcc dot gnu dot org
- Date: Sun, 8 Aug 2004 14:32:59 -0400
- Subject: Re: Is Gcc broken on x86-64?
- References: <20040807000205.GA14276@lucon.org>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Fri, Aug 06, 2004 at 05:02:05PM -0700, H. J. Lu wrote:
> Hi Jakub,
>
> Did you test your patch
>
> http://gcc.gnu.org/ml/gcc-patches/2004-08/msg00305.html
>
> on x86-64? I got
Yes (it is my primary devel platform now).
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16909
But strset is an expand and it expands to a movq $0, (%rdi)
unless -mtune=nocona.
The bug is elsewhere:
(define_insn "*strsetdi_rex_1"
[(set (mem:SI (match_operand:DI 1 "register_operand" "0"))
(match_operand:SI 2 "register_operand" "a"))
(set (match_operand:DI 0 "register_operand" "=D")
(plus:DI (match_dup 1)
(const_int 8)))
(use (reg:SI DIRFLAG_REG))]
"TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)"
is wrong, it should be mem:DI and match_operand:DI 2.
Jakub