[PATCH] ARM: Wrap PIC GOT adjustment in unspec

Richard Earnshaw rearnsha@buzzard.freeserve.co.uk
Thu Mar 20 22:20:00 GMT 2003


Combine sometimes tries to merge the pic base calculation instructions 
with a single use of the pic base.  It normally fails to do this and 
restores everything as is.  Unfortunately, sometimes when it fails it 
tries to split the mess it has made up (by calling split_insns) and 
manages to make something that appears to be reasonable, but isn't (since 
it's dropped a label).  This then causes the compiler to output a 
reference to a missing label and causes the assembler to choke.

Fixed by wrapping the PIC adjustment insns in an UNSPEC.

Fixes PR 10066.  Bootstrapped on arm-linux and installed on the trunk and 
3.3 branch.

R.
2003-03-20  Richard Earnshaw  <rearnsha@arm.com>

        PR 10066
        * arm.md (UNSPEC_PIC_BASE): New constant.
        (pic_add_dot_plus_four): Wrap with unspec.
        (pic_add_dot_plus_eight): Likewise.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: picwrap.patch
Type: text/x-patch
Size: 2622 bytes
Desc: picwrap.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030320/d8e927d5/attachment.bin>


More information about the Gcc-patches mailing list