This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/60104] load not folded into indirect branch on x86-64
- From: "fxcoudert at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 15 Nov 2014 16:49:37 +0000
- Subject: [Bug target/60104] load not folded into indirect branch on x86-64
- Auto-submitted: auto-generated
- References: <bug-60104-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60104
--- Comment #3 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
Testcase gcc.target/i386/sibcall-1.c fails on x86_64-apple-darwin14 (compiled
with "-O2 -m32"). Assembler code generated is:
.section __TEXT,__text_cold,regular,pure_instructions
LCOLDB0:
.text
LHOTB0:
.align 4,0x90
.globl _boo
_boo:
LFB0:
call ___x86.get_pc_thunk.ax
L1$pb:
movl L_foo$non_lazy_ptr-L1$pb(%eax), %eax
movl (%eax), %eax
jmp *%eax
LFE0:
.section __TEXT,__text_cold,regular,pure_instructions
LCOLDE0:
.text
LHOTE0:
.section __TEXT,__textcoal_nt,coalesced,pure_instructions
.weak_definition ___x86.get_pc_thunk.ax
.private_extern ___x86.get_pc_thunk.ax
___x86.get_pc_thunk.ax:
LFB1:
movl (%esp), %eax
ret
LFE1:
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
.set L$set$0,LECIE1-LSCIE1
.long L$set$0
LSCIE1:
.long 0
.byte 0x1
.ascii "zR\0"
.byte 0x1
.byte 0x7c
.byte 0x8
.byte 0x1
.byte 0x10
.byte 0xc
.byte 0x5
.byte 0x4
.byte 0x88
.byte 0x1
.align 2
LECIE1:
LSFDE1:
.set L$set$1,LEFDE1-LASFDE1
.long L$set$1
LASFDE1:
.long LASFDE1-EH_frame1
.long LFB0-.
.set L$set$2,LFE0-LFB0
.long L$set$2
.byte 0
.align 2
LEFDE1:
LSFDE3:
.set L$set$3,LEFDE3-LASFDE3
.long L$set$3
LASFDE3:
.long LASFDE3-EH_frame1
.long LFB1-.
.set L$set$4,LFE1-LFB1
.long L$set$4
.byte 0
.align 2
LEFDE3:
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_foo$non_lazy_ptr:
.indirect_symbol _foo
.long 0
.subsections_via_symbols