[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/26685] Error: invalid register operand size for `movdir64b'
From: |
hjl.tools at gmail dot com |
Subject: |
[Bug gas/26685] Error: invalid register operand size for `movdir64b' |
Date: |
Thu, 01 Oct 2020 13:16:14 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=26685
--- Comment #14 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Jan Beulich from comment #13)
> (In reply to H.J. Lu from comment #12)
> > (In reply to Jan Beulich from comment #11)
> > > (In reply to H.J. Lu from comment #10)
> > > > symbol(%rip) is similar to symbol and DISP. There is no real register
> > > > in memory operand.
> > >
> > > I disagree - the compiler ought to emit
> > >
> > > movdir64b foo(%eip), %eax
This isn't necessary for x32.
> > >
> > > or
> > >
> > > movdir64b foo(%rip), %rax
> >
> > This is wrong for x32.
>
> You mean both, or (I assume) just the latter?
>
> > > in this case, whatever fits the x32 model better. The compiler ought to in
> > > particular be aware that the register operand of this insn is
> > > address-size-prefix, not operand-size-/REX-prefix controlled.
> >
> > There is no RIP register in GCC. It isn't a real register. GCC always
> > generate foo(%rip).
>
> That's not interesting, it's a gcc internal thing how to arrange for correct
> code to be generated. At the insn template level it's only %<number> anyway.
> What is needed is some sort of flag to indicate that in this specific case
> it needs to be foo(%eip).
No, we don't want 0x67 prefix for RIP-relative addressing for x32.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', (continued)
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', hjl.tools at gmail dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', jbeulich at suse dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', hjl.tools at gmail dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', jbeulich at suse dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', hjl.tools at gmail dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', jbeulich at suse dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', hjl.tools at gmail dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', jbeulich at suse dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', hjl.tools at gmail dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', jbeulich at suse dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b',
hjl.tools at gmail dot com <=
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', jbeulich at suse dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', hjl.tools at gmail dot com, 2020/10/01
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', cvs-commit at gcc dot gnu.org, 2020/10/03
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', cvs-commit at gcc dot gnu.org, 2020/10/07
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', cvs-commit at gcc dot gnu.org, 2020/10/07
- [Bug gas/26685] Error: invalid register operand size for `movdir64b', hjl.tools at gmail dot com, 2020/10/07