When bootstrapping for EV4, pp_base_set_prefix is miscompiled.  An fnop is
emitted between the two insns of the initial ldgp pair.

The abi for "standard pv usage", implied by ".prologue 1", requires that this
instruction pair be sequential.  Which allows the linker to alter "jsr foo"
into "bsr foo+8".

With the additional fnop, a bsr pp_base_set_prefix+8 results in the gp being
corrupted.  Hilarity ensues.

-- 
           Summary: bootstrap failure with linker relaxation enabled
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: rth at gcc dot gnu dot org
        ReportedBy: rth at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: alpha-linux


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

Reply via email to