From d25a2a8ca9b7ad3f53ba762346b44dc6dd2ef6d3 Mon Sep 17 00:00:00 2001 From: rth Date: Thu, 23 May 2002 08:17:14 +0000 Subject: [PATCH] * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace. (ix86_arch): Set type to enum processor_type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53779 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++ gcc/config/i386/i386.c | 54 ++++++++++++---------- gcc/config/i386/i386.h | 123 ++++++++++++++++++++++++------------------------- 3 files changed, 99 insertions(+), 86 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd18993..6aec867 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2002-05-23 Richard Henderson + + * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace. + (ix86_arch): Set type to enum processor_type. + + * config/i386/i386.md (movsi_1, movdi_1_rex64): Use + LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST. + 2002-05-23 Jakub Jelinek * configure.in: Fix as version test for binutils 2.12.1 releases diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 96d0916..c4752e6 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -399,15 +399,17 @@ const int x86_arch_always_fancy_math_387 = m_PENT|m_PPRO|m_ATHLON|m_PENT4; lower than this constant, emit fast (but longer) prologue and epilogue code. */ #define FAST_PROLOGUE_INSN_COUNT 30 + /* Set by prologue expander and used by epilogue expander to determine the style used. */ static int use_fast_prologue_epilogue; #define AT_BP(MODE) (gen_rtx_MEM ((MODE), hard_frame_pointer_rtx)) -static const char *const hi_reg_name[] = HI_REGISTER_NAMES; /* names for 16 bit regs */ -static const char *const qi_reg_name[] = QI_REGISTER_NAMES; /* names for 8 bit regs (low) */ -static const char *const qi_high_reg_name[] = QI_HIGH_REGISTER_NAMES; /* names for 8 bit regs (high) */ +/* Names for 8 (low), 8 (high), and 16-bit registers, respectively. */ +static const char *const qi_reg_name[] = QI_REGISTER_NAMES; +static const char *const qi_high_reg_name[] = QI_HIGH_REGISTER_NAMES; +static const char *const hi_reg_name[] = HI_REGISTER_NAMES; /* Array of the smallest class containing reg number REGNO, indexed by REGNO. Used by REGNO_REG_CLASS in i386.h. */ @@ -448,11 +450,16 @@ int const dbx_register_map[FIRST_PSEUDO_REGISTER] = -1, -1, -1, -1, -1, -1, -1, -1, /* extended SSE registers */ }; -static int const x86_64_int_parameter_registers[6] = {5 /*RDI*/, 4 /*RSI*/, - 1 /*RDX*/, 2 /*RCX*/, - FIRST_REX_INT_REG /*R8 */, - FIRST_REX_INT_REG + 1 /*R9 */}; -static int const x86_64_int_return_registers[4] = {0 /*RAX*/, 1 /*RDI*/, 5, 4}; +static int const x86_64_int_parameter_registers[6] = +{ + 5 /*RDI*/, 4 /*RSI*/, 1 /*RDX*/, 2 /*RCX*/, + FIRST_REX_INT_REG /*R8 */, FIRST_REX_INT_REG + 1 /*R9 */ +}; + +static int const x86_64_int_return_registers[4] = +{ + 0 /*RAX*/, 1 /*RDI*/, 5 /*RDI*/, 4 /*RSI*/ +}; /* The "default" register map used in 64bit mode. */ int const dbx64_register_map[FIRST_PSEUDO_REGISTER] = @@ -598,14 +605,13 @@ enum cmodel ix86_cmodel; const char *ix86_asm_string; enum asm_dialect ix86_asm_dialect = ASM_ATT; -/* which cpu are we scheduling for */ -enum processor_type ix86_cpu; - -/* which unit we are generating floating point math for */ +/* Which unit we are generating floating point math for. */ enum fpmath_unit ix86_fpmath; -/* which instruction set architecture to use. */ -int ix86_arch; +/* Which cpu are we scheduling for. */ +enum processor_type ix86_cpu; +/* Which instruction set architecture to use. */ +enum processor_type ix86_arch; /* Strings to hold which cpu and instruction set architecture to use. */ const char *ix86_cpu_string; /* for -mcpu= */ @@ -4941,7 +4947,7 @@ legitimate_address_p (mode, addr, strict) fprintf (stderr, "Success.\n"); return TRUE; -report_error: + report_error: if (TARGET_DEBUG_ADDR) { fprintf (stderr, "Error: %s\n", reason); @@ -4955,10 +4961,10 @@ report_error: static HOST_WIDE_INT ix86_GOT_alias_set () { - static HOST_WIDE_INT set = -1; - if (set == -1) - set = new_alias_set (); - return set; + static HOST_WIDE_INT set = -1; + if (set == -1) + set = new_alias_set (); + return set; } /* Return a legitimate reference for ORIG (an address) using the @@ -5409,7 +5415,7 @@ output_pic_addr_const (file, x, code) case UNSPEC: if (XVECLEN (x, 0) != 1) - abort (); + abort (); output_pic_addr_const (file, XVECEXP (x, 0, 0), code); switch (XINT (x, 1)) { @@ -5637,7 +5643,7 @@ print_reg (x, code, file) || REGNO (x) == FPSR_REG) abort (); - if (ASSEMBLER_DIALECT == ASM_ATT || USER_LABEL_PREFIX[0] == 0) + if (ASSEMBLER_DIALECT == ASM_ATT || USER_LABEL_PREFIX[0] == 0) putc ('%', file); if (code == 'w' || MMX_REG_P (x)) @@ -6041,7 +6047,7 @@ print_operand (file, x, code) if (flag_pic && CONSTANT_ADDRESS_P (x)) output_pic_addr_const (file, x, code); /* Avoid (%rip) for call operands. */ - else if (CONSTANT_ADDRESS_P (x) && code =='P' + else if (CONSTANT_ADDRESS_P (x) && code == 'P' && GET_CODE (x) != CONST_INT) output_addr_const (file, x); else if (this_is_asm_operands && ! address_operand (x, VOIDmode)) @@ -10048,8 +10054,8 @@ memory_address_length (addr) return len; } -/* Compute default value for "length_immediate" attribute. When SHORTFORM is set - expect that insn have 8bit immediate alternative. */ +/* Compute default value for "length_immediate" attribute. When SHORTFORM + is set, expect that insn have 8bit immediate alternative. */ int ix86_attr_length_immediate_default (insn, shortform) rtx insn; diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 2772901..aac6efa 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -389,31 +389,6 @@ extern int x86_prefetch_sse; #define TARGET_DEFAULT TARGET_SUBTARGET_DEFAULT #endif -/* Which processor to schedule for. The cpu attribute defines a list that - mirrors this list, so changes to i386.md must be made at the same time. */ - -enum processor_type -{ - PROCESSOR_I386, /* 80386 */ - PROCESSOR_I486, /* 80486DX, 80486SX, 80486DX[24] */ - PROCESSOR_PENTIUM, - PROCESSOR_PENTIUMPRO, - PROCESSOR_K6, - PROCESSOR_ATHLON, - PROCESSOR_PENTIUM4, - PROCESSOR_max -}; -enum fpmath_unit -{ - FPMATH_387 = 1, - FPMATH_SSE = 2 -}; - -extern enum processor_type ix86_cpu; -extern enum fpmath_unit ix86_fpmath; - -extern int ix86_arch; - /* This macro is similar to `TARGET_SWITCHES' but defines names of command options that have values. Its definition is an initializer with a subgrouping for each command option. @@ -3228,57 +3203,81 @@ extern int const svr4_dbx_register_map[FIRST_PSEUDO_REGISTER]; #define SPECIAL_MODE_PREDICATES \ "ext_register_operand", -/* CM_32 is used by 32bit ABI - CM_SMALL is small model assuming that all code and data fits in the first - 31bits of address space. - CM_KERNEL is model assuming that all code and data fits in the negative - 31bits of address space. - CM_MEDIUM is model assuming that code fits in the first 31bits of address - space. Size of data is unlimited. - CM_LARGE is model making no assumptions about size of particular sections. - - CM_SMALL_PIC is model for PIC libraries assuming that code+data+got/plt - tables first in 31bits of address space. - */ +/* Which processor to schedule for. The cpu attribute defines a list that + mirrors this list, so changes to i386.md must be made at the same time. */ + +enum processor_type +{ + PROCESSOR_I386, /* 80386 */ + PROCESSOR_I486, /* 80486DX, 80486SX, 80486DX[24] */ + PROCESSOR_PENTIUM, + PROCESSOR_PENTIUMPRO, + PROCESSOR_K6, + PROCESSOR_ATHLON, + PROCESSOR_PENTIUM4, + PROCESSOR_max +}; + +extern enum processor_type ix86_cpu; +extern const char *ix86_cpu_string; + +extern enum processor_type ix86_arch; +extern const char *ix86_arch_string; + +enum fpmath_unit +{ + FPMATH_387 = 1, + FPMATH_SSE = 2 +}; + +extern enum fpmath_unit ix86_fpmath; +extern const char *ix86_fpmath_string; + enum cmodel { - CM_32, - CM_SMALL, - CM_KERNEL, - CM_MEDIUM, - CM_LARGE, - CM_SMALL_PIC + CM_32, /* The traditional 32-bit ABI. */ + CM_SMALL, /* Assumes all code and data fits in the low 31 bits. */ + CM_KERNEL, /* Assumes all code and data fits in the high 31 bits. */ + CM_MEDIUM, /* Assumes code fits in the low 31 bits; data unlimited. */ + CM_LARGE, /* No assumptions. */ + CM_SMALL_PIC /* Assumes code+data+got/plt fits in a 31 bit region. */ }; +extern enum cmodel ix86_cmodel; +extern const char *ix86_cmodel_string; + /* Size of the RED_ZONE area. */ #define RED_ZONE_SIZE 128 /* Reserved area of the red zone for temporaries. */ #define RED_ZONE_RESERVE 8 -extern const char *ix86_debug_arg_string, *ix86_debug_addr_string; enum asm_dialect { ASM_ATT, ASM_INTEL }; + extern const char *ix86_asm_string; extern enum asm_dialect ix86_asm_dialect; -/* Value of -mcmodel specified by user. */ -extern const char *ix86_cmodel_string; -extern enum cmodel ix86_cmodel; - -/* Variables in i386.c */ -extern const char *ix86_cpu_string; /* for -mcpu= */ -extern const char *ix86_arch_string; /* for -march= */ -extern const char *ix86_fpmath_string; /* for -mfpmath= */ -extern const char *ix86_regparm_string; /* # registers to use to pass args */ -extern const char *ix86_align_loops_string; /* power of two alignment for loops */ -extern const char *ix86_align_jumps_string; /* power of two alignment for non-loop jumps */ -extern const char *ix86_align_funcs_string; /* power of two alignment for functions */ -extern const char *ix86_preferred_stack_boundary_string;/* power of two alignment for stack boundary */ -extern const char *ix86_branch_cost_string; /* values 1-5: see jump.c */ -extern int ix86_regparm; /* ix86_regparm_string as a number */ -extern int ix86_preferred_stack_boundary; /* preferred stack boundary alignment in bits */ -extern int ix86_branch_cost; /* values 1-5: see jump.c */ -extern enum reg_class const regclass_map[FIRST_PSEUDO_REGISTER]; /* smalled class containing REGNO */ + +extern int ix86_regparm; +extern const char *ix86_regparm_string; + +extern int ix86_preferred_stack_boundary; +extern const char *ix86_preferred_stack_boundary_string; + +extern int ix86_branch_cost; +extern const char *ix86_branch_cost_string; + +extern const char *ix86_debug_arg_string; +extern const char *ix86_debug_addr_string; + +/* Obsoleted by -f options. Remove before 3.2 ships. */ +extern const char *ix86_align_loops_string; +extern const char *ix86_align_jumps_string; +extern const char *ix86_align_funcs_string; + +/* Smallest class containing REGNO. */ +extern enum reg_class const regclass_map[FIRST_PSEUDO_REGISTER]; + extern rtx ix86_compare_op0; /* operand 0 for comparisons */ extern rtx ix86_compare_op1; /* operand 1 for comparisons */ -- 2.7.4