This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/49798] .quad instead of .long is used for address for x32
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 21 Jul 2011 17:24:20 +0000
- Subject: [Bug target/49798] .quad instead of .long is used for address for x32
- Auto-submitted: auto-generated
- References: <bug-49798-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49798
--- Comment #15 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-21 17:24:01 UTC ---
Another example:
[hjl@gnu-6 pr49798]$ cat y.i
union U
{
int *m;
long long d;
};
extern int xxxx;
long long
foo ()
{
union U v = { &xxxx};
return v.d;
}
[hjl@gnu-6 pr49798]$ /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -S -o y.s -mx32 -O -msse4 y.i
-da
[hjl@gnu-6 pr49798]$ cat y.s
.file "y.i"
.text
.globl foo
.type foo, @function
foo:
.LFB0:
.cfi_startproc
movl $xxxx, %eax
ret
.cfi_endproc
.LFE0:
.size foo, .-foo
.ident "GCC: (GNU) 4.7.0 20110720 (experimental)"
.section .note.GNU-stack,"",@progbits
[hjl@gnu-6 pr49798]$ cat y.i.223r.final
;; Function foo (foo, funcdef_no=0, decl_uid=1711, cgraph_uid=0)
(note 1 0 3 NOTE_INSN_DELETED)
(note 3 1 24 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(note 24 3 2 2 NOTE_INSN_PROLOGUE_END)
(note 2 24 17 2 NOTE_INSN_FUNCTION_BEG)
(insn 17 2 20 2 (set (reg/i:DI 0 ax)
(symbol_ref:DI ("xxxx") [flags 0x40] <var_decl 0x7ffdb52bb140 xxxx>))
y.i:12 62 {*movdi_internal_rex64}
(nil))
(insn 20 17 25 2 (use (reg/i:DI 0 ax)) y.i:12 -1
(nil))
(note 25 20 26 2 NOTE_INSN_EPILOGUE_BEG)
(jump_insn 26 25 27 2 (return) y.i:12 645 {return_internal}
(nil))
(barrier 27 26 23)
(note 23 27 0 NOTE_INSN_DELETED)
[hjl@gnu-6 pr49798]$