--- gcc/config/i386/i386.c.orig Sat Sep 5 22:52:05 1998 +++ gcc/config/i386/i386.c Wed Oct 7 17:06:48 1998 @@ -51,6 +51,11 @@ #define CHECK_STACK_LIMIT -1 #endif +#define PIC_REG_USED \ + (flag_pic && (current_function_uses_pic_offset_table \ + || current_function_uses_const_pool \ + || profile_flag || profile_block_flag)) + /* Type of an operand for ix86_{binary,unary}_operator_ok */ enum reg_mem { @@ -1938,13 +1943,11 @@ char *name ATTRIBUTE_UNUSED; { rtx xops[2]; - int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table - || current_function_uses_const_pool); xops[0] = pic_offset_table_rtx; xops[1] = stack_pointer_rtx; /* Deep branch prediction favors having a return for every call. */ - if (pic_reg_used && TARGET_DEEP_BRANCH_PREDICTION) + if (PIC_REG_USED && TARGET_DEEP_BRANCH_PREDICTION) { tree prologue_node; @@ -2074,8 +2077,7 @@ register int regno; int limit; rtx xops[4]; - int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table - || current_function_uses_const_pool); + int pic_reg_used = PIC_REG_USED; long tsize = get_frame_size (); rtx insn; int cfa_offset = INCOMING_FRAME_SP_OFFSET, cfa_store_offset = cfa_offset; @@ -2245,8 +2247,6 @@ int nregs = 0; int reglimit = (frame_pointer_needed ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM); - int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table - || current_function_uses_const_pool); #ifdef NON_SAVING_SETJMP if (NON_SAVING_SETJMP && current_function_calls_setjmp) @@ -2258,7 +2258,7 @@ for (regno = reglimit - 1; regno >= 0; regno--) if ((regs_ever_live[regno] && ! call_used_regs[regno]) - || (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used)) + || (regno == PIC_OFFSET_TABLE_REGNUM && PIC_REG_USED)) nregs++; return nregs == 0 || ! frame_pointer_needed; @@ -2292,8 +2292,7 @@ register int nregs, limit; int offset; rtx xops[3]; - int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table - || current_function_uses_const_pool); + int pic_reg_used = PIC_REG_USED; long tsize = get_frame_size (); /* Compute the number of registers to pop */