Commit 3a0433fd by Stan Cox

(TARGET_PENTIUMPRO, TARGET_CMOVE, BRANCH_COST,

From-SVN: r11916
parent e5cb57e8
...@@ -145,6 +145,7 @@ extern int target_flags; ...@@ -145,6 +145,7 @@ extern int target_flags;
#define TARGET_386 (ix86_cpu == PROCESSOR_I386) #define TARGET_386 (ix86_cpu == PROCESSOR_I386)
#define TARGET_486 (ix86_cpu == PROCESSOR_I486) #define TARGET_486 (ix86_cpu == PROCESSOR_I486)
#define TARGET_PENTIUM (ix86_cpu == PROCESSOR_PENTIUM) #define TARGET_PENTIUM (ix86_cpu == PROCESSOR_PENTIUM)
#define TARGET_PENTIUMPRO (ix86_cpu == PROCESSOR_PENTIUMPRO)
#define TARGET_USE_LEAVE (ix86_cpu == PROCESSOR_I386) #define TARGET_USE_LEAVE (ix86_cpu == PROCESSOR_I386)
#define TARGET_PUSH_MEMORY (ix86_cpu == PROCESSOR_I386) #define TARGET_PUSH_MEMORY (ix86_cpu == PROCESSOR_I386)
#define TARGET_ZERO_EXTEND_WITH_AND (ix86_cpu != PROCESSOR_I386) #define TARGET_ZERO_EXTEND_WITH_AND (ix86_cpu != PROCESSOR_I386)
...@@ -153,6 +154,8 @@ extern int target_flags; ...@@ -153,6 +154,8 @@ extern int target_flags;
#define TARGET_UNROLL_STRLEN (ix86_cpu != PROCESSOR_I386) #define TARGET_UNROLL_STRLEN (ix86_cpu != PROCESSOR_I386)
#define TARGET_USE_Q_REG (ix86_cpu == PROCESSOR_PENTIUM) #define TARGET_USE_Q_REG (ix86_cpu == PROCESSOR_PENTIUM)
#define TARGET_USE_ANY_REG (ix86_cpu == PROCESSOR_I486) #define TARGET_USE_ANY_REG (ix86_cpu == PROCESSOR_I486)
#define TARGET_CMOVE (ix86_isa == PROCESSOR_PENTIUMPRO)
#define TARGET_DEEP_BRANCH_PREDICTION (ix86_isa == PROCESSOR_PENTIUMPRO)
#define TARGET_SWITCHES \ #define TARGET_SWITCHES \
{ { "80387", MASK_80387 }, \ { { "80387", MASK_80387 }, \
...@@ -207,6 +210,8 @@ enum processor_type ...@@ -207,6 +210,8 @@ enum processor_type
extern enum processor_type ix86_cpu; extern enum processor_type ix86_cpu;
extern int ix86_isa;
/* Define generic processor types based upon current deployment. */ /* Define generic processor types based upon current deployment. */
#define PROCESSOR_COMMON PROCESSOR_I386 #define PROCESSOR_COMMON PROCESSOR_I386
#define PROCESSOR_COMMON_STRING PROCESSOR_I386_STRING #define PROCESSOR_COMMON_STRING PROCESSOR_I386_STRING
...@@ -240,7 +245,7 @@ extern enum processor_type ix86_cpu; ...@@ -240,7 +245,7 @@ extern enum processor_type ix86_cpu;
by appending `-m' to the specified name. */ by appending `-m' to the specified name. */
#define TARGET_OPTIONS \ #define TARGET_OPTIONS \
{ { "cpu=", &ix86_cpu_string}, \ { { "cpu=", &ix86_cpu_string}, \
{ "arch=", &ix86_isa_string}, \ { "isa=", &ix86_isa_string}, \
{ "reg-alloc=", &i386_reg_alloc_order }, \ { "reg-alloc=", &i386_reg_alloc_order }, \
{ "regparm=", &i386_regparm_string }, \ { "regparm=", &i386_regparm_string }, \
{ "align-loops=", &i386_align_loops_string }, \ { "align-loops=", &i386_align_loops_string }, \
...@@ -512,6 +517,9 @@ extern enum processor_type ix86_cpu; ...@@ -512,6 +517,9 @@ extern enum processor_type ix86_cpu;
#define MODES_TIEABLE_P(MODE1, MODE2) ((MODE1) == (MODE2)) #define MODES_TIEABLE_P(MODE1, MODE2) ((MODE1) == (MODE2))
/* Provide the cost of a branch. Exact meaning under development. */
#define BRANCH_COST (TARGET_PENTIUMPRO ? 5 : 1)
/* Specify the registers used for certain standard purposes. /* Specify the registers used for certain standard purposes.
The values of these macros are register numbers. */ The values of these macros are register numbers. */
...@@ -936,6 +944,14 @@ typedef struct i386_args { ...@@ -936,6 +944,14 @@ typedef struct i386_args {
#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) \ #define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) \
(function_arg_partial_nregs (&CUM, MODE, TYPE, NAMED)) (function_arg_partial_nregs (&CUM, MODE, TYPE, NAMED))
/* This macro is invoked just before the start of a function.
It is used here to output code for -fpic that will load the
return address into %ebx. */
#undef ASM_OUTPUT_FUNCTION_PREFIX
#define ASM_OUTPUT_FUNCTION_PREFIX(FILE, FNNAME) \
asm_output_function_prefix (FILE, FNNAME)
/* This macro generates the assembly code for function entry. /* This macro generates the assembly code for function entry.
FILE is a stdio stream to output the code to. FILE is a stdio stream to output the code to.
SIZE is an int: how many units of temporary storage to allocate. SIZE is an int: how many units of temporary storage to allocate.
......
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