Commit d290bb1d by Ilya Enkovich Committed by Ilya Enkovich

i386-protos.h (ix86_use_pseudo_pic_reg): New.

	* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
	* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
	using x86_use_pseudo_pic_reg.
	* config/i386/i386.c (ix86_conditional_register_usage): Remove
	support for fixed PIC register.
	(ix86_use_pseudo_pic_reg): Not static any more.


Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r220242
parent e11627e9
2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com> 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
using x86_use_pseudo_pic_reg.
* config/i386/i386.c (ix86_conditional_register_usage): Remove
support for fixed PIC register.
(ix86_use_pseudo_pic_reg): Not static any more.
2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
PR middle-end/64805 PR middle-end/64805
* ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
......
...@@ -40,6 +40,8 @@ extern void ix86_output_addr_diff_elt (FILE *, int, int); ...@@ -40,6 +40,8 @@ extern void ix86_output_addr_diff_elt (FILE *, int, int);
extern enum calling_abi ix86_cfun_abi (void); extern enum calling_abi ix86_cfun_abi (void);
extern enum calling_abi ix86_function_type_abi (const_tree); extern enum calling_abi ix86_function_type_abi (const_tree);
extern bool ix86_use_pseudo_pic_reg (void);
extern void ix86_reset_previous_fndecl (void); extern void ix86_reset_previous_fndecl (void);
#ifdef RTX_CODE #ifdef RTX_CODE
......
...@@ -4384,12 +4384,6 @@ static void ...@@ -4384,12 +4384,6 @@ static void
ix86_conditional_register_usage (void) ix86_conditional_register_usage (void)
{ {
int i, c_mask; int i, c_mask;
unsigned int j;
/* The PIC register, if it exists, is fixed. */
j = PIC_OFFSET_TABLE_REGNUM;
if (j != INVALID_REGNUM)
fixed_regs[j] = call_used_regs[j] = 1;
/* For 32-bit targets, squash the REX registers. */ /* For 32-bit targets, squash the REX registers. */
if (! TARGET_64BIT) if (! TARGET_64BIT)
...@@ -6265,7 +6259,7 @@ ix86_maybe_switch_abi (void) ...@@ -6265,7 +6259,7 @@ ix86_maybe_switch_abi (void)
/* Return 1 if pseudo register should be created and used to hold /* Return 1 if pseudo register should be created and used to hold
GOT address for PIC code. */ GOT address for PIC code. */
static bool bool
ix86_use_pseudo_pic_reg (void) ix86_use_pseudo_pic_reg (void)
{ {
if ((TARGET_64BIT if ((TARGET_64BIT
...@@ -1256,13 +1256,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); ...@@ -1256,13 +1256,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
#define REAL_PIC_OFFSET_TABLE_REGNUM (TARGET_64BIT ? R15_REG : BX_REG) #define REAL_PIC_OFFSET_TABLE_REGNUM (TARGET_64BIT ? R15_REG : BX_REG)
#define PIC_OFFSET_TABLE_REGNUM \ #define PIC_OFFSET_TABLE_REGNUM \
((TARGET_64BIT && (ix86_cmodel == CM_SMALL_PIC \ (ix86_use_pseudo_pic_reg () \
|| TARGET_PECOFF)) \ ? (pic_offset_table_rtx \
|| !flag_pic \ ? INVALID_REGNUM \
? INVALID_REGNUM \ : REAL_PIC_OFFSET_TABLE_REGNUM) \
: pic_offset_table_rtx \ : INVALID_REGNUM)
? INVALID_REGNUM \
: REAL_PIC_OFFSET_TABLE_REGNUM)
#define GOT_SYMBOL_NAME "_GLOBAL_OFFSET_TABLE_" #define GOT_SYMBOL_NAME "_GLOBAL_OFFSET_TABLE_"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment