sparc.c (SKIP_CALLERS_UNIMP_P): Define.
authorDoug Evans <dje@gnu.org>
Wed, 15 Jun 1994 07:49:12 +0000 (07:49 +0000)
committerDoug Evans <dje@gnu.org>
Wed, 15 Jun 1994 07:49:12 +0000 (07:49 +0000)
commit61a55e8b0937a3c1c97c0e99c14473a2a614c225
tree742dca466cb260888d3c6c8fcb151283215bcfee
parent7a6cf439109c013148426537f69468fe60add3a2
sparc.c (SKIP_CALLERS_UNIMP_P): Define.

* sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Define.
(sparc_cpu_type, sparc_arg_count, sparc_n_named_args,
frame_base_offset, fpconv_stack_temp): New globals.
(leaf_reg_remap): Add additional registers for v9.
(sparc_override_options, sparc64_init_expanders,
sparc64_fpconv_stack_temp, intreg_operand, ccfp_reg_operand,
data_segment_operand, text_segment_operand, v9_regcmp_op,
arith11_operand, arith10_operand, arith11_double_operand,
arith10_double_operand, gen_v9_scc, emit_v9_brxx_insn,
sparc_init_modes, build_big_number, output_v9branch,
sparc_initialize_trampoline, sparc64_initialize_trampoline):
New functions.
(arith_double_operand, gen_compare_reg, finalize_pic,
emit_move_sequence, mem_aligned_8, output_move_double,
output_move_quad, output_fp_move_double, output_fp_move_quad,
output_block_move, save_regs, restore_regs): Add v9 support.
(sparc_mode_class): New enum.
(*_MODES): Redefine to use it.
(hard_32bit_mode_classes): Renamed from hard_regno_mode_ok.
(hard_regno_mode_classes, hard_64bit_mode_classes,
sparc_mode_class): New globals.
(num_gfregs): Renamed from num_fregs.
(compute_frame_size): Add v9 support.  Simplify calculations.
(output_function_prologue): Call build_big_number to compute stack
size in %g1, then adjust %sp.
Fix saving of call saved registers.  Handle new v9 registers.
(output_function_epilogue): Fix restoration of call saved registers.
Handle new v9 registers.
Use SKIP_CALLERS_UNIMP_P to see if unimp insn is at return address.
(sparc_builtin_saveregs): Define v9 version.
(output_cbranch): New argument fp_cond_reg.  All callers changed.
Add v9 support.
(output_return): Use SKIP_CALLERS_UNIMP_P.
(print_operand): New codes '_', '@', 'C', 'D'.
(output_double_int): Handle LABEL_REF and MINUS for v9.
Use ASM_LONGLONG if assembler can handle it.

From-SVN: r7486
gcc/config/sparc/sparc.c