* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
authorienkovich <ienkovich@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Jan 2015 12:24:06 +0000 (12:24 +0000)
committerienkovich <ienkovich@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Jan 2015 12:24:06 +0000 (12:24 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220242 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.c
gcc/config/i386/i386.h

index 7afc301..295884e 100644 (file)
@@ -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
index 17aed5a..3962427 100644 (file)
@@ -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
index 1db8070..fecb855 100644 (file)
@@ -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
index 395778c..5d1e5e0 100644 (file)
@@ -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_"