This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[x86]: Allow @GOTOFF in non-memory context?
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: GCC Development <gcc at gcc dot gnu dot org>
- Cc: Jakub Jelinek <jakub at redhat dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>, Rainer Orth <ro at cebitec dot uni-bielefeld dot de>, IainS <developer at sandoe-acoustics dot co dot uk>
- Date: Thu, 3 Jun 2010 14:24:43 +0200
- Subject: [x86]: Allow @GOTOFF in non-memory context?
Hello!
I'm looking into i386.md, where we have a bunch of instances of
following comment:
; Current assemblers are broken and do not allow @GOTOFF in
; ought but a memory context.
Code, following this comment disables or special-cases "pic_symbolic_operands".
I'm investigating, which "current assemblers" are broken, since my
assembler from binutils-2.20 happily assembles:
addl x@GOTOFF(%ebx), %eax
in 32bit mode, as well as
addq x@GOTPCREL(%rip), %rax
in 64bit mode.
Looking into gcc install documentation, the lowest mentioned version
is 2.13.1. I have no idea, if this version supports above asm, so I
would like to ask someone with access to this ancient version if he
can test this instruction.
Also of interest is support from sun as and darwin assembler for
similar instructions. I guess darwin should check something like:
addl L_x$non_lazy_ptr-L00000000001$pb(%ecx), %eax
Ultimately, I would like to remove checks involving
pic_symbolic_operands, but removing them on 64bit would be OK, too.
Thanks,
Uros.