diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 420b3ac8fbfaa31fcf2050eeea34d740224489a6..6450f18b53f6e9b798b035b53a784ebd0b1dd87e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-09-24 Iain Sandoe <iain@sandoe.co.uk> + + * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using + the 'P' mode iterator, replacing the (removed) SI and DI variants. + (reload_macho_picbase_<mode>): Likewise. + 2019-09-24 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/rs6000.md: Move darwin.md include until diff --git a/gcc/config/rs6000/darwin.md b/gcc/config/rs6000/darwin.md index 471058dd417756acf44071cb56314355f1a65ebc..4a284211afba7f7672c2f35b55eea7b7885439af 100644 --- a/gcc/config/rs6000/darwin.md +++ b/gcc/config/rs6000/darwin.md @@ -217,7 +217,7 @@ You should have received a copy of the GNU General Public License "") (define_expand "load_macho_picbase" - [(set (reg:SI LR_REGNO) + [(set (reg LR_REGNO) (unspec [(match_operand 0 "")] UNSPEC_LD_MPIC))] "(DEFAULT_ABI == ABI_DARWIN) && flag_pic" @@ -230,9 +230,9 @@ You should have received a copy of the GNU General Public License DONE; }) -(define_insn "load_macho_picbase_si" - [(set (reg:SI LR_REGNO) - (unspec:SI [(match_operand:SI 0 "immediate_operand" "s") +(define_insn "load_macho_picbase_<mode>" + [(set (reg:P LR_REGNO) + (unspec:P [(match_operand:P 0 "immediate_operand" "s") (pc)] UNSPEC_LD_MPIC))] "(DEFAULT_ABI == ABI_DARWIN) && flag_pic" { @@ -246,22 +246,6 @@ You should have received a copy of the GNU General Public License [(set_attr "type" "branch") (set_attr "cannot_copy" "yes")]) -(define_insn "load_macho_picbase_di" - [(set (reg:DI LR_REGNO) - (unspec:DI [(match_operand:DI 0 "immediate_operand" "s") - (pc)] UNSPEC_LD_MPIC))] - "(DEFAULT_ABI == ABI_DARWIN) && flag_pic && TARGET_64BIT" -{ -#if TARGET_MACHO - machopic_should_output_picbase_label (); /* Update for new func. */ -#else - gcc_unreachable (); -#endif - return "bcl 20,31,%0\n%0:"; -} - [(set_attr "type" "branch") - (set_attr "cannot_copy" "yes")]) - (define_expand "macho_correct_pic" [(set (match_operand 0 "") (plus (match_operand 1 "") @@ -301,7 +285,7 @@ You should have received a copy of the GNU General Public License [(set_attr "length" "8")]) (define_expand "reload_macho_picbase" - [(set (reg:SI LR_REGNO) + [(set (reg LR_REGNO) (unspec [(match_operand 0 "")] UNSPEC_RELD_MPIC))] "(DEFAULT_ABI == ABI_DARWIN) && flag_pic" @@ -314,9 +298,9 @@ You should have received a copy of the GNU General Public License DONE; }) -(define_insn "reload_macho_picbase_si" - [(set (reg:SI LR_REGNO) - (unspec:SI [(match_operand:SI 0 "immediate_operand" "s") +(define_insn "reload_macho_picbase_<mode>" + [(set (reg:P LR_REGNO) + (unspec:P [(match_operand:P 0 "immediate_operand" "s") (pc)] UNSPEC_RELD_MPIC))] "(DEFAULT_ABI == ABI_DARWIN) && flag_pic" { @@ -337,29 +321,6 @@ You should have received a copy of the GNU General Public License [(set_attr "type" "branch") (set_attr "cannot_copy" "yes")]) -(define_insn "reload_macho_picbase_di" - [(set (reg:DI LR_REGNO) - (unspec:DI [(match_operand:DI 0 "immediate_operand" "s") - (pc)] UNSPEC_RELD_MPIC))] - "(DEFAULT_ABI == ABI_DARWIN) && flag_pic && TARGET_64BIT" -{ -#if TARGET_MACHO - if (machopic_should_output_picbase_label ()) - { - static char tmp[64]; - const char *cnam = machopic_get_function_picbase (); - snprintf (tmp, 64, "bcl 20,31,%s\n%s:\n%%0:", cnam, cnam); - return tmp; - } - else -#else - gcc_unreachable (); -#endif - return "bcl 20,31,%0\n%0:"; -} - [(set_attr "type" "branch") - (set_attr "cannot_copy" "yes")]) - ;; We need to restore the PIC register, at the site of nonlocal label. (define_insn_and_split "nonlocal_goto_receiver"