This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/49798] .quad instead of .long is used for address for x32


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]$


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]