rs6000.c (rs6000_pic_labelno): Make static.
* config/rs6000/rs6000.c (rs6000_pic_labelno): Make static. (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when TARGET_SECURE_PLT. * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare. * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint on input, "r" on output. From-SVN: r166249
This commit is contained in:
parent
3f347d8c82
commit
e977d24c8e
|
@ -1,3 +1,12 @@
|
|||
2010-11-04 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
|
||||
(rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
|
||||
TARGET_SECURE_PLT.
|
||||
* config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
|
||||
* config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
|
||||
on input, "r" on output.
|
||||
|
||||
2010-10-30 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR middle-end/44569
|
||||
|
|
|
@ -199,7 +199,7 @@ int rs6000_compare_fp_p;
|
|||
|
||||
/* Label number of label created for -mrelocatable, to call to so we can
|
||||
get the address of the GOT section */
|
||||
int rs6000_pic_labelno;
|
||||
static int rs6000_pic_labelno;
|
||||
|
||||
#ifdef USING_ELFOS_H
|
||||
/* Which abi to adhere to */
|
||||
|
@ -15330,7 +15330,8 @@ rs6000_emit_load_toc_table (int fromprolog)
|
|||
char buf[30];
|
||||
rtx lab, tmp1, tmp2, got;
|
||||
|
||||
ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno);
|
||||
lab = gen_label_rtx ();
|
||||
ASM_GENERATE_INTERNAL_LABEL (buf, "L", CODE_LABEL_NUMBER (lab));
|
||||
lab = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
|
||||
if (flag_pic == 2)
|
||||
got = gen_rtx_SYMBOL_REF (Pmode, toc_label_name);
|
||||
|
@ -15343,8 +15344,7 @@ rs6000_emit_load_toc_table (int fromprolog)
|
|||
tmp2 = gen_reg_rtx (Pmode);
|
||||
}
|
||||
emit_insn (gen_load_toc_v4_PIC_1 (lab));
|
||||
emit_move_insn (tmp1,
|
||||
gen_rtx_REG (Pmode, LR_REGNO));
|
||||
emit_move_insn (tmp1, gen_rtx_REG (Pmode, LR_REGNO));
|
||||
emit_insn (gen_load_toc_v4_PIC_3b (tmp2, tmp1, got, lab));
|
||||
emit_insn (gen_load_toc_v4_PIC_3c (dest, tmp2, got, lab));
|
||||
}
|
||||
|
@ -15371,8 +15371,7 @@ rs6000_emit_load_toc_table (int fromprolog)
|
|||
symL = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
|
||||
|
||||
emit_insn (gen_load_toc_v4_PIC_1 (symF));
|
||||
emit_move_insn (dest,
|
||||
gen_rtx_REG (Pmode, LR_REGNO));
|
||||
emit_move_insn (dest, gen_rtx_REG (Pmode, LR_REGNO));
|
||||
emit_insn (gen_load_toc_v4_PIC_2 (temp0, dest, symL, symF));
|
||||
}
|
||||
else
|
||||
|
|
|
@ -10737,8 +10737,8 @@
|
|||
[(set_attr "type" "load")])
|
||||
|
||||
(define_insn "load_toc_v4_PIC_3b"
|
||||
[(set (match_operand:SI 0 "gpc_reg_operand" "=b")
|
||||
(plus:SI (match_operand:SI 1 "gpc_reg_operand" "r")
|
||||
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
|
||||
(plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
|
||||
(high:SI
|
||||
(minus:SI (match_operand:SI 2 "symbol_ref_operand" "s")
|
||||
(match_operand:SI 3 "symbol_ref_operand" "s")))))]
|
||||
|
|
|
@ -416,8 +416,6 @@ do { \
|
|||
Some svr4 assemblers need to also have something extra said about the
|
||||
function's return value. We allow for that here. */
|
||||
|
||||
extern int rs6000_pic_labelno;
|
||||
|
||||
/* Override elfos.h definition. */
|
||||
#undef ASM_DECLARE_FUNCTION_NAME
|
||||
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
|
||||
|
|
Loading…
Reference in New Issue