sparc.h (cpu_type): New enum.

* sparc/sparc.h (cpu_type): New enum.
	(CPP_PREDEFINES,CPP_SPEC): Add v9 support.
	(NO_BUILTIN_PTRDIFF_TYPE, NO_BUILTIN_SIZE_TYPE, MAX_WCHAR_TYPE_SIZE,
	SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE,
	FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, MAX_INT_TYPE_SIZE,
	MAX_LONG_TYPE_SIZE): Define.
	(PTRDIFF_TYPE, SIZE_TYPE, BITS_PER_WORD, MAX_BITS_PER_WORD,
	UNITS_PER_WORD, MAX_UNITS_PER_WORD, LONG_DOUBLE_TYPE_SIZE,
	POINTER_SIZE, PARM_BOUNDARY, STACK_BOUNDARY, SPARC_STACK_ALIGN,
	EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT, FIRST_PSEUDO_REGISTER,
	FIXED_REGISTERS, CALL_USED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
	Add v9 support.
	(sparc_override_options, sparc_code_model): Declare.
	(OVERRIDE_OPTIONS): Call it.
	(MASK_*): Define bits set by target flags.
	(TARGET_*): Use them.
	({MASK,TARGET}_{V9,INT64,LONG64,PTR64,ENV32,STACK_BIAS,
	MEDLOW,MEDANY,FULLANY}): Define.
	(MEDANY_BASE_REG): Define.
	(V9_SWITCHES, TARGET_OPTIONS): Define.
	(TARGET_SWITCHES, TARGET_DEFAULT): Use MASK_*.
	(SPARC_STACK_BIAS, SECONDARY_MEMORY_NEEDED_MODE): Define.
	(SECONDARY_MEMORY_NEEDED): Simplify.
	(hard_regno_mode_class, sparc_mode_class, sparc_cpu_type): Declare.
	(REG_PARM_STACK_SPACE): Do not define if v9.
	(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, MODES_TIEABLE_P,
	RETURN_IN_MEMORY, STRUCT_VALUE, STRUCT_VALUE_INCOMING, reg_class,
	REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, REG_ALLOC_ORDER,
	REG_LEAF_ALLOC_ORDER, LEAF_REGISTERS, REG_CLASS_FROM_LETTER,
	CLASS_MAX_NREGS, STARTING_FRAME_OFFSET, FIRST_PARM_OFFSET,
	BASE_RETURN_VALUE_REG, BASE_OUTGOING_VALUE_REG, BASE_PASSING_ARG_REG,
	BASE_INCOMING_ARG_REG, FUNCTION_ARG_REGNO_P): Add v9 support.
	(sparc_arg_class): New enum (v9 only).
	(sparc_args): New struct to record v9 arguments.
	(CUMULATIVE_ARGS): Use it (v9 only).
	(GET_SPARC_ARG_CLASS): Define.
	(sparc_arg_count, sparc_n_named_args): Declare.
	(PASS_IN_REG_P): Define.
	(ROUND_REG, ROUND_ADVANCE, INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE,
	FUNCTION_ARG, FUNCTION_INCOMING_ARG, FUNCTION_ARG_PARTIAL_NREGS,
	FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES):
	Add v9 support.
	(sparc64_init_expanders, sparc64_fpconv_stack_temp): Declare.
	(INIT_EXPANDERS): Define (v9 only).
	(gen_v9_scc, output_v9branch): Declare.
	(HAVE_conditional_move): Define.
	(FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX, REGNO_OK_FOR_FP_P,
	REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, EXTRA_CONSTRAINT,
	CASE_VECTOR_MODE, Pmode, EXTRA_CC_MODES, EXTRA_CC_NAMES,
	SELECT_CC_MODE, REGISTER_NAMES): Add v9 support.
	(REGNO_OK_FOR_CCFP_P): Define.
	(sparc_initialize_trampoline, sparc64_initialize_trampoline): Declare.
	(INITIALIZE_TRAMPOLINE): Call them.
	(ENCODE_SECTION_INFO): Mark functions in v9.
	(RTX_COSTS): Assume MULT costs the same for v9 as v8.
	(ASM_LONGLONG, ASM_FLOAT): Define.
	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Add v9 support.

From-SVN: r7485
This commit is contained in:
Doug Evans 1994-06-15 07:46:50 +00:00
parent df9da8adc8
commit 7a6cf43910
1 changed files with 808 additions and 243 deletions

File diff suppressed because it is too large Load Diff