"")
(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"
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"
{
[(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 "")
[(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"
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"
{
[(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"