https://sourceware.org/bugzilla/show_bug.cgi?id=26685

--- Comment #12 from H.J. Lu <hjl.tools at gmail dot com> ---
(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
> 
> or
> 
>       movdir64b       foo(%rip), %rax

This is wrong for x32.

> 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).

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to