osprey-gcc/gcc/config/ia64/ia64.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "rtl.h"
#include "tree.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "real.h"
#include "insn-config.h"
#include "conditions.h"
#include "output.h"
#include "insn-attr.h"
#include "flags.h"
#include "recog.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
#include "function.h"
#include "ggc.h"
#include "basic-block.h"
#include "toplev.h"
#include "sched-int.h"
#include "timevar.h"
#include "target.h"
#include "target-def.h"
#include "tm_p.h"
#include "hashtab.h"
#include "langhooks.h"
#include "cfglayout.h"
#include "tree-gimple.h"
#include "gt-ia64.h"

Include dependency graph for ia64.c:

Go to the source code of this file.

Data Types

type  ia64_frame_info
type  spill_fill_data
type  reg_write_state
type  reg_flags
type  bundle_state

Defines

#define TARGET_ATTRIBUTE_TABLE   ia64_attribute_table
#define TARGET_INIT_BUILTINS   ia64_init_builtins
#define TARGET_EXPAND_BUILTIN   ia64_expand_builtin
#define TARGET_ASM_BYTE_OP   "\tdata1\t"
#define TARGET_ASM_ALIGNED_HI_OP   "\tdata2\t"
#define TARGET_ASM_ALIGNED_SI_OP   "\tdata4\t"
#define TARGET_ASM_ALIGNED_DI_OP   "\tdata8\t"
#define TARGET_ASM_UNALIGNED_HI_OP   "\tdata2.ua\t"
#define TARGET_ASM_UNALIGNED_SI_OP   "\tdata4.ua\t"
#define TARGET_ASM_UNALIGNED_DI_OP   "\tdata8.ua\t"
#define TARGET_ASM_INTEGER   ia64_assemble_integer
#define TARGET_ASM_FUNCTION_PROLOGUE   ia64_output_function_prologue
#define TARGET_ASM_FUNCTION_END_PROLOGUE   ia64_output_function_end_prologue
#define TARGET_ASM_FUNCTION_EPILOGUE   ia64_output_function_epilogue
#define TARGET_IN_SMALL_DATA_P   ia64_in_small_data_p
#define TARGET_SCHED_ADJUST_COST   ia64_adjust_cost
#define TARGET_SCHED_ISSUE_RATE   ia64_issue_rate
#define TARGET_SCHED_VARIABLE_ISSUE   ia64_variable_issue
#define TARGET_SCHED_INIT   ia64_sched_init
#define TARGET_SCHED_FINISH   ia64_sched_finish
#define TARGET_SCHED_REORDER   ia64_sched_reorder
#define TARGET_SCHED_REORDER2   ia64_sched_reorder2
#define TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK   ia64_dependencies_evaluation_hook
#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD   ia64_first_cycle_multipass_dfa_lookahead
#define TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN   ia64_init_dfa_pre_cycle_insn
#define TARGET_SCHED_DFA_PRE_CYCLE_INSN   ia64_dfa_pre_cycle_insn
#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD   ia64_first_cycle_multipass_dfa_lookahead_guard
#define TARGET_SCHED_DFA_NEW_CYCLE   ia64_dfa_new_cycle
#define TARGET_FUNCTION_OK_FOR_SIBCALL   ia64_function_ok_for_sibcall
#define TARGET_PASS_BY_REFERENCE   ia64_pass_by_reference
#define TARGET_ARG_PARTIAL_BYTES   ia64_arg_partial_bytes
#define TARGET_ASM_OUTPUT_MI_THUNK   ia64_output_mi_thunk
#define TARGET_ASM_CAN_OUTPUT_MI_THUNK   hook_bool_tree_hwi_hwi_tree_true
#define TARGET_ASM_FILE_START   ia64_file_start
#define TARGET_RTX_COSTS   ia64_rtx_costs
#define TARGET_ADDRESS_COST   hook_int_rtx_0
#define TARGET_MACHINE_DEPENDENT_REORG   ia64_reorg
#define TARGET_ENCODE_SECTION_INFO   ia64_encode_section_info
#define TARGET_SECTION_TYPE_FLAGS   ia64_section_type_flags
#define TARGET_STRUCT_VALUE_RTX   ia64_struct_value_rtx
#define TARGET_RETURN_IN_MEMORY   ia64_return_in_memory
#define TARGET_SETUP_INCOMING_VARARGS   ia64_setup_incoming_varargs
#define TARGET_STRICT_ARGUMENT_NAMING   hook_bool_CUMULATIVE_ARGS_true
#define TARGET_MUST_PASS_IN_STACK   must_pass_in_stack_var_size
#define TARGET_GIMPLIFY_VA_ARG_EXPR   ia64_gimplify_va_arg
#define TARGET_UNWIND_EMIT   process_for_unwind_directive
#define TARGET_SCALAR_MODE_SUPPORTED_P   ia64_scalar_mode_supported_p
#define TARGET_VECTOR_MODE_SUPPORTED_P   ia64_vector_mode_supported_p
#define TARGET_RELAXED_ORDERING   true
#define TARGET_CANNOT_FORCE_CONST_MEM   ia64_cannot_force_const_mem
#define MAYBE_ADD_REG_INC_NOTE(INSN, EXP)
#define REG_RP   (BR_REG (0))
#define REG_AR_CFM   (FIRST_PSEUDO_REGISTER + 1)
#define REG_VOLATILE   (FIRST_PSEUDO_REGISTER + 2)
#define AR_UNAT_BIT_0   (FIRST_PSEUDO_REGISTER + 3)
#define NUM_REGS   (AR_UNAT_BIT_0 + 64)
#define NR_BUNDLES   10
#define def_builtin(name, type, code)
#define TARGET_RWRELOC   flag_pic

Enumerations

enum  ia64_addr_area { ADDR_AREA_NORMAL, ADDR_AREA_SMALL, ADDR_AREA_NORMAL, ADDR_AREA_SMALL }

Functions/Subroutines

static int ia64_first_cycle_multipass_dfa_lookahead (void)
static void ia64_dependencies_evaluation_hook (rtx, rtx)
static void ia64_init_dfa_pre_cycle_insn (void)
static rtx ia64_dfa_pre_cycle_insn (void)
static int ia64_first_cycle_multipass_dfa_lookahead_guard (rtx)
static int ia64_dfa_new_cycle (FILE *, int, rtx, int, int, int *)
static rtx gen_tls_get_addr (void)
static rtx gen_thread_pointer (void)
static int find_gr_spill (int)
static int next_scratch_gr_reg (void)
static void mark_reg_gr_used_mask (rtx, void *)
static void ia64_compute_frame_size (HOST_WIDE_INT)
static void setup_spill_pointers (int, rtx, HOST_WIDE_INT)
static void finish_spill_pointers (void)
static rtx spill_restore_mem (rtx, HOST_WIDE_INT)
static void do_spill (rtx(*)(rtx, rtx, rtx), rtx, HOST_WIDE_INT, rtx)
static void do_restore (rtx(*)(rtx, rtx, rtx), rtx, HOST_WIDE_INT)
static rtx gen_movdi_x (rtx, rtx, rtx)
static rtx gen_fr_spill_x (rtx, rtx, rtx)
static rtx gen_fr_restore_x (rtx, rtx, rtx)
static enum machine_mode hfa_element_mode (tree, bool)
static void ia64_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode, tree, int *, int)
static bool ia64_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode, tree, bool)
static int ia64_arg_partial_bytes (CUMULATIVE_ARGS *, enum machine_mode, tree, bool)
static bool ia64_function_ok_for_sibcall (tree, tree)
static bool ia64_return_in_memory (tree, tree)
static bool ia64_rtx_costs (rtx, int, int, int *)
static void fix_range (const char *)
static struct machine_functionia64_init_machine_status (void)
static void emit_insn_group_barriers (FILE *)
static void emit_all_insn_group_barriers (FILE *)
static void final_emit_insn_group_barriers (FILE *)
static void emit_predicate_relation_info (void)
static void ia64_reorg (void)
static bool ia64_in_small_data_p (tree)
static void process_epilogue (void)
static int process_set (FILE *, rtx)
static rtx ia64_expand_fetch_and_op (optab, enum machine_mode, tree, rtx)
static rtx ia64_expand_op_and_fetch (optab, enum machine_mode, tree, rtx)
static rtx ia64_expand_compare_and_swap (enum machine_mode, enum machine_mode, int, tree, rtx)
static rtx ia64_expand_lock_test_and_set (enum machine_mode, tree, rtx)
static rtx ia64_expand_lock_release (enum machine_mode, tree, rtx)
static bool ia64_assemble_integer (rtx, unsigned int, int)
static void ia64_output_function_prologue (FILE *, HOST_WIDE_INT)
static void ia64_output_function_epilogue (FILE *, HOST_WIDE_INT)
static void ia64_output_function_end_prologue (FILE *)
static int ia64_issue_rate (void)
static int ia64_adjust_cost (rtx, rtx, rtx, int)
static void ia64_sched_init (FILE *, int, int)
static void ia64_sched_finish (FILE *, int)
static int ia64_dfa_sched_reorder (FILE *, int, rtx *, int *, int, int)
static int ia64_sched_reorder (FILE *, int, rtx *, int *, int)
static int ia64_sched_reorder2 (FILE *, int, rtx *, int *, int)
static int ia64_variable_issue (FILE *, int, rtx, int)
static struct bundle_stateget_free_bundle_state (void)
static void free_bundle_state (struct bundle_state *)
static void initiate_bundle_states (void)
static void finish_bundle_states (void)
static unsigned bundle_state_hash (const void *)
static int bundle_state_eq_p (const void *, const void *)
static int insert_bundle_state (struct bundle_state *)
static void initiate_bundle_state_table (void)
static void finish_bundle_state_table (void)
static int try_issue_nops (struct bundle_state *, int)
static int try_issue_insn (struct bundle_state *, rtx)
static void issue_nops_and_insn (struct bundle_state *, int, rtx, int, int)
static int get_max_pos (state_t)
static int get_template (state_t, int)
static rtx get_next_important_insn (rtx, rtx)
static void bundling (FILE *, int, rtx, rtx)
static void ia64_output_mi_thunk (FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT, tree)
static void ia64_file_start (void)
static void ia64_select_rtx_section (enum machine_mode, rtx, unsigned HOST_WIDE_INT)
static void ia64_rwreloc_select_section (tree, int, unsigned HOST_WIDE_INT) ATTRIBUTE_UNUSED
static void ia64_rwreloc_unique_section (static unsigned int ia64_section_type_flags(tree, static tree ia64_handle_model_attribute(tree int)
static GTY (())
static ia64_addr_area ia64_get_addr_area (tree decl)
static tree ia64_handle_model_attribute (tree *node, tree name, tree args, int flags ATTRIBUTE_UNUSED, bool *no_add_attrs)
static void ia64_encode_addr_area (tree decl, rtx symbol)
static void ia64_encode_section_info (tree decl, rtx rtl, int first)
bool ia64_const_ok_for_letter_p (HOST_WIDE_INT value, char c)
bool ia64_const_double_ok_for_letter_p (rtx value, char c)
bool ia64_extra_constraint (rtx value, char c)
int ia64_move_ok (rtx dst, rtx src)
int addp4_optimize_ok (rtx op1, rtx op2)
int ia64_depz_field_mask (rtx rop, rtx rshift)
static enum tls_model tls_symbolic_operand_type (rtx addr)
bool ia64_legitimate_constant_p (rtx x)
static bool ia64_cannot_force_const_mem (rtx x)
bool ia64_expand_load_address (rtx dest, rtx src)
static rtx ia64_expand_tls_address (enum tls_model tls_kind, rtx op0, rtx op1, HOST_WIDE_INT addend)
rtx ia64_expand_move (rtx op0, rtx op1)
void ia64_emit_cond_move (rtx op0, rtx op1, rtx cond)
static rtx ia64_split_tmode (rtx out[2], rtx in, bool reversed, bool dead)
void ia64_split_tmode_move (rtx operands[])
rtx spill_xfmode_operand (rtx in, int force)
static bool ia64_expand_vecint_compare (enum rtx_code code, enum machine_mode mode, rtx dest, rtx op0, rtx op1)
static void ia64_expand_vcondu_v2si (enum rtx_code code, rtx operands[])
void ia64_expand_vecint_cmov (rtx operands[])
bool ia64_expand_vecint_minmax (enum rtx_code code, enum machine_mode mode, rtx operands[])
void ia64_expand_call (rtx retval, rtx addr, rtx nextarg ATTRIBUTE_UNUSED, int sibcall_p)
void ia64_reload_gp (void)
void ia64_split_call (rtx retval, rtx addr, rtx retaddr, rtx scratch_r, rtx scratch_b, int noreturn_p, int sibcall_p)
void emit_safe_across_calls (void)
static void mark_reg_gr_used_mask (rtx reg, void *data ATTRIBUTE_UNUSED)
HOST_WIDE_INT ia64_initial_elimination_offset (int from, int to)
static rtx gen_movdi_x (rtx dest, rtx src, rtx offset ATTRIBUTE_UNUSED)
static rtx gen_fr_spill_x (rtx dest, rtx src, rtx offset ATTRIBUTE_UNUSED)
static rtx gen_fr_restore_x (rtx dest, rtx src, rtx offset ATTRIBUTE_UNUSED)
void ia64_expand_prologue (void)
void ia64_expand_epilogue (int sibcall_p)
int ia64_direct_return (void)
rtx ia64_return_addr_rtx (HOST_WIDE_INT count, rtx frame ATTRIBUTE_UNUSED)
void ia64_split_return_addr_rtx (rtx dest)
int ia64_hard_regno_rename_ok (int from, int to)
static void ia64_output_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
static void ia64_output_function_epilogue (FILE *file ATTRIBUTE_UNUSED, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
int ia64_dbx_register_number (int regno)
void ia64_initialize_trampoline (rtx addr, rtx fnaddr, rtx static_chain)
static void ia64_setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type, int *pretend_size, int second_time ATTRIBUTE_UNUSED)
static int ia64_function_arg_words (tree type, enum machine_mode mode)
static int ia64_function_arg_offset (CUMULATIVE_ARGS *cum, tree type, int words)
rtx ia64_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type, int named, int incoming)
static int ia64_arg_partial_bytes (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type, bool named ATTRIBUTE_UNUSED)
void ia64_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type, int named)
int ia64_function_arg_boundary (enum machine_mode mode, tree type)
static bool ia64_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, tree type, bool named ATTRIBUTE_UNUSED)
static bool ia64_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
static tree ia64_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
static bool ia64_return_in_memory (tree valtype, tree fntype ATTRIBUTE_UNUSED)
rtx ia64_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
void ia64_output_dwarf_dtprel (FILE *file, int size, rtx x)
void ia64_print_operand_address (FILE *stream ATTRIBUTE_UNUSED, rtx address ATTRIBUTE_UNUSED)
void ia64_print_operand (FILE *file, rtx x, int code)
int ia64_register_move_cost (enum machine_mode mode, enum reg_class from, enum reg_class to)
enum reg_class ia64_preferred_reload_class (rtx x, enum reg_class class)
enum reg_class ia64_secondary_reload_class (enum reg_class class, enum machine_mode mode ATTRIBUTE_UNUSED, rtx x)
void ia64_asm_output_external (FILE *file, tree decl, const char *name)
void ia64_override_options (void)
static enum attr_itanium_class ia64_safe_itanium_class (rtx)
static enum attr_type ia64_safe_type (rtx)
static void rws_update (struct reg_write_state *, int, struct reg_flags, int)
static int rws_access_regno (int, struct reg_flags, int)
static int rws_access_reg (rtx, struct reg_flags, int)
static void update_set_flags (rtx, struct reg_flags *, int *, rtx *)
static int set_src_needs_barrier (rtx, struct reg_flags, int, rtx)
static int rtx_needs_barrier (rtx, struct reg_flags, int)
static void init_insn_group_barriers (void)
static int group_barrier_needed_p (rtx)
static int safe_group_barrier_needed_p (rtx)
static void emit_all_insn_group_barriers (FILE *dump ATTRIBUTE_UNUSED)
static rtx ia64_single_set (rtx)
static void ia64_emit_insn_before (rtx, rtx)
const char * get_bundle_name (int b)
static void ia64_sched_init (FILE *dump ATTRIBUTE_UNUSED, int sched_verbose ATTRIBUTE_UNUSED, int max_ready ATTRIBUTE_UNUSED)
static int ia64_dfa_sched_reorder (FILE *dump, int sched_verbose, rtx *ready, int *pn_ready, int clock_var ATTRIBUTE_UNUSED, int reorder_type)
static int ia64_sched_reorder2 (FILE *dump ATTRIBUTE_UNUSED, int sched_verbose ATTRIBUTE_UNUSED, rtx *ready, int *pn_ready, int clock_var)
static int ia64_variable_issue (FILE *dump ATTRIBUTE_UNUSED, int sched_verbose ATTRIBUTE_UNUSED, rtx insn ATTRIBUTE_UNUSED, int can_issue_more ATTRIBUTE_UNUSED)
static void final_emit_insn_group_barriers (FILE *dump ATTRIBUTE_UNUSED)
int ia64_st_address_bypass_p (rtx producer, rtx consumer)
int ia64_ld_address_bypass_p (rtx producer, rtx consumer)
int ia64_produce_address_p (rtx insn)
int ia64_epilogue_uses (int regno)
int ia64_eh_uses (int regno)
void process_for_unwind_directive (FILE *asm_out_file, rtx insn)
void ia64_init_builtins (void)
static rtx ia64_expand_lock_release (enum machine_mode mode, tree arglist, rtx target ATTRIBUTE_UNUSED)
rtx ia64_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, int ignore ATTRIBUTE_UNUSED)
enum direction ia64_hpux_function_arg_padding (enum machine_mode mode, tree type)
static void ia64_hpux_file_end (void)
static void ia64_init_libfuncs (void)
static void ia64_hpux_init_libfuncs (void)
static void ia64_vms_init_libfuncs (void)
static void ia64_sysv4_init_libfuncs (void)
static void ia64_rwreloc_unique_section (tree decl, int reloc)
static void ia64_rwreloc_select_rtx_section (enum machine_mode mode, rtx x, unsigned HOST_WIDE_INT align)
static unsigned int ia64_section_type_flags (tree decl, const char *name, int reloc)
static bool ia64_struct_retval_addr_is_first_parm_p (tree fntype)
static void ia64_output_mi_thunk (FILE *file, tree thunk ATTRIBUTE_UNUSED, HOST_WIDE_INT delta, HOST_WIDE_INT vcall_offset, tree function)
static rtx ia64_struct_value_rtx (tree fntype, int incoming ATTRIBUTE_UNUSED)
static bool ia64_scalar_mode_supported_p (enum machine_mode mode)
static bool ia64_vector_mode_supported_p (enum machine_mode mode)
void ia64_output_function_profiler (FILE *file, int labelno)

Variables

int ia64_asm_output_label = 0
struct rtx_def * ia64_compare_op0
struct rtx_def * ia64_compare_op1
static const char *const ia64_reg_numbers [96]
static const char *const ia64_input_reg_names [8]
static const char *const ia64_local_reg_names [80]
static const char *const ia64_output_reg_names [8]
const char * ia64_fixed_range_string
int ia64_tls_size = 22
const char * ia64_tls_size_string
enum processor_type ia64_tune
const char * ia64_tune_string
static int ia64_flag_schedule_insns2
static int ia64_flag_var_tracking
unsigned int ia64_section_threshold
int bundling_p = 0
static struct ia64_frame_info current_frame_info
struct gcc_target targetm = TARGET_INITIALIZER
static int last_scratch_gr_reg
static struct spill_fill_data spill_fill_data
struct reg_write_state rws_sum [NUM_REGS]
struct reg_write_state rws_insn [NUM_REGS]
static int first_instruction
static const char * bundle_name [NR_BUNDLES]
int ia64_final_schedule = 0
static int _0mii_
static int _0mmi_
static int _0mfi_
static int _0mmf_
static int _0bbb_
static int _0mbb_
static int _0mib_
static int _0mmb_
static int _0mfb_
static int _0mlx_
static int _1mii_
static int _1mmi_
static int _1mfi_
static int _1mmf_
static int _1bbb_
static int _1mbb_
static int _1mib_
static int _1mmb_
static int _1mfb_
static int _1mlx_
static int pos_1
static int pos_2
static int pos_3
static int pos_4
static int pos_5
static int pos_6
static rtx dfa_stop_insn
static rtx last_scheduled_insn
static size_t dfa_state_size
static state_t temp_dfa_state = NULL
static state_t prev_cycle_state = NULL
static char * stops_p
static int stop_before_p = 0
static int clocks_length
static int * clocks
static int * add_cycles
static rtx dfa_pre_cycle_insn
static struct bundle_state ** index_to_bundle_states
static int bundle_states_num
static struct bundle_stateallocated_bundle_states_chain
static struct bundle_statefree_bundle_state_chain
static htab_t bundle_state_table
static rtx ia64_nop
static bool last_block
static bool need_copy_state


Define Documentation

#define AR_UNAT_BIT_0   (FIRST_PSEUDO_REGISTER + 3)

Definition at line 4874 of file ia64.c.

#define def_builtin ( name,
type,
code   ) 

Value:

lang_hooks.builtin_function ((name), (type), (code), BUILT_IN_MD, \
             NULL, NULL_TREE)

#define MAYBE_ADD_REG_INC_NOTE ( INSN,
EXP   ) 

Value:

if (GET_CODE (EXP) == MEM           \
      && (GET_CODE (XEXP (EXP, 0)) == POST_MODIFY     \
    || GET_CODE (XEXP (EXP, 0)) == POST_INC     \
    || GET_CODE (XEXP (EXP, 0)) == POST_DEC))     \
    REG_NOTES (INSN) = gen_rtx_EXPR_LIST (REG_INC,      \
            XEXP (XEXP (EXP, 0), 0),  \
            REG_NOTES (INSN))

Referenced by ia64_split_tmode_move().

#define NR_BUNDLES   10

Definition at line 5804 of file ia64.c.

#define NUM_REGS   (AR_UNAT_BIT_0 + 64)

Definition at line 4875 of file ia64.c.

#define REG_AR_CFM   (FIRST_PSEUDO_REGISTER + 1)

Definition at line 4870 of file ia64.c.

#define REG_RP   (BR_REG (0))

Definition at line 4869 of file ia64.c.

#define REG_VOLATILE   (FIRST_PSEUDO_REGISTER + 2)

Definition at line 4873 of file ia64.c.

#define TARGET_ADDRESS_COST   hook_int_rtx_0

Definition at line 379 of file ia64.c.

#define TARGET_ARG_PARTIAL_BYTES   ia64_arg_partial_bytes

Definition at line 366 of file ia64.c.

#define TARGET_ASM_ALIGNED_DI_OP   "\tdata8\t"

Definition at line 308 of file ia64.c.

#define TARGET_ASM_ALIGNED_HI_OP   "\tdata2\t"

Definition at line 304 of file ia64.c.

#define TARGET_ASM_ALIGNED_SI_OP   "\tdata4\t"

Definition at line 306 of file ia64.c.

#define TARGET_ASM_BYTE_OP   "\tdata1\t"

Definition at line 302 of file ia64.c.

#define TARGET_ASM_CAN_OUTPUT_MI_THUNK   hook_bool_tree_hwi_hwi_tree_true

Definition at line 371 of file ia64.c.

#define TARGET_ASM_FILE_START   ia64_file_start

Definition at line 374 of file ia64.c.

#define TARGET_ASM_FUNCTION_END_PROLOGUE   ia64_output_function_end_prologue

Definition at line 321 of file ia64.c.

#define TARGET_ASM_FUNCTION_EPILOGUE   ia64_output_function_epilogue

Definition at line 323 of file ia64.c.

#define TARGET_ASM_FUNCTION_PROLOGUE   ia64_output_function_prologue

Definition at line 319 of file ia64.c.

#define TARGET_ASM_INTEGER   ia64_assemble_integer

Definition at line 316 of file ia64.c.

#define TARGET_ASM_OUTPUT_MI_THUNK   ia64_output_mi_thunk

Definition at line 369 of file ia64.c.

#define TARGET_ASM_UNALIGNED_DI_OP   "\tdata8.ua\t"

Definition at line 314 of file ia64.c.

#define TARGET_ASM_UNALIGNED_HI_OP   "\tdata2.ua\t"

Definition at line 310 of file ia64.c.

#define TARGET_ASM_UNALIGNED_SI_OP   "\tdata4.ua\t"

Definition at line 312 of file ia64.c.

#define TARGET_ATTRIBUTE_TABLE   ia64_attribute_table

Definition at line 293 of file ia64.c.

#define TARGET_CANNOT_FORCE_CONST_MEM   ia64_cannot_force_const_mem

Definition at line 436 of file ia64.c.

#define TARGET_ENCODE_SECTION_INFO   ia64_encode_section_info

Definition at line 385 of file ia64.c.

#define TARGET_EXPAND_BUILTIN   ia64_expand_builtin

Definition at line 299 of file ia64.c.

#define TARGET_FUNCTION_OK_FOR_SIBCALL   ia64_function_ok_for_sibcall

Definition at line 362 of file ia64.c.

#define TARGET_GIMPLIFY_VA_ARG_EXPR   ia64_gimplify_va_arg

Definition at line 420 of file ia64.c.

#define TARGET_IN_SMALL_DATA_P   ia64_in_small_data_p

Definition at line 326 of file ia64.c.

#define TARGET_INIT_BUILTINS   ia64_init_builtins

Definition at line 296 of file ia64.c.

#define TARGET_MACHINE_DEPENDENT_REORG   ia64_reorg

Definition at line 382 of file ia64.c.

#define TARGET_MUST_PASS_IN_STACK   must_pass_in_stack_var_size

Definition at line 417 of file ia64.c.

#define TARGET_PASS_BY_REFERENCE   ia64_pass_by_reference

Definition at line 364 of file ia64.c.

#define TARGET_RELAXED_ORDERING   true

Definition at line 433 of file ia64.c.

#define TARGET_RETURN_IN_MEMORY   ia64_return_in_memory

Definition at line 411 of file ia64.c.

#define TARGET_RTX_COSTS   ia64_rtx_costs

Definition at line 377 of file ia64.c.

#define TARGET_RWRELOC   flag_pic

Definition at line 8789 of file ia64.c.

#define TARGET_SCALAR_MODE_SUPPORTED_P   ia64_scalar_mode_supported_p

Definition at line 426 of file ia64.c.

#define TARGET_SCHED_ADJUST_COST   ia64_adjust_cost

Definition at line 329 of file ia64.c.

#define TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK   ia64_dependencies_evaluation_hook

Definition at line 344 of file ia64.c.

#define TARGET_SCHED_DFA_NEW_CYCLE   ia64_dfa_new_cycle

Definition at line 359 of file ia64.c.

#define TARGET_SCHED_DFA_PRE_CYCLE_INSN   ia64_dfa_pre_cycle_insn

Definition at line 352 of file ia64.c.

#define TARGET_SCHED_FINISH   ia64_sched_finish

Definition at line 337 of file ia64.c.

#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD   ia64_first_cycle_multipass_dfa_lookahead

Definition at line 347 of file ia64.c.

#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD   ia64_first_cycle_multipass_dfa_lookahead_guard

Definition at line 355 of file ia64.c.

#define TARGET_SCHED_INIT   ia64_sched_init

Definition at line 335 of file ia64.c.

#define TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN   ia64_init_dfa_pre_cycle_insn

Definition at line 350 of file ia64.c.

#define TARGET_SCHED_ISSUE_RATE   ia64_issue_rate

Definition at line 331 of file ia64.c.

#define TARGET_SCHED_REORDER   ia64_sched_reorder

Definition at line 339 of file ia64.c.

#define TARGET_SCHED_REORDER2   ia64_sched_reorder2

Definition at line 341 of file ia64.c.

#define TARGET_SCHED_VARIABLE_ISSUE   ia64_variable_issue

Definition at line 333 of file ia64.c.

#define TARGET_SECTION_TYPE_FLAGS   ia64_section_type_flags

Definition at line 388 of file ia64.c.

#define TARGET_SETUP_INCOMING_VARARGS   ia64_setup_incoming_varargs

Definition at line 413 of file ia64.c.

#define TARGET_STRICT_ARGUMENT_NAMING   hook_bool_CUMULATIVE_ARGS_true

Definition at line 415 of file ia64.c.

#define TARGET_STRUCT_VALUE_RTX   ia64_struct_value_rtx

Definition at line 409 of file ia64.c.

#define TARGET_UNWIND_EMIT   process_for_unwind_directive

Definition at line 423 of file ia64.c.

#define TARGET_VECTOR_MODE_SUPPORTED_P   ia64_vector_mode_supported_p

Definition at line 428 of file ia64.c.


Enumeration Type Documentation

Enumerator:
ADDR_AREA_NORMAL 
ADDR_AREA_SMALL 
ADDR_AREA_NORMAL 
ADDR_AREA_SMALL 

Definition at line 440 of file ia64.c.


Function Documentation

int addp4_optimize_ok ( rtx  op1,
rtx  op2 
)

Definition at line 684 of file ia64.c.

References basereg_operand(), and GET_MODE.

static int bundle_state_eq_p ( const void bundle_state_1,
const void bundle_state_2 
) [static]

Definition at line 6383 of file ia64.c.

References bundle_state::dfa_state, bundle_state::insn_num, and memcmp.

Referenced by initiate_bundle_state_table().

static unsigned bundle_state_hash ( const void bundle_state  )  [static]

Definition at line 6369 of file ia64.c.

References CHAR_BIT, bundle_state::dfa_state, i, bundle_state::insn_num, and result.

Referenced by initiate_bundle_state_table().

static void bundling ( FILE dump,
int  verbose,
rtx  prev_head_insn,
rtx  tail 
) [static]

static void do_restore ( rtx(*)(rtx, rtx, rtx move_fn,
rtx  reg,
HOST_WIDE_INT  cfa_off 
) [static]

Definition at line 2450 of file ia64.c.

References emit_insn(), GEN_INT, insn, iter, and spill_restore_mem().

static void do_spill ( rtx(*)(rtx, rtx, rtx move_fn,
rtx  reg,
HOST_WIDE_INT  cfa_off,
rtx  frame_reg 
) [static]

static void emit_all_insn_group_barriers ( FILE *dump  ATTRIBUTE_UNUSED  )  [static]

static void emit_all_insn_group_barriers ( FILE  )  [static]

static void emit_insn_group_barriers ( FILE dump  )  [static]

static void emit_predicate_relation_info ( void   )  [static]

void emit_safe_across_calls ( void   ) 

Definition at line 1796 of file ia64.c.

static void final_emit_insn_group_barriers ( FILE *dump  ATTRIBUTE_UNUSED  )  [static]

static void final_emit_insn_group_barriers ( FILE  )  [static]

Referenced by ia64_sched_finish().

static int find_gr_spill ( int  try_locals  )  [static]

static void finish_bundle_state_table ( void   )  [static]

Definition at line 6444 of file ia64.c.

References htab_delete().

Referenced by bundling().

static void finish_bundle_states ( void   )  [static]

Definition at line 6347 of file ia64.c.

References bundle_state::allocated_states_chain, curr_state, bundle_state::dfa_state, free(), and NULL.

Referenced by ia64_reorg().

static void finish_spill_pointers ( void   )  [static]

Definition at line 2288 of file ia64.c.

References current_frame_info.

static void fix_range ( const char *  const_str  )  [static]

Definition at line 4655 of file ia64.c.

References alloca, call_used_regs, comma, decode_reg_name(), first, fixed_regs, i, last, memcpy, str, strchr, strlen(), and warning.

static void free_bundle_state ( struct bundle_state state  )  [static]

Definition at line 6328 of file ia64.c.

References bundle_state::next.

Referenced by issue_nops_and_insn(), try_issue_insn(), and try_issue_nops().

static rtx gen_fr_restore_x ( rtx  dest,
rtx  src,
rtx offset  ATTRIBUTE_UNUSED 
) [static]

Definition at line 2477 of file ia64.c.

References gen_fr_restore().

static rtx gen_fr_restore_x ( rtx  ,
rtx  ,
rtx   
) [static]

static rtx gen_fr_spill_x ( rtx  dest,
rtx  src,
rtx offset  ATTRIBUTE_UNUSED 
) [static]

Definition at line 2471 of file ia64.c.

References gen_fr_spill().

static rtx gen_fr_spill_x ( rtx  ,
rtx  ,
rtx   
) [static]

static rtx gen_movdi_x ( rtx  dest,
rtx  src,
rtx offset  ATTRIBUTE_UNUSED 
) [static]

Definition at line 2465 of file ia64.c.

References gen_movdi().

static rtx gen_movdi_x ( rtx  ,
rtx  ,
rtx   
) [static]

static rtx gen_thread_pointer ( void   )  [static]

Referenced by ia64_expand_tls_address().

static rtx gen_tls_get_addr ( void   )  [static]

const char* get_bundle_name ( int  b  ) 

Definition at line 5891 of file ia64.c.

static struct bundle_state * get_free_bundle_state ( void   )  [static, read]

static int get_max_pos ( state_t  state  )  [static]

Definition at line 6615 of file ia64.c.

Referenced by bundling().

static rtx get_next_important_insn ( rtx  insn,
rtx  tail 
) [static]

Definition at line 6697 of file ia64.c.

References GET_CODE, ia64_safe_itanium_class(), INSN_P, ITANIUM_CLASS_IGNORE, NEXT_INSN, NULL_RTX, PATTERN, and USE.

Referenced by bundling().

static int get_template ( state_t  state,
int  pos 
) [static]

Definition at line 6638 of file ia64.c.

References abort.

Referenced by bundling().

static int group_barrier_needed_p ( rtx  insn  )  [static]

static GTY ( ()   )  [static]

Definition at line 447 of file ia64.c.

References get_identifier().

static enum machine_mode hfa_element_mode ( tree  type,
bool  nested 
) [static]

static int ia64_adjust_cost ( rtx  insn,
rtx  link,
rtx  dep_insn,
int  cost 
) [static]

static int ia64_arg_partial_bytes ( CUMULATIVE_ARGS cum,
enum machine_mode  mode,
tree  type,
bool named  ATTRIBUTE_UNUSED 
) [static]

static int ia64_arg_partial_bytes ( CUMULATIVE_ARGS ,
enum  machine_mode,
tree  ,
bool   
) [static]

void ia64_asm_output_external ( FILE file,
tree  decl,
const char *  name 
)

static bool ia64_assemble_integer ( rtx  x,
unsigned int  size,
int  aligned_p 
) [static]

static bool ia64_cannot_force_const_mem ( rtx  x  )  [static]

Definition at line 754 of file ia64.c.

References tls_symbolic_operand_type().

static void ia64_compute_frame_size ( HOST_WIDE_INT  size  )  [static]

bool ia64_const_double_ok_for_letter_p ( rtx  value,
char  c 
)

Definition at line 595 of file ia64.c.

References CONST_DOUBLE_OK_FOR_G.

Referenced by ia64_extra_constraint().

bool ia64_const_ok_for_letter_p ( HOST_WIDE_INT  value,
char  c 
)

int ia64_dbx_register_number ( int  regno  ) 

static void ia64_dependencies_evaluation_hook ( rtx  head,
rtx  tail 
) [static]

int ia64_depz_field_mask ( rtx  rop,
rtx  rshift 
)

Definition at line 694 of file ia64.c.

References exact_log2, HOST_WIDE_INT, INTVAL, and shift.

static int ia64_dfa_new_cycle ( FILE dump,
int  verbose,
rtx  insn,
int  last_clock,
int  clock,
int *  sort_p 
) [static]

static rtx ia64_dfa_pre_cycle_insn ( void   )  [static]

Definition at line 7303 of file ia64.c.

static int ia64_dfa_sched_reorder ( FILE dump,
int  sched_verbose,
rtx ready,
int *  pn_ready,
int clock_var  ATTRIBUTE_UNUSED,
int  reorder_type 
) [static]

static int ia64_dfa_sched_reorder ( FILE ,
int  ,
rtx ,
int *  ,
int  ,
int   
) [static]

int ia64_direct_return ( void   ) 

int ia64_eh_uses ( int  regno  ) 

Definition at line 7624 of file ia64.c.

References current_frame_info, and reload_completed.

void ia64_emit_cond_move ( rtx  op0,
rtx  op1,
rtx  cond 
)

static void ia64_emit_insn_before ( rtx  insn,
rtx  before 
) [static]

Definition at line 5959 of file ia64.c.

References emit_insn_before().

static void ia64_encode_addr_area ( tree  decl,
rtx  symbol 
) [static]

static void ia64_encode_section_info ( tree  decl,
rtx  rtl,
int  first 
) [static]

int ia64_epilogue_uses ( int  regno  ) 

rtx ia64_expand_builtin ( tree  exp,
rtx  target,
rtx subtarget  ATTRIBUTE_UNUSED,
enum machine_mode mode  ATTRIBUTE_UNUSED,
int ignore  ATTRIBUTE_UNUSED 
)

Definition at line 8429 of file ia64.c.

References add_optab, and_optab, const0_rtx, convert_memory_address(), DECL_FUNCTION_CODE, emit_insn(), gen_bsp_value(), gen_flushrs(), gen_mf(), gen_reg_rtx(), IA64_BUILTIN_ADD_AND_FETCH_DI, IA64_BUILTIN_ADD_AND_FETCH_SI, IA64_BUILTIN_AND_AND_FETCH_DI, IA64_BUILTIN_AND_AND_FETCH_SI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI, IA64_BUILTIN_BSP, IA64_BUILTIN_FETCH_AND_ADD_DI, IA64_BUILTIN_FETCH_AND_ADD_SI, IA64_BUILTIN_FETCH_AND_AND_DI, IA64_BUILTIN_FETCH_AND_AND_SI, IA64_BUILTIN_FETCH_AND_NAND_DI, IA64_BUILTIN_FETCH_AND_NAND_SI, IA64_BUILTIN_FETCH_AND_OR_DI, IA64_BUILTIN_FETCH_AND_OR_SI, IA64_BUILTIN_FETCH_AND_SUB_DI, IA64_BUILTIN_FETCH_AND_SUB_SI, IA64_BUILTIN_FETCH_AND_XOR_DI, IA64_BUILTIN_FETCH_AND_XOR_SI, IA64_BUILTIN_FLUSHRS, IA64_BUILTIN_LOCK_RELEASE_DI, IA64_BUILTIN_LOCK_RELEASE_SI, IA64_BUILTIN_LOCK_TEST_AND_SET_DI, IA64_BUILTIN_LOCK_TEST_AND_SET_SI, IA64_BUILTIN_NAND_AND_FETCH_DI, IA64_BUILTIN_NAND_AND_FETCH_SI, IA64_BUILTIN_OR_AND_FETCH_DI, IA64_BUILTIN_OR_AND_FETCH_SI, IA64_BUILTIN_SUB_AND_FETCH_DI, IA64_BUILTIN_SUB_AND_FETCH_SI, IA64_BUILTIN_SYNCHRONIZE, IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI, IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI, IA64_BUILTIN_XOR_AND_FETCH_DI, IA64_BUILTIN_XOR_AND_FETCH_SI, ia64_expand_compare_and_swap(), ia64_expand_fetch_and_op(), ia64_expand_lock_release(), ia64_expand_lock_test_and_set(), ia64_expand_op_and_fetch(), ior_optab, NULL_RTX, one_cmpl_optab, ptr_mode, register_operand(), sub_optab, TREE_OPERAND, and xor_optab.

void ia64_expand_call ( rtx  retval,
rtx  addr,
rtx nextarg  ATTRIBUTE_UNUSED,
int  sibcall_p 
)

static rtx ia64_expand_compare_and_swap ( enum machine_mode  rmode,
enum machine_mode  mode,
int  boolp,
tree  arglist,
rtx  target 
) [static]

void ia64_expand_epilogue ( int  sibcall_p  ) 

static rtx ia64_expand_fetch_and_op ( optab  binoptab,
enum machine_mode  mode,
tree  arglist,
rtx  target 
) [static]

bool ia64_expand_load_address ( rtx  dest,
rtx  src 
)

static rtx ia64_expand_lock_release ( enum machine_mode  mode,
tree  arglist,
rtx target  ATTRIBUTE_UNUSED 
) [static]

static rtx ia64_expand_lock_release ( enum  machine_mode,
tree  ,
rtx   
) [static]

static rtx ia64_expand_lock_test_and_set ( enum machine_mode  mode,
tree  arglist,
rtx  target 
) [static]

rtx ia64_expand_move ( rtx  op0,
rtx  op1 
)

static rtx ia64_expand_op_and_fetch ( optab  binoptab,
enum machine_mode  mode,
tree  arglist,
rtx  target 
) [static]

void ia64_expand_prologue ( void   ) 

static rtx ia64_expand_tls_address ( enum tls_model  tls_kind,
rtx  op0,
rtx  op1,
HOST_WIDE_INT  addend 
) [static]

static void ia64_expand_vcondu_v2si ( enum rtx_code  code,
rtx  operands[] 
) [static]

void ia64_expand_vecint_cmov ( rtx  operands[]  ) 

static bool ia64_expand_vecint_compare ( enum rtx_code  code,
enum machine_mode  mode,
rtx  dest,
rtx  op0,
rtx  op1 
) [static]

bool ia64_expand_vecint_minmax ( enum rtx_code  code,
enum machine_mode  mode,
rtx  operands[] 
)

Definition at line 1598 of file ia64.c.

References abort, gen_rtx_fmt_ee(), GT, ia64_expand_vecint_cmov(), and LT.

bool ia64_extra_constraint ( rtx  value,
char  c 
)

static void ia64_file_start ( void   )  [static]

static int ia64_first_cycle_multipass_dfa_lookahead ( void   )  [static]

Definition at line 7275 of file ia64.c.

References reload_completed.

static int ia64_first_cycle_multipass_dfa_lookahead_guard ( rtx  insn  )  [static]

Definition at line 6160 of file ia64.c.

References abort, INSN_P, NULL_RTX, reload_completed, and safe_group_barrier_needed_p().

rtx ia64_function_arg ( CUMULATIVE_ARGS cum,
enum machine_mode  mode,
tree  type,
int  named,
int  incoming 
)

void ia64_function_arg_advance ( CUMULATIVE_ARGS cum,
enum machine_mode  mode,
tree  type,
int  named 
)

int ia64_function_arg_boundary ( enum machine_mode  mode,
tree  type 
)

Definition at line 3854 of file ia64.c.

References GET_MODE_BITSIZE, PARM_BOUNDARY, TARGET_HPUX, TARGET_ILP32, and TYPE_ALIGN.

static int ia64_function_arg_offset ( CUMULATIVE_ARGS cum,
tree  type,
int  words 
) [static]

static int ia64_function_arg_words ( tree  type,
enum machine_mode  mode 
) [static]

static bool ia64_function_ok_for_sibcall ( tree  decl,
tree exp  ATTRIBUTE_UNUSED 
) [static]

static bool ia64_function_ok_for_sibcall ( tree  ,
tree   
) [static]

rtx ia64_function_value ( tree  valtype,
tree func  ATTRIBUTE_UNUSED 
)

static ia64_addr_area ia64_get_addr_area ( tree  decl  )  [static]

static tree ia64_gimplify_va_arg ( tree  valist,
tree  type,
tree pre_p,
tree post_p 
) [static]

static tree ia64_handle_model_attribute ( tree node,
tree  name,
tree  args,
int flags  ATTRIBUTE_UNUSED,
bool no_add_attrs 
) [static]

int ia64_hard_regno_rename_ok ( int  from,
int  to 
)

Definition at line 3186 of file ia64.c.

References current_frame_info, OUT_REG, OUT_REGNO_P, and PR_REGNO_P.

static void ia64_hpux_file_end ( void   )  [static]

enum direction ia64_hpux_function_arg_padding ( enum machine_mode  mode,
tree  type 
)

static void ia64_hpux_init_libfuncs ( void   )  [static]

static bool ia64_in_small_data_p ( tree  exp  )  [static]

void ia64_init_builtins ( void   ) 

static void ia64_init_dfa_pre_cycle_insn ( void   )  [static]

static void ia64_init_libfuncs ( void   )  [static]

static struct machine_function * ia64_init_machine_status ( void   )  [static, read]

Definition at line 4718 of file ia64.c.

References ggc_alloc_cleared.

HOST_WIDE_INT ia64_initial_elimination_offset ( int  from,
int  to 
)

void ia64_initialize_trampoline ( rtx  addr,
rtx  fnaddr,
rtx  static_chain 
)

static int ia64_issue_rate ( void   )  [static]

Definition at line 5900 of file ia64.c.

int ia64_ld_address_bypass_p ( rtx  producer,
rtx  consumer 
)

bool ia64_legitimate_constant_p ( rtx  x  ) 

Definition at line 729 of file ia64.c.

References CONST, CONST_DOUBLE_OK_FOR_G, GET_CODE, GET_MODE, and tls_symbolic_operand_type().

int ia64_move_ok ( rtx  dst,
rtx  src 
)

void ia64_output_dwarf_dtprel ( FILE file,
int  size,
rtx  x 
)

Definition at line 4056 of file ia64.c.

References abort, fputs(), and output_addr_const().

static void ia64_output_function_end_prologue ( FILE file  )  [static]

Definition at line 3310 of file ia64.c.

References flag_exceptions, flag_unwind_tables, fputs(), and USING_SJLJ_EXCEPTIONS.

static void ia64_output_function_epilogue ( FILE *file  ATTRIBUTE_UNUSED,
HOST_WIDE_INT size  ATTRIBUTE_UNUSED 
) [static]

static void ia64_output_function_epilogue ( FILE ,
HOST_WIDE_INT   
) [static]

void ia64_output_function_profiler ( FILE file,
int  labelno 
)

Definition at line 9037 of file ia64.c.

static void ia64_output_function_prologue ( FILE file,
HOST_WIDE_INT size  ATTRIBUTE_UNUSED 
) [static]

static void ia64_output_function_prologue ( FILE ,
HOST_WIDE_INT   
) [static]

static void ia64_output_mi_thunk ( FILE file,
tree thunk  ATTRIBUTE_UNUSED,
HOST_WIDE_INT  delta,
HOST_WIDE_INT  vcall_offset,
tree  function 
) [static]

static void ia64_output_mi_thunk ( FILE ,
tree  ,
HOST_WIDE_INT  ,
HOST_WIDE_INT  ,
tree   
) [static]

void ia64_override_options ( void   ) 

static bool ia64_pass_by_reference ( CUMULATIVE_ARGS *cum  ATTRIBUTE_UNUSED,
enum machine_mode mode  ATTRIBUTE_UNUSED,
tree  type,
bool named  ATTRIBUTE_UNUSED 
) [static]

Definition at line 3878 of file ia64.c.

References TREE_CODE, and TYPE_SIZE.

static bool ia64_pass_by_reference ( CUMULATIVE_ARGS ,
enum  machine_mode,
tree  ,
bool   
) [static]

enum reg_class ia64_preferred_reload_class ( rtx  x,
enum reg_class  class 
)

Definition at line 4487 of file ia64.c.

References AR_I_REGS, AR_M_REGS, CONSTANT_P, FR_REGS, MEM_P, MEM_VOLATILE_P, NO_REGS, and OBJECT_P.

void ia64_print_operand ( FILE file,
rtx  x,
int  code 
)

void ia64_print_operand_address ( FILE *stream  ATTRIBUTE_UNUSED,
rtx address  ATTRIBUTE_UNUSED 
)

Definition at line 4071 of file ia64.c.

int ia64_produce_address_p ( rtx  insn  ) 

Definition at line 7367 of file ia64.c.

int ia64_register_move_cost ( enum machine_mode  mode,
enum reg_class  from,
enum reg_class  to 
)

void ia64_reload_gp ( void   ) 

static void ia64_reorg ( void   )  [static]

rtx ia64_return_addr_rtx ( HOST_WIDE_INT  count,
rtx frame  ATTRIBUTE_UNUSED 
)

Definition at line 3126 of file ia64.c.

References const0_rtx, gen_rtvec(), gen_rtx_UNSPEC, NULL, and Pmode.

static bool ia64_return_in_memory ( tree  valtype,
tree fntype  ATTRIBUTE_UNUSED 
) [static]

static bool ia64_return_in_memory ( tree  ,
tree   
) [static]

static bool ia64_rtx_costs ( rtx  x,
int  code,
int  outer_code,
int *  total 
) [static]

static void ia64_rwreloc_select_rtx_section ( enum machine_mode  mode,
rtx  x,
unsigned HOST_WIDE_INT  align 
) [static]

Definition at line 8779 of file ia64.c.

References flag_pic, and ia64_select_rtx_section().

static void ia64_rwreloc_select_section ( tree  exp,
int  reloc,
unsigned HOST_WIDE_INT  align 
) [static]

Definition at line 8767 of file ia64.c.

References default_elf_select_section_1().

static void ia64_rwreloc_unique_section ( tree  decl,
int  reloc 
) [static]

Definition at line 8773 of file ia64.c.

References default_unique_section_1().

static void ia64_rwreloc_unique_section ( static unsigned int ia64_section_type_flags (  tree,
static tree ia64_handle_model_attribute (tree  int 
) [static]

Definition at line 255 of file ia64.c.

References ia64_handle_model_attribute(), and NULL.

static enum attr_itanium_class ia64_safe_itanium_class ( rtx  insn  )  [static]

Definition at line 4843 of file ia64.c.

References get_attr_itanium_class(), ITANIUM_CLASS_UNKNOWN, and recog_memoized.

static enum attr_type ia64_safe_type ( rtx  insn  )  [static]

Definition at line 4852 of file ia64.c.

References get_attr_type(), recog_memoized, and TYPE_UNKNOWN.

static bool ia64_scalar_mode_supported_p ( enum machine_mode  mode  )  [static]

Definition at line 8994 of file ia64.c.

References TARGET_HPUX.

static void ia64_sched_finish ( FILE dump,
int  sched_verbose 
) [static]

static void ia64_sched_init ( FILE *dump  ATTRIBUTE_UNUSED,
int sched_verbose  ATTRIBUTE_UNUSED,
int max_ready  ATTRIBUTE_UNUSED 
) [static]

static void ia64_sched_init ( FILE ,
int  ,
int   
) [static]

static int ia64_sched_reorder ( FILE dump,
int  sched_verbose,
rtx ready,
int *  pn_ready,
int  clock_var 
) [static]

Definition at line 6112 of file ia64.c.

References ia64_dfa_sched_reorder().

static int ia64_sched_reorder2 ( FILE *dump  ATTRIBUTE_UNUSED,
int sched_verbose  ATTRIBUTE_UNUSED,
rtx ready,
int *  pn_ready,
int  clock_var 
) [static]

static int ia64_sched_reorder2 ( FILE ,
int  ,
rtx ,
int *  ,
int   
) [static]

enum reg_class ia64_secondary_reload_class ( enum reg_class  class,
enum machine_mode mode  ATTRIBUTE_UNUSED,
rtx  x 
)

static unsigned int ia64_section_type_flags ( tree  decl,
const char *  name,
int  reloc 
) [static]

static void ia64_select_rtx_section ( enum machine_mode  mode,
rtx  x,
unsigned HOST_WIDE_INT  align 
) [static]

static void ia64_setup_incoming_varargs ( CUMULATIVE_ARGS cum,
enum machine_mode  mode,
tree  type,
int *  pretend_size,
int second_time  ATTRIBUTE_UNUSED 
) [static]

static void ia64_setup_incoming_varargs ( CUMULATIVE_ARGS ,
enum  machine_mode,
tree  ,
int *  ,
int   
) [static]

static rtx ia64_single_set ( rtx  insn  )  [static]

void ia64_split_call ( rtx  retval,
rtx  addr,
rtx  retaddr,
rtx  scratch_r,
rtx  scratch_b,
int  noreturn_p,
int  sibcall_p 
)

void ia64_split_return_addr_rtx ( rtx  dest  ) 

Definition at line 3137 of file ia64.c.

static rtx ia64_split_tmode ( rtx  out[2],
rtx  in,
bool  reversed,
bool  dead 
) [static]

void ia64_split_tmode_move ( rtx  operands[]  ) 

int ia64_st_address_bypass_p ( rtx  producer,
rtx  consumer 
)

static bool ia64_struct_retval_addr_is_first_parm_p ( tree  fntype  )  [static]

Definition at line 8816 of file ia64.c.

References abi_version_at_least, strcmp(), TREE_ADDRESSABLE, TREE_TYPE, and TYPE_MODE.

Referenced by ia64_output_mi_thunk(), and ia64_struct_value_rtx().

static rtx ia64_struct_value_rtx ( tree  fntype,
int incoming  ATTRIBUTE_UNUSED 
) [static]

Definition at line 8985 of file ia64.c.

References gen_rtx_REG(), GR_REG, ia64_struct_retval_addr_is_first_parm_p(), NULL_RTX, and Pmode.

static void ia64_sysv4_init_libfuncs ( void   )  [static]

static int ia64_variable_issue ( FILE *dump  ATTRIBUTE_UNUSED,
int sched_verbose  ATTRIBUTE_UNUSED,
rtx insn  ATTRIBUTE_UNUSED,
int can_issue_more  ATTRIBUTE_UNUSED 
) [static]

static int ia64_variable_issue ( FILE ,
int  ,
rtx  ,
int   
) [static]

static bool ia64_vector_mode_supported_p ( enum machine_mode  mode  )  [static]

Definition at line 9019 of file ia64.c.

static void ia64_vms_init_libfuncs ( void   )  [static]

Definition at line 8715 of file ia64.c.

References sdiv_optab, set_optab_libfunc(), smod_optab, udiv_optab, and umod_optab.

static void init_insn_group_barriers ( void   )  [static]

Definition at line 5561 of file ia64.c.

References memset, and rws_sum.

static void initiate_bundle_state_table ( void   )  [static]

Definition at line 6435 of file ia64.c.

References bundle_state_eq_p(), bundle_state_hash(), and htab_create().

Referenced by bundling().

static void initiate_bundle_states ( void   )  [static]

Definition at line 6337 of file ia64.c.

References NULL.

Referenced by ia64_reorg().

static int insert_bundle_state ( struct bundle_state bundle_state  )  [static]

static void issue_nops_and_insn ( struct bundle_state originator,
int  before_nops_num,
rtx  insn,
int  try_bundle_end_p,
int  only_bundle_end_p 
) [static]

static void mark_reg_gr_used_mask ( rtx  reg,
void *data  ATTRIBUTE_UNUSED 
) [static]

Definition at line 1908 of file ia64.c.

References current_frame_info, GET_MODE, HARD_REGNO_NREGS, i, n, and REGNO.

static void mark_reg_gr_used_mask ( rtx  ,
void  
) [static]

static int next_scratch_gr_reg ( void   )  [static]

Definition at line 1883 of file ia64.c.

References abort, call_used_regs, current_frame_info, fixed_regs, global_regs, and i.

static void process_epilogue ( void   )  [static]

Definition at line 7707 of file ia64.c.

References asm_out_file, cfun, and fprintf().

void process_for_unwind_directive ( FILE asm_out_file,
rtx  insn 
)

static int process_set ( FILE asm_out_file,
rtx  pat 
) [static]

static int rtx_needs_barrier ( rtx  x,
struct reg_flags  flags,
int  pred 
) [static]

static int rws_access_reg ( rtx  reg,
struct reg_flags  flags,
int  pred 
) [static]

Definition at line 5079 of file ia64.c.

References GET_MODE, HARD_REGNO_NREGS, n, REGNO, and rws_access_regno().

static int rws_access_regno ( int  regno,
struct reg_flags  flags,
int  pred 
) [static]

static void rws_update ( struct reg_write_state rws,
int  regno,
struct reg_flags  flags,
int  pred 
) [static]

static int safe_group_barrier_needed_p ( rtx  insn  )  [static]

Definition at line 5683 of file ia64.c.

References group_barrier_needed_p(), memcpy, and rws_sum.

static int set_src_needs_barrier ( rtx  x,
struct reg_flags  flags,
int  pred,
rtx  cond 
) [static]

static void setup_spill_pointers ( int  n_spills,
rtx  init_reg,
HOST_WIDE_INT  cfa_off 
) [static]

Definition at line 2262 of file ia64.c.

References current_frame_info, gen_rtx_REG(), get_last_insn(), i, next_scratch_gr_reg(), and NULL.

static rtx spill_restore_mem ( rtx  reg,
HOST_WIDE_INT  cfa_off 
) [static]

rtx spill_xfmode_operand ( rtx  in,
int  force 
)

Definition at line 1274 of file ia64.c.

References adjust_address, assign_stack_temp(), emit_move_insn(), GET_CODE, GET_MODE, REG, and SUBREG_REG.

static enum tls_model tls_symbolic_operand_type ( rtx  addr  )  [static]

Definition at line 709 of file ia64.c.

References CONST, GET_CODE, PLUS, SYMBOL_REF_TLS_MODEL, and XEXP.

static int try_issue_insn ( struct bundle_state curr_state,
rtx  insn 
) [static]

Definition at line 6479 of file ia64.c.

References bundle_state::dfa_state, FALSE, free_bundle_state(), state_transition(), and TRUE.

Referenced by issue_nops_and_insn().

static int try_issue_nops ( struct bundle_state curr_state,
int  nops_num 
) [static]

Definition at line 6461 of file ia64.c.

References bundle_state::dfa_state, FALSE, free_bundle_state(), i, state_transition(), and TRUE.

Referenced by issue_nops_and_insn().

static void update_set_flags ( rtx  x,
struct reg_flags pflags,
int *  ppred,
rtx pcond 
) [static]


Variable Documentation

int _0bbb_ [static]

Definition at line 5831 of file ia64.c.

int _0mbb_ [static]

Definition at line 5831 of file ia64.c.

int _0mfb_ [static]

Definition at line 5831 of file ia64.c.

int _0mfi_ [static]

Definition at line 5830 of file ia64.c.

int _0mib_ [static]

Definition at line 5831 of file ia64.c.

int _0mii_ [static]

Definition at line 5830 of file ia64.c.

int _0mlx_ [static]

Definition at line 5831 of file ia64.c.

int _0mmb_ [static]

Definition at line 5831 of file ia64.c.

int _0mmf_ [static]

Definition at line 5830 of file ia64.c.

int _0mmi_ [static]

Definition at line 5830 of file ia64.c.

int _1bbb_ [static]

Definition at line 5834 of file ia64.c.

int _1mbb_ [static]

Definition at line 5834 of file ia64.c.

int _1mfb_ [static]

Definition at line 5834 of file ia64.c.

int _1mfi_ [static]

Definition at line 5833 of file ia64.c.

int _1mib_ [static]

Definition at line 5834 of file ia64.c.

int _1mii_ [static]

Definition at line 5833 of file ia64.c.

int _1mlx_ [static]

Definition at line 5834 of file ia64.c.

int _1mmb_ [static]

Definition at line 5834 of file ia64.c.

int _1mmf_ [static]

Definition at line 5833 of file ia64.c.

int _1mmi_ [static]

Definition at line 5833 of file ia64.c.

int* add_cycles [static]

Definition at line 5883 of file ia64.c.

Definition at line 6293 of file ia64.c.

const char* bundle_name[NR_BUNDLES] [static]

Initial value:

{
  ".mii",
  ".mmi",
  ".mfi",
  ".mmf",

  ".bbb",
  ".mbb",

  ".mib",
  ".mmb",
  ".mfb",
  ".mlx"
}

Definition at line 5808 of file ia64.c.

Definition at line 6364 of file ia64.c.

int bundle_states_num [static]

Definition at line 6289 of file ia64.c.

int bundling_p = 0

Definition at line 132 of file ia64.c.

int* clocks [static]

Definition at line 5878 of file ia64.c.

int clocks_length [static]

Definition at line 5872 of file ia64.c.

Definition at line 165 of file ia64.c.

Definition at line 6172 of file ia64.c.

Definition at line 5848 of file ia64.c.

rtx dfa_stop_insn [static]

Definition at line 5840 of file ia64.c.

int first_instruction [static]

Definition at line 4915 of file ia64.c.

Definition at line 6298 of file ia64.c.

Definition at line 58 of file ia64.c.

Definition at line 62 of file ia64.c.

Definition at line 63 of file ia64.c.

Definition at line 5826 of file ia64.c.

Definition at line 102 of file ia64.c.

Definition at line 119 of file ia64.c.

int ia64_flag_var_tracking [static]

Definition at line 123 of file ia64.c.

Referenced by ia64_file_start(), and ia64_reorg().

const char* const ia64_input_reg_names[8] [static]

Initial value:

{ "in0",  "in1",  "in2",  "in3",  "in4",  "in5",  "in6",  "in7" }

Definition at line 81 of file ia64.c.

const char* const ia64_local_reg_names[80] [static]

Initial value:

{ "loc0", "loc1", "loc2", "loc3", "loc4", "loc5", "loc6", "loc7",
  "loc8", "loc9", "loc10","loc11","loc12","loc13","loc14","loc15",
  "loc16","loc17","loc18","loc19","loc20","loc21","loc22","loc23",
  "loc24","loc25","loc26","loc27","loc28","loc29","loc30","loc31",
  "loc32","loc33","loc34","loc35","loc36","loc37","loc38","loc39",
  "loc40","loc41","loc42","loc43","loc44","loc45","loc46","loc47",
  "loc48","loc49","loc50","loc51","loc52","loc53","loc54","loc55",
  "loc56","loc57","loc58","loc59","loc60","loc61","loc62","loc63",
  "loc64","loc65","loc66","loc67","loc68","loc69","loc70","loc71",
  "loc72","loc73","loc74","loc75","loc76","loc77","loc78","loc79" }

Definition at line 85 of file ia64.c.

rtx ia64_nop [static]

Definition at line 6454 of file ia64.c.

const char* const ia64_output_reg_names[8] [static]

Initial value:

{ "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7" }

Definition at line 98 of file ia64.c.

const char* const ia64_reg_numbers[96] [static]

Initial value:

{ "r32", "r33", "r34", "r35", "r36", "r37", "r38", "r39",
  "r40", "r41", "r42", "r43", "r44", "r45", "r46", "r47",
  "r48", "r49", "r50", "r51", "r52", "r53", "r54", "r55",
  "r56", "r57", "r58", "r59", "r60", "r61", "r62", "r63",
  "r64", "r65", "r66", "r67", "r68", "r69", "r70", "r71",
  "r72", "r73", "r74", "r75", "r76", "r77", "r78", "r79",
  "r80", "r81", "r82", "r83", "r84", "r85", "r86", "r87",
  "r88", "r89", "r90", "r91", "r92", "r93", "r94", "r95",
  "r96", "r97", "r98", "r99", "r100","r101","r102","r103",
  "r104","r105","r106","r107","r108","r109","r110","r111",
  "r112","r113","r114","r115","r116","r117","r118","r119",
  "r120","r121","r122","r123","r124","r125","r126","r127"}

Definition at line 66 of file ia64.c.

unsigned int ia64_section_threshold

Definition at line 128 of file ia64.c.

int ia64_tls_size = 22

Definition at line 106 of file ia64.c.

const char* ia64_tls_size_string

Definition at line 109 of file ia64.c.

const char* ia64_tune_string

Definition at line 115 of file ia64.c.

Referenced by ia64_override_options().

Definition at line 6285 of file ia64.c.

bool last_block [static]

Definition at line 7698 of file ia64.c.

Definition at line 5844 of file ia64.c.

int last_scratch_gr_reg [static]

Definition at line 1880 of file ia64.c.

Definition at line 7702 of file ia64.c.

int pos_1 [static]

Definition at line 5836 of file ia64.c.

int pos_2 [static]

Definition at line 5836 of file ia64.c.

int pos_3 [static]

Definition at line 5836 of file ia64.c.

int pos_4 [static]

Definition at line 5836 of file ia64.c.

int pos_5 [static]

Definition at line 5836 of file ia64.c.

int pos_6 [static]

Definition at line 5836 of file ia64.c.

state_t prev_cycle_state = NULL [static]

Definition at line 5858 of file ia64.c.

Definition at line 4910 of file ia64.c.

Definition at line 4907 of file ia64.c.

Definition at line 2259 of file ia64.c.

int stop_before_p = 0 [static]

Definition at line 5867 of file ia64.c.

char* stops_p [static]

Definition at line 5863 of file ia64.c.

struct gcc_target targetm = TARGET_INITIALIZER

Definition at line 438 of file ia64.c.

state_t temp_dfa_state = NULL [static]

Definition at line 5853 of file ia64.c.


Generated on Wed Apr 8 15:21:36 2009 for Open64 by  doxygen 1.5.6