[Darwin, PPC] Fix PR71496 by marking pic base loads as non-copyable.
The Darwin pic base loads (and reloads for non-local-gotos) are not validly copied (since the pic base label would be duplicated). Thus, mark the pic base {re-}loads as non-copyable. gcc/ 2016-12-11 Iain Sandoe <iain@codesourcery.com> PR rtl-optimization/71496 * config/rs6000/darwin.md (load_macho_picbase_si): Mark as non- copyable. (load_macho_picbase_di, reload_macho_picbase_si, reload_macho_picbase_di): Likewise. From-SVN: r243532
This commit is contained in:
parent
84c9e5ff79
commit
38dce2c34c
@ -1,3 +1,10 @@
|
||||
2016-12-11 Iain Sandoe <iain@codesourcery.com>
|
||||
|
||||
PR rtl-optimization/71496
|
||||
* config/rs6000/darwin.md (load_macho_picbase_si): Mark as non-
|
||||
copyable. (load_macho_picbase_di, reload_macho_picbase_si,
|
||||
reload_macho_picbase_di): Likewise.
|
||||
|
||||
2012-12-11 John David Anglin <danglin@gcc.gnu.org>
|
||||
|
||||
* config/pa/pa.c (pa_callee_copies): New function.
|
||||
|
@ -265,6 +265,7 @@ You should have received a copy of the GNU General Public License
|
||||
return "bcl 20,31,%0\\n%0:";
|
||||
}
|
||||
[(set_attr "type" "branch")
|
||||
(set_attr "cannot_copy" "yes")
|
||||
(set_attr "length" "4")])
|
||||
|
||||
(define_insn "load_macho_picbase_di"
|
||||
@ -281,6 +282,7 @@ You should have received a copy of the GNU General Public License
|
||||
return "bcl 20,31,%0\\n%0:";
|
||||
}
|
||||
[(set_attr "type" "branch")
|
||||
(set_attr "cannot_copy" "yes")
|
||||
(set_attr "length" "4")])
|
||||
|
||||
(define_expand "macho_correct_pic"
|
||||
@ -416,6 +418,7 @@ You should have received a copy of the GNU General Public License
|
||||
return "bcl 20,31,%0\\n%0:";
|
||||
}
|
||||
[(set_attr "type" "branch")
|
||||
(set_attr "cannot_copy" "yes")
|
||||
(set_attr "length" "4")])
|
||||
|
||||
(define_insn "reload_macho_picbase_di"
|
||||
@ -439,6 +442,7 @@ You should have received a copy of the GNU General Public License
|
||||
return "bcl 20,31,%0\\n%0:";
|
||||
}
|
||||
[(set_attr "type" "branch")
|
||||
(set_attr "cannot_copy" "yes")
|
||||
(set_attr "length" "4")])
|
||||
|
||||
;; We need to restore the PIC register, at the site of nonlocal label.
|
||||
|
Loading…
Reference in New Issue
Block a user