mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
e11627e99a
commit
d290bb1d72
|
|
@ -1,3 +1,13 @@
|
||||||
|
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>
|
2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
|
||||||
|
|
||||||
PR middle-end/64805
|
PR middle-end/64805
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
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)
|
||||||
|
|
||||||
/* 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);
|
||||||
#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 \
|
||||||
: pic_offset_table_rtx \
|
: REAL_PIC_OFFSET_TABLE_REGNUM) \
|
||||||
? INVALID_REGNUM \
|
: INVALID_REGNUM)
|
||||||
: REAL_PIC_OFFSET_TABLE_REGNUM)
|
|
||||||
|
|
||||||
#define GOT_SYMBOL_NAME "_GLOBAL_OFFSET_TABLE_"
|
#define GOT_SYMBOL_NAME "_GLOBAL_OFFSET_TABLE_"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue