diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2015-01-29 12:24:06 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2015-01-29 12:24:06 +0000 |
commit | d290bb1d72b5ef24be30d43abcaa17caa387c3c6 (patch) | |
tree | c243f2fd2e0ea79c58cd180cf87aa906b319615e /gcc | |
parent | e11627e99afac67809c632f2ab030461129bdb02 (diff) | |
download | gcc-d290bb1d72b5ef24be30d43abcaa17caa387c3c6.zip gcc-d290bb1d72b5ef24be30d43abcaa17caa387c3c6.tar.gz gcc-d290bb1d72b5ef24be30d43abcaa17caa387c3c6.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/i386/i386-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 8 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 12 |
4 files changed, 18 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7afc301..295884e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,14 @@ 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 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h index 17aed5a..3962427 100644 --- a/gcc/config/i386/i386-protos.h +++ b/gcc/config/i386/i386-protos.h @@ -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_function_type_abi (const_tree); +extern bool ix86_use_pseudo_pic_reg (void); + extern void ix86_reset_previous_fndecl (void); #ifdef RTX_CODE diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 1db8070..fecb855 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -4384,12 +4384,6 @@ static void ix86_conditional_register_usage (void) { 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. */ if (! TARGET_64BIT) @@ -6265,7 +6259,7 @@ ix86_maybe_switch_abi (void) /* Return 1 if pseudo register should be created and used to hold GOT address for PIC code. */ -static bool +bool ix86_use_pseudo_pic_reg (void) { if ((TARGET_64BIT diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 395778c..5d1e5e0 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -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 PIC_OFFSET_TABLE_REGNUM \ - ((TARGET_64BIT && (ix86_cmodel == CM_SMALL_PIC \ - || TARGET_PECOFF)) \ - || !flag_pic \ - ? INVALID_REGNUM \ - : pic_offset_table_rtx \ - ? INVALID_REGNUM \ - : REAL_PIC_OFFSET_TABLE_REGNUM) + (ix86_use_pseudo_pic_reg () \ + ? (pic_offset_table_rtx \ + ? INVALID_REGNUM \ + : REAL_PIC_OFFSET_TABLE_REGNUM) \ + : INVALID_REGNUM) #define GOT_SYMBOL_NAME "_GLOBAL_OFFSET_TABLE_" |