From d4977f6ca69175185798177faa70d72df4e45d91 Mon Sep 17 00:00:00 2001 From: David Daney Date: Mon, 18 Jun 2007 17:36:42 +0000 Subject: [PATCH] re PR target/32313 (Bootstrap failure running gengtype in stage 2.) PR target/32313 * config/mips/mips.c (mips_expand_call): Mark $gp as used by local function call. From-SVN: r125818 --- gcc/ChangeLog | 6 ++++++ gcc/config/mips/mips.c | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 00b1ec91452..915643a11ac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-06-18 David Daney PR middle-end/32355 diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index a132f0ff4c9..287c5313cf2 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -3562,8 +3562,13 @@ mips_expand_call (rtx result, rtx addr, rtx args_size, rtx aux, int sibcall_p) insn = emit_call_insn (pattern); - /* Lazy-binding stubs require $gp to be valid on entry. */ - if (mips_ok_for_lazy_binding_p (orig_addr)) + /* Lazy-binding stubs require $gp to be valid on entry. So does the + case of calling a local function with TARGET_ABICALLS and + -mno-shared (a.k.a. TARGET_ABSOLUTE_ABICALLS). */ + if (mips_ok_for_lazy_binding_p (orig_addr) + || (TARGET_ABSOLUTE_ABICALLS + && (GET_CODE (orig_addr) == SYMBOL_REF) + && targetm.binds_local_p (SYMBOL_REF_DECL (orig_addr)))) use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx); } -- 2.30.2