[Bug target/24779] Python miscompilation - TOC reload

amodra at bigpond dot net dot au gcc-bugzilla@gcc.gnu.org
Wed Nov 16 11:03:00 GMT 2005



------- Comment #3 from amodra at bigpond dot net dot au  2005-11-16 11:03 -------
The testcase in comment #2 is invalid.  You can't trash part of a function
pointer (the toc pointer) and expect everything to be rosy.  However, the
testcase in comment #1 does indeed show the problem you describe.

0x0000000010000644 <loghelper+100>:     ld      r0,0(r29)
0x0000000010000648 <loghelper+104>:     ld      r2,8(r29)  <- load func ptr toc
0x000000001000064c <loghelper+108>:     mtctr   r0
0x0000000010000650 <loghelper+112>:     ld      r0,128(r1)
0x0000000010000654 <loghelper+116>:     std     r0,144(r1)
0x0000000010000658 <loghelper+120>:     nop
0x000000001000065c <loghelper+124>:     lfd     f0,144(r1)
0x0000000010000660 <loghelper+128>:     fcfid   f31,f0
0x0000000010000664 <loghelper+132>:     lfd     f0,-32696(r2) <- bad r2 !!!
0x0000000010000668 <loghelper+136>:     fmul    f31,f31,f0
0x000000001000066c <loghelper+140>:     bctrl
0x0000000010000670 <loghelper+144>:     ld      r2,40(r1)


-- 

amodra at bigpond dot net dot au changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amodra at bigpond dot net
                   |                            |dot au
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-11-16 11:03:41
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24779



More information about the Gcc-bugs mailing list