optimization/10877: [3.3/3.4 regression] miscompilation with -O3 -fPIC on x86
Andrew Pinski
pinskia@physics.uc.edu
Tue May 20 19:28:00 GMT 2003
Here is the differences between -O2 (works ---) and -O3 (does not work
+++):
--- testpic.O2.s Tue May 20 15:12:01 2003
+++ testpic.s Tue May 20 15:12:16 2003
@@ -12,13 +12,13 @@
.globl _Z5get_xv
.type _Z5get_xv, @function
_Z5get_xv:
- call __i686.get_pc_thunk.cx
- addl $_GLOBAL_OFFSET_TABLE_, %ecx
+ call __i686.get_pc_thunk.ax
+ addl $_GLOBAL_OFFSET_TABLE_, %eax
pushl %ebp
- movl i@GOT(%ecx), %eax
+ movl i@GOT(%eax), %edx
movl %esp, %ebp
popl %ebp
- movl (%eax), %eax
+ movl (%edx), %eax
ret
.size _Z5get_xv, .-_Z5get_xv
.align 2
@@ -28,26 +28,26 @@
main:
pushl %ebp
movl %esp, %ebp
- leal -8(%ebp), %edx
+ leal -8(%ebp), %eax
pushl %ebx
subl $4, %esp
andl $-16, %esp
call __i686.get_pc_thunk.bx
addl $_GLOBAL_OFFSET_TABLE_, %ebx
- movl i@GOT(%ebx), %eax
- movl %edx, (%eax)
+ movl i@GOT(%ebx), %ecx
+ movl %eax, (%ecx)
call _Z5get_xv@PLT
movl -4(%ebp), %ebx
xorl %eax, %eax
leave
ret
.size main, .-main
- .section
.gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
-.globl __i686.get_pc_thunk.cx
- .hidden __i686.get_pc_thunk.cx
- .type __i686.get_pc_thunk.cx, @function
-__i686.get_pc_thunk.cx:
- movl (%esp), %ecx
+ .section
.gnu.linkonce.t.__i686.get_pc_thunk.ax,"ax",@progbits
+.globl __i686.get_pc_thunk.ax
+ .hidden __i686.get_pc_thunk.ax
+ .type __i686.get_pc_thunk.ax, @function
+__i686.get_pc_thunk.ax:
+ movl (%esp), %eax
ret
.section
.gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
.globl __i686.get_pc_thunk.bx
looks like putting the pc_thunk into eax is the problem.
Thanks,
Andrew Pinski
On Tuesday, May 20, 2003, at 15:10 US/Eastern, Wolfgang Bangerth wrote:
>
>> I can reproduce it with `GNU assembler 2.11.93.0.2 20020207' tough so
>> it looks like it binutils fault but it has already been fixed.
>
> So what do we do with this, then? Since we silently generate
> non-working
> code, I'd prefer gcc work around the problem, but then I'm not in a
> position to contribute anything reasonable to this aim...
>
> W.
>
> -----------------------------------------------------------------------
> --
> Wolfgang Bangerth email:
> bangerth@ices.utexas.edu
> www:
> http://www.ices.utexas.edu/~bangerth/
>
>
>
>
More information about the Gcc-bugs
mailing list