osprey-gcc-4.2.0/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 "intl.h"
#include "debug.h"
#include "params.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_2   ia64_adjust_cost_2
#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_INIT_GLOBAL   ia64_sched_init_global
#define TARGET_SCHED_FINISH_GLOBAL   ia64_sched_finish_global
#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_SCHED_H_I_D_EXTENDED   ia64_h_i_d_extended
#define TARGET_SCHED_SET_SCHED_FLAGS   ia64_set_sched_flags
#define TARGET_SCHED_SPECULATE_INSN   ia64_speculate_insn
#define TARGET_SCHED_NEEDS_BLOCK_P   ia64_needs_block_p
#define TARGET_SCHED_GEN_CHECK   ia64_gen_check
#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC   ia64_first_cycle_multipass_dfa_lookahead_guard_spec
#define TARGET_FUNCTION_OK_FOR_SIBCALL   ia64_function_ok_for_sibcall
#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_DEFAULT_TARGET_FLAGS   (TARGET_DEFAULT | TARGET_CPU_DEFAULT)
#define TARGET_HANDLE_OPTION   ia64_handle_option
#define TARGET_CANNOT_FORCE_CONST_MEM   ia64_cannot_force_const_mem
#define TARGET_MANGLE_FUNDAMENTAL_TYPE   ia64_mangle_fundamental_type
#define TARGET_INVALID_CONVERSION   ia64_invalid_conversion
#define TARGET_INVALID_UNARY_OP   ia64_invalid_unary_op
#define TARGET_INVALID_BINARY_OP   ia64_invalid_binary_op
#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 MAX_ARTIFICIAL_LABEL_BYTES   30
#define IA64_CHANGE_CFA_IN_EPILOGUE   0
#define def_builtin(name, type, code)

Enumerations

enum  ia64_addr_area { ADDR_AREA_NORMAL, ADDR_AREA_SMALL, ADDR_AREA_NORMAL, ADDR_AREA_SMALL }
enum  SPEC_MODES {
  SPEC_MODE_INVALID = -1, SPEC_MODE_FIRST = 0, SPEC_MODE_FOR_EXTEND_FIRST = 1, SPEC_MODE_FOR_EXTEND_LAST = 3,
  SPEC_MODE_LAST = 8
}
enum  { SPEC_GEN_EXTEND_OFFSET = SPEC_MODE_LAST - SPEC_MODE_FOR_EXTEND_FIRST + 1, SPEC_N }
enum  SPEC_GEN_LD_MAP { SPEC_GEN_A = 0 * SPEC_N, SPEC_GEN_S = 1 * SPEC_N, SPEC_GEN_SA = 2 * SPEC_N, SPEC_GEN_SA_FOR_S = 3 * SPEC_N }
enum  SPEC_GEN_CHECK_OFFSET { SPEC_GEN_CHKA_FOR_A_OFFSET = 4 * SPEC_N - SPEC_GEN_A, SPEC_GEN_CHKA_FOR_SA_OFFSET = 4 * SPEC_N - SPEC_GEN_SA }
enum  { SPEC_GEN_CHECK_MUTATION_OFFSET = 5 * SPEC_N }
enum  ia64_builtins {
  IA64_BUILTIN_SYNCHRONIZE, IA64_BUILTIN_FETCH_AND_ADD_SI, IA64_BUILTIN_FETCH_AND_SUB_SI, IA64_BUILTIN_FETCH_AND_OR_SI,
  IA64_BUILTIN_FETCH_AND_AND_SI, IA64_BUILTIN_FETCH_AND_XOR_SI, IA64_BUILTIN_FETCH_AND_NAND_SI, IA64_BUILTIN_ADD_AND_FETCH_SI,
  IA64_BUILTIN_SUB_AND_FETCH_SI, IA64_BUILTIN_OR_AND_FETCH_SI, IA64_BUILTIN_AND_AND_FETCH_SI, IA64_BUILTIN_XOR_AND_FETCH_SI,
  IA64_BUILTIN_NAND_AND_FETCH_SI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI, IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI, IA64_BUILTIN_SYNCHRONIZE_SI,
  IA64_BUILTIN_LOCK_TEST_AND_SET_SI, IA64_BUILTIN_LOCK_RELEASE_SI, IA64_BUILTIN_FETCH_AND_ADD_DI, IA64_BUILTIN_FETCH_AND_SUB_DI,
  IA64_BUILTIN_FETCH_AND_OR_DI, IA64_BUILTIN_FETCH_AND_AND_DI, IA64_BUILTIN_FETCH_AND_XOR_DI, IA64_BUILTIN_FETCH_AND_NAND_DI,
  IA64_BUILTIN_ADD_AND_FETCH_DI, IA64_BUILTIN_SUB_AND_FETCH_DI, IA64_BUILTIN_OR_AND_FETCH_DI, IA64_BUILTIN_AND_AND_FETCH_DI,
  IA64_BUILTIN_XOR_AND_FETCH_DI, IA64_BUILTIN_NAND_AND_FETCH_DI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI, IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI,
  IA64_BUILTIN_SYNCHRONIZE_DI, IA64_BUILTIN_LOCK_TEST_AND_SET_DI, IA64_BUILTIN_LOCK_RELEASE_DI, IA64_BUILTIN_BSP,
  IA64_BUILTIN_FLUSHRS, IA64_BUILTIN_SYNCHRONIZE, IA64_BUILTIN_FETCH_AND_ADD_SI, IA64_BUILTIN_FETCH_AND_SUB_SI,
  IA64_BUILTIN_FETCH_AND_OR_SI, IA64_BUILTIN_FETCH_AND_AND_SI, IA64_BUILTIN_FETCH_AND_XOR_SI, IA64_BUILTIN_FETCH_AND_NAND_SI,
  IA64_BUILTIN_ADD_AND_FETCH_SI, IA64_BUILTIN_SUB_AND_FETCH_SI, IA64_BUILTIN_OR_AND_FETCH_SI, IA64_BUILTIN_AND_AND_FETCH_SI,
  IA64_BUILTIN_XOR_AND_FETCH_SI, IA64_BUILTIN_NAND_AND_FETCH_SI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI, IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI,
  IA64_BUILTIN_SYNCHRONIZE_SI, IA64_BUILTIN_LOCK_TEST_AND_SET_SI, IA64_BUILTIN_LOCK_RELEASE_SI, IA64_BUILTIN_FETCH_AND_ADD_DI,
  IA64_BUILTIN_FETCH_AND_SUB_DI, IA64_BUILTIN_FETCH_AND_OR_DI, IA64_BUILTIN_FETCH_AND_AND_DI, IA64_BUILTIN_FETCH_AND_XOR_DI,
  IA64_BUILTIN_FETCH_AND_NAND_DI, IA64_BUILTIN_ADD_AND_FETCH_DI, IA64_BUILTIN_SUB_AND_FETCH_DI, IA64_BUILTIN_OR_AND_FETCH_DI,
  IA64_BUILTIN_AND_AND_FETCH_DI, IA64_BUILTIN_XOR_AND_FETCH_DI, IA64_BUILTIN_NAND_AND_FETCH_DI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI,
  IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI, IA64_BUILTIN_SYNCHRONIZE_DI, IA64_BUILTIN_LOCK_TEST_AND_SET_DI, IA64_BUILTIN_LOCK_RELEASE_DI,
  IA64_BUILTIN_BSP, IA64_BUILTIN_FLUSHRS, IA64_BUILTIN_SYNCHRONIZE, IA64_BUILTIN_FETCH_AND_ADD_SI,
  IA64_BUILTIN_FETCH_AND_SUB_SI, IA64_BUILTIN_FETCH_AND_OR_SI, IA64_BUILTIN_FETCH_AND_AND_SI, IA64_BUILTIN_FETCH_AND_XOR_SI,
  IA64_BUILTIN_FETCH_AND_NAND_SI, IA64_BUILTIN_ADD_AND_FETCH_SI, IA64_BUILTIN_SUB_AND_FETCH_SI, IA64_BUILTIN_OR_AND_FETCH_SI,
  IA64_BUILTIN_AND_AND_FETCH_SI, IA64_BUILTIN_XOR_AND_FETCH_SI, IA64_BUILTIN_NAND_AND_FETCH_SI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
  IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI, IA64_BUILTIN_SYNCHRONIZE_SI, IA64_BUILTIN_LOCK_TEST_AND_SET_SI, IA64_BUILTIN_LOCK_RELEASE_SI,
  IA64_BUILTIN_FETCH_AND_ADD_DI, IA64_BUILTIN_FETCH_AND_SUB_DI, IA64_BUILTIN_FETCH_AND_OR_DI, IA64_BUILTIN_FETCH_AND_AND_DI,
  IA64_BUILTIN_FETCH_AND_XOR_DI, IA64_BUILTIN_FETCH_AND_NAND_DI, IA64_BUILTIN_ADD_AND_FETCH_DI, IA64_BUILTIN_SUB_AND_FETCH_DI,
  IA64_BUILTIN_OR_AND_FETCH_DI, IA64_BUILTIN_AND_AND_FETCH_DI, IA64_BUILTIN_XOR_AND_FETCH_DI, IA64_BUILTIN_NAND_AND_FETCH_DI,
  IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI, IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI, IA64_BUILTIN_SYNCHRONIZE_DI, IA64_BUILTIN_LOCK_TEST_AND_SET_DI,
  IA64_BUILTIN_LOCK_RELEASE_DI, IA64_BUILTIN_BSP, IA64_BUILTIN_FLUSHRS, IA64_BUILTIN_BSP,
  IA64_BUILTIN_FLUSHRS
}

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 bool ia64_first_cycle_multipass_dfa_lookahead_guard_spec (rtx)
static int ia64_dfa_new_cycle (FILE *, int, rtx, int, int, int *)
static void ia64_h_i_d_extended (void)
static int ia64_mode_to_int (enum machine_mode)
static void ia64_set_sched_flags (spec_info_t)
static int ia64_speculate_insn (rtx, ds_t, rtx *)
static rtx ia64_gen_spec_insn (rtx, ds_t, int, bool, bool)
static bool ia64_needs_block_p (rtx)
static rtx ia64_gen_check (rtx, rtx, bool)
static int ia64_spec_check_p (rtx)
static int ia64_spec_check_src_p (rtx)
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 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 bool ia64_handle_option (size_t, const char *, int)
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 (FILE *, rtx, bool, bool)
static int process_set (FILE *, rtx, rtx, bool, bool)
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_2 (rtx, int, rtx, int)
static void ia64_sched_init (FILE *, int, int)
static void ia64_sched_init_global (FILE *, int, int)
static void ia64_sched_finish_global (FILE *, 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 int ia64_hpux_reloc_rw_mask (void)
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 ia64_load_pair_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, rtx orig_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[])
static rtx spill_xfmode_rfmode_operand (rtx in, int force, enum machine_mode mode)
bool ia64_expand_movxf_movrf (enum machine_mode mode, rtx operands[])
static bool ia64_expand_vecint_compare (enum rtx_code code, enum machine_mode mode, rtx dest, rtx op0, rtx op1)
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_widen_sum (rtx operands[3], bool unsignedp)
void ia64_expand_dot_prod_v8qi (rtx operands[4], bool unsignedp)
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 ia64_expand_atomic_op (enum rtx_code code, rtx mem, rtx val, rtx old_dst, rtx new_dst)
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_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)
static 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 *)
static int set_src_needs_barrier (rtx, struct reg_flags, int)
static int rtx_needs_barrier (rtx, struct reg_flags, int)
static void init_insn_group_barriers (void)
static int group_barrier_needed (rtx)
static int safe_group_barrier_needed (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 void ia64_sched_init_global (FILE *dump ATTRIBUTE_UNUSED, int sched_verbose ATTRIBUTE_UNUSED, int max_ready ATTRIBUTE_UNUSED)
static void ia64_sched_finish_global (FILE *dump ATTRIBUTE_UNUSED, int sched_verbose 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 ia64_add_bundle_selector_before (int template0, rtx insn)
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)
static const char * ia64_emit_deleted_label_after_insn (rtx insn)
static void ia64_dwarf2out_def_steady_cfa (rtx insn)
void process_for_unwind_directive (FILE *asm_out_file, rtx insn)
void ia64_init_builtins (void)
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 int ia64_reloc_rw_mask (void)
static sectionia64_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)
void ia64_profile_hook (int labelno)
static const char * ia64_mangle_fundamental_type (tree type)
static const char * ia64_invalid_conversion (tree fromtype, tree totype)
static const char * ia64_invalid_unary_op (int op, tree type)
static const char * ia64_invalid_binary_op (int op ATTRIBUTE_UNUSED, tree type1, tree type2)
void ia64_optimization_options (int level ATTRIBUTE_UNUSED, int size ATTRIBUTE_UNUSED)

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]
enum processor_type ia64_tune = PROCESSOR_ITANIUM2
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 = NULL
static int * spec_check_no = NULL
static int max_uid = 0
static int stop_before_p = 0
static int clocks_length
static int * clocks
static int * add_cycles
static int pending_data_specs = 0
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 5239 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 IA64_CHANGE_CFA_IN_EPILOGUE   0

Definition at line 8798 of file ia64.c.

Referenced by process_epilogue(), and process_for_unwind_directive().

#define MAX_ARTIFICIAL_LABEL_BYTES   30

Definition at line 8751 of file ia64.c.

#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))

#define NR_BUNDLES   10

Definition at line 6144 of file ia64.c.

#define NUM_REGS   (AR_UNAT_BIT_0 + 64)

Definition at line 5240 of file ia64.c.

#define REG_AR_CFM   (FIRST_PSEUDO_REGISTER + 1)

Definition at line 5235 of file ia64.c.

#define REG_RP   (BR_REG (0))

Definition at line 5234 of file ia64.c.

#define REG_VOLATILE   (FIRST_PSEUDO_REGISTER + 2)

Definition at line 5238 of file ia64.c.

#define TARGET_ADDRESS_COST   hook_int_rtx_0

Definition at line 396 of file ia64.c.

#define TARGET_ARG_PARTIAL_BYTES   ia64_arg_partial_bytes

Definition at line 383 of file ia64.c.

#define TARGET_ASM_ALIGNED_DI_OP   "\tdata8\t"

Definition at line 304 of file ia64.c.

#define TARGET_ASM_ALIGNED_HI_OP   "\tdata2\t"

Definition at line 300 of file ia64.c.

#define TARGET_ASM_ALIGNED_SI_OP   "\tdata4\t"

Definition at line 302 of file ia64.c.

#define TARGET_ASM_BYTE_OP   "\tdata1\t"

Definition at line 298 of file ia64.c.

#define TARGET_ASM_CAN_OUTPUT_MI_THUNK   hook_bool_tree_hwi_hwi_tree_true

Definition at line 388 of file ia64.c.

#define TARGET_ASM_FILE_START   ia64_file_start

Definition at line 391 of file ia64.c.

#define TARGET_ASM_FUNCTION_END_PROLOGUE   ia64_output_function_end_prologue

Definition at line 317 of file ia64.c.

#define TARGET_ASM_FUNCTION_EPILOGUE   ia64_output_function_epilogue

Definition at line 319 of file ia64.c.

#define TARGET_ASM_FUNCTION_PROLOGUE   ia64_output_function_prologue

Definition at line 315 of file ia64.c.

#define TARGET_ASM_INTEGER   ia64_assemble_integer

Definition at line 312 of file ia64.c.

#define TARGET_ASM_OUTPUT_MI_THUNK   ia64_output_mi_thunk

Definition at line 386 of file ia64.c.

#define TARGET_ASM_UNALIGNED_DI_OP   "\tdata8.ua\t"

Definition at line 310 of file ia64.c.

#define TARGET_ASM_UNALIGNED_HI_OP   "\tdata2.ua\t"

Definition at line 306 of file ia64.c.

#define TARGET_ASM_UNALIGNED_SI_OP   "\tdata4.ua\t"

Definition at line 308 of file ia64.c.

#define TARGET_ATTRIBUTE_TABLE   ia64_attribute_table

Definition at line 289 of file ia64.c.

#define TARGET_CANNOT_FORCE_CONST_MEM   ia64_cannot_force_const_mem

Definition at line 463 of file ia64.c.

#define TARGET_DEFAULT_TARGET_FLAGS   (TARGET_DEFAULT | TARGET_CPU_DEFAULT)

Definition at line 458 of file ia64.c.

#define TARGET_ENCODE_SECTION_INFO   ia64_encode_section_info

Definition at line 402 of file ia64.c.

#define TARGET_EXPAND_BUILTIN   ia64_expand_builtin

Definition at line 295 of file ia64.c.

#define TARGET_FUNCTION_OK_FOR_SIBCALL   ia64_function_ok_for_sibcall

Definition at line 381 of file ia64.c.

#define TARGET_GIMPLIFY_VA_ARG_EXPR   ia64_gimplify_va_arg

Definition at line 442 of file ia64.c.

#define TARGET_HANDLE_OPTION   ia64_handle_option

Definition at line 460 of file ia64.c.

#define TARGET_IN_SMALL_DATA_P   ia64_in_small_data_p

Definition at line 322 of file ia64.c.

#define TARGET_INIT_BUILTINS   ia64_init_builtins

Definition at line 292 of file ia64.c.

#define TARGET_INVALID_BINARY_OP   ia64_invalid_binary_op

Definition at line 473 of file ia64.c.

#define TARGET_INVALID_CONVERSION   ia64_invalid_conversion

Definition at line 469 of file ia64.c.

#define TARGET_INVALID_UNARY_OP   ia64_invalid_unary_op

Definition at line 471 of file ia64.c.

#define TARGET_MACHINE_DEPENDENT_REORG   ia64_reorg

Definition at line 399 of file ia64.c.

#define TARGET_MANGLE_FUNDAMENTAL_TYPE   ia64_mangle_fundamental_type

Definition at line 466 of file ia64.c.

#define TARGET_MUST_PASS_IN_STACK   must_pass_in_stack_var_size

Definition at line 439 of file ia64.c.

#define TARGET_RELAXED_ORDERING   true

Definition at line 455 of file ia64.c.

#define TARGET_RETURN_IN_MEMORY   ia64_return_in_memory

Definition at line 433 of file ia64.c.

#define TARGET_RTX_COSTS   ia64_rtx_costs

Definition at line 394 of file ia64.c.

#define TARGET_SCALAR_MODE_SUPPORTED_P   ia64_scalar_mode_supported_p

Definition at line 448 of file ia64.c.

#define TARGET_SCHED_ADJUST_COST_2   ia64_adjust_cost_2

Definition at line 325 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 333 of file ia64.c.

#define TARGET_SCHED_FINISH_GLOBAL   ia64_sched_finish_global

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_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC   ia64_first_cycle_multipass_dfa_lookahead_guard_spec

Definition at line 377 of file ia64.c.

#define TARGET_SCHED_GEN_CHECK   ia64_gen_check

Definition at line 374 of file ia64.c.

#define TARGET_SCHED_H_I_D_EXTENDED   ia64_h_i_d_extended

Definition at line 362 of file ia64.c.

#define TARGET_SCHED_INIT   ia64_sched_init

Definition at line 331 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_INIT_GLOBAL   ia64_sched_init_global

Definition at line 335 of file ia64.c.

#define TARGET_SCHED_ISSUE_RATE   ia64_issue_rate

Definition at line 327 of file ia64.c.

#define TARGET_SCHED_NEEDS_BLOCK_P   ia64_needs_block_p

Definition at line 371 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_SET_SCHED_FLAGS   ia64_set_sched_flags

Definition at line 365 of file ia64.c.

#define TARGET_SCHED_SPECULATE_INSN   ia64_speculate_insn

Definition at line 368 of file ia64.c.

#define TARGET_SCHED_VARIABLE_ISSUE   ia64_variable_issue

Definition at line 329 of file ia64.c.

#define TARGET_SECTION_TYPE_FLAGS   ia64_section_type_flags

Definition at line 405 of file ia64.c.

#define TARGET_SETUP_INCOMING_VARARGS   ia64_setup_incoming_varargs

Definition at line 435 of file ia64.c.

#define TARGET_STRICT_ARGUMENT_NAMING   hook_bool_CUMULATIVE_ARGS_true

Definition at line 437 of file ia64.c.

#define TARGET_STRUCT_VALUE_RTX   ia64_struct_value_rtx

Definition at line 431 of file ia64.c.

#define TARGET_UNWIND_EMIT   process_for_unwind_directive

Definition at line 445 of file ia64.c.

#define TARGET_VECTOR_MODE_SUPPORTED_P   ia64_vector_mode_supported_p

Definition at line 450 of file ia64.c.


Enumeration Type Documentation

anonymous enum

Enumerator:
SPEC_GEN_EXTEND_OFFSET 
SPEC_N 

Definition at line 6871 of file ia64.c.

anonymous enum

Enumerator:
SPEC_GEN_CHECK_MUTATION_OFFSET 

Definition at line 7021 of file ia64.c.

Enumerator:
ADDR_AREA_NORMAL 
ADDR_AREA_SMALL 
ADDR_AREA_NORMAL 
ADDR_AREA_SMALL 

Definition at line 477 of file ia64.c.

Enumerator:
IA64_BUILTIN_SYNCHRONIZE 
IA64_BUILTIN_FETCH_AND_ADD_SI 
IA64_BUILTIN_FETCH_AND_SUB_SI 
IA64_BUILTIN_FETCH_AND_OR_SI 
IA64_BUILTIN_FETCH_AND_AND_SI 
IA64_BUILTIN_FETCH_AND_XOR_SI 
IA64_BUILTIN_FETCH_AND_NAND_SI 
IA64_BUILTIN_ADD_AND_FETCH_SI 
IA64_BUILTIN_SUB_AND_FETCH_SI 
IA64_BUILTIN_OR_AND_FETCH_SI 
IA64_BUILTIN_AND_AND_FETCH_SI 
IA64_BUILTIN_XOR_AND_FETCH_SI 
IA64_BUILTIN_NAND_AND_FETCH_SI 
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI 
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI 
IA64_BUILTIN_SYNCHRONIZE_SI 
IA64_BUILTIN_LOCK_TEST_AND_SET_SI 
IA64_BUILTIN_LOCK_RELEASE_SI 
IA64_BUILTIN_FETCH_AND_ADD_DI 
IA64_BUILTIN_FETCH_AND_SUB_DI 
IA64_BUILTIN_FETCH_AND_OR_DI 
IA64_BUILTIN_FETCH_AND_AND_DI 
IA64_BUILTIN_FETCH_AND_XOR_DI 
IA64_BUILTIN_FETCH_AND_NAND_DI 
IA64_BUILTIN_ADD_AND_FETCH_DI 
IA64_BUILTIN_SUB_AND_FETCH_DI 
IA64_BUILTIN_OR_AND_FETCH_DI 
IA64_BUILTIN_AND_AND_FETCH_DI 
IA64_BUILTIN_XOR_AND_FETCH_DI 
IA64_BUILTIN_NAND_AND_FETCH_DI 
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI 
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI 
IA64_BUILTIN_SYNCHRONIZE_DI 
IA64_BUILTIN_LOCK_TEST_AND_SET_DI 
IA64_BUILTIN_LOCK_RELEASE_DI 
IA64_BUILTIN_BSP 
IA64_BUILTIN_FLUSHRS 
IA64_BUILTIN_SYNCHRONIZE 
IA64_BUILTIN_FETCH_AND_ADD_SI 
IA64_BUILTIN_FETCH_AND_SUB_SI 
IA64_BUILTIN_FETCH_AND_OR_SI 
IA64_BUILTIN_FETCH_AND_AND_SI 
IA64_BUILTIN_FETCH_AND_XOR_SI 
IA64_BUILTIN_FETCH_AND_NAND_SI 
IA64_BUILTIN_ADD_AND_FETCH_SI 
IA64_BUILTIN_SUB_AND_FETCH_SI 
IA64_BUILTIN_OR_AND_FETCH_SI 
IA64_BUILTIN_AND_AND_FETCH_SI 
IA64_BUILTIN_XOR_AND_FETCH_SI 
IA64_BUILTIN_NAND_AND_FETCH_SI 
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI 
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI 
IA64_BUILTIN_SYNCHRONIZE_SI 
IA64_BUILTIN_LOCK_TEST_AND_SET_SI 
IA64_BUILTIN_LOCK_RELEASE_SI 
IA64_BUILTIN_FETCH_AND_ADD_DI 
IA64_BUILTIN_FETCH_AND_SUB_DI 
IA64_BUILTIN_FETCH_AND_OR_DI 
IA64_BUILTIN_FETCH_AND_AND_DI 
IA64_BUILTIN_FETCH_AND_XOR_DI 
IA64_BUILTIN_FETCH_AND_NAND_DI 
IA64_BUILTIN_ADD_AND_FETCH_DI 
IA64_BUILTIN_SUB_AND_FETCH_DI 
IA64_BUILTIN_OR_AND_FETCH_DI 
IA64_BUILTIN_AND_AND_FETCH_DI 
IA64_BUILTIN_XOR_AND_FETCH_DI 
IA64_BUILTIN_NAND_AND_FETCH_DI 
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI 
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI 
IA64_BUILTIN_SYNCHRONIZE_DI 
IA64_BUILTIN_LOCK_TEST_AND_SET_DI 
IA64_BUILTIN_LOCK_RELEASE_DI 
IA64_BUILTIN_BSP 
IA64_BUILTIN_FLUSHRS 
IA64_BUILTIN_SYNCHRONIZE 
IA64_BUILTIN_FETCH_AND_ADD_SI 
IA64_BUILTIN_FETCH_AND_SUB_SI 
IA64_BUILTIN_FETCH_AND_OR_SI 
IA64_BUILTIN_FETCH_AND_AND_SI 
IA64_BUILTIN_FETCH_AND_XOR_SI 
IA64_BUILTIN_FETCH_AND_NAND_SI 
IA64_BUILTIN_ADD_AND_FETCH_SI 
IA64_BUILTIN_SUB_AND_FETCH_SI 
IA64_BUILTIN_OR_AND_FETCH_SI 
IA64_BUILTIN_AND_AND_FETCH_SI 
IA64_BUILTIN_XOR_AND_FETCH_SI 
IA64_BUILTIN_NAND_AND_FETCH_SI 
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI 
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI 
IA64_BUILTIN_SYNCHRONIZE_SI 
IA64_BUILTIN_LOCK_TEST_AND_SET_SI 
IA64_BUILTIN_LOCK_RELEASE_SI 
IA64_BUILTIN_FETCH_AND_ADD_DI 
IA64_BUILTIN_FETCH_AND_SUB_DI 
IA64_BUILTIN_FETCH_AND_OR_DI 
IA64_BUILTIN_FETCH_AND_AND_DI 
IA64_BUILTIN_FETCH_AND_XOR_DI 
IA64_BUILTIN_FETCH_AND_NAND_DI 
IA64_BUILTIN_ADD_AND_FETCH_DI 
IA64_BUILTIN_SUB_AND_FETCH_DI 
IA64_BUILTIN_OR_AND_FETCH_DI 
IA64_BUILTIN_AND_AND_FETCH_DI 
IA64_BUILTIN_XOR_AND_FETCH_DI 
IA64_BUILTIN_NAND_AND_FETCH_DI 
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI 
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI 
IA64_BUILTIN_SYNCHRONIZE_DI 
IA64_BUILTIN_LOCK_TEST_AND_SET_DI 
IA64_BUILTIN_LOCK_RELEASE_DI 
IA64_BUILTIN_BSP 
IA64_BUILTIN_FLUSHRS 
IA64_BUILTIN_BSP 
IA64_BUILTIN_FLUSHRS 

Definition at line 9128 of file ia64.c.

Enumerator:
SPEC_GEN_CHKA_FOR_A_OFFSET 
SPEC_GEN_CHKA_FOR_SA_OFFSET 

Definition at line 6894 of file ia64.c.

Enumerator:
SPEC_GEN_A 
SPEC_GEN_S 
SPEC_GEN_SA 
SPEC_GEN_SA_FOR_S 

Definition at line 6880 of file ia64.c.

enum SPEC_MODES

Enumerator:
SPEC_MODE_INVALID 
SPEC_MODE_FIRST 
SPEC_MODE_FOR_EXTEND_FIRST 
SPEC_MODE_FOR_EXTEND_LAST 
SPEC_MODE_LAST 

Definition at line 6693 of file ia64.c.


Function Documentation

int addp4_optimize_ok ( rtx  op1,
rtx  op2 
)

Definition at line 753 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 7373 of file ia64.c.

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

static unsigned bundle_state_hash ( const void bundle_state  )  [static]

Definition at line 7359 of file ia64.c.

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

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 2862 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 2196 of file ia64.c.

References asm_out_file, call_used_regs, fprintf(), fputc(), fputs(), and PR_REG.

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

static void final_emit_insn_group_barriers ( FILE  )  [static]

static int find_gr_spill ( int  try_locals  )  [static]

static void finish_bundle_state_table ( void   )  [static]

Definition at line 7434 of file ia64.c.

References htab_delete().

static void finish_bundle_states ( void   )  [static]

static void finish_spill_pointers ( void   )  [static]

Definition at line 2700 of file ia64.c.

References current_frame_info.

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

Definition at line 5064 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 7318 of file ia64.c.

References bundle_state::next.

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

Definition at line 2889 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 2883 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 2877 of file ia64.c.

References gen_movdi().

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

static rtx gen_thread_pointer ( void   )  [static]

static rtx gen_tls_get_addr ( void   )  [static]

const char* get_bundle_name ( int  b  ) 

Definition at line 6242 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 7603 of file ia64.c.

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

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

Definition at line 7632 of file ia64.c.

References gcc_unreachable.

static int group_barrier_needed ( rtx  insn  )  [static]

static GTY ( ()   )  [static]

Definition at line 484 of file ia64.c.

References get_identifier().

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

static void ia64_add_bundle_selector_before ( int  template0,
rtx  insn 
) [static]

static int ia64_adjust_cost_2 ( rtx  insn,
int  dep_type1,
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 857 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 633 of file ia64.c.

References CONST_DOUBLE_OK_FOR_G.

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 763 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 8330 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   ) 

static void ia64_dwarf2out_def_steady_cfa ( rtx  insn  )  [static]

int ia64_eh_uses ( int  regno  ) 

Definition at line 8670 of file ia64.c.

References current_frame_info, and reload_completed.

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

static const char* ia64_emit_deleted_label_after_insn ( rtx  insn  )  [static]

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

Definition at line 6312 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  ) 

void ia64_expand_atomic_op ( enum rtx_code  code,
rtx  mem,
rtx  val,
rtx  old_dst,
rtx  new_dst 
)

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

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

void ia64_expand_dot_prod_v8qi ( rtx  operands[4],
bool  unsignedp 
)

void ia64_expand_epilogue ( int  sibcall_p  ) 

bool ia64_expand_load_address ( rtx  dest,
rtx  src 
)

rtx ia64_expand_move ( rtx  op0,
rtx  op1 
)

bool ia64_expand_movxf_movrf ( enum machine_mode  mode,
rtx  operands[] 
)

void ia64_expand_prologue ( void   ) 

static rtx ia64_expand_tls_address ( enum tls_model  tls_kind,
rtx  op0,
rtx  op1,
rtx  orig_op1,
HOST_WIDE_INT  addend 
) [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[] 
)

void ia64_expand_widen_sum ( rtx  operands[3],
bool  unsignedp 
)

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 8302 of file ia64.c.

References reload_completed.

static int ia64_first_cycle_multipass_dfa_lookahead_guard ( rtx  insn  )  [static]

static bool ia64_first_cycle_multipass_dfa_lookahead_guard_spec ( rtx  insn  )  [static]

Definition at line 6566 of file ia64.c.

References BEGIN_DATA, gcc_assert, INSN_P, and TODO_SPEC.

Referenced by ia64_first_cycle_multipass_dfa_lookahead_guard().

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 4259 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]

Definition at line 3962 of file ia64.c.

References BITS_PER_UNIT, TREE_CODE, TYPE_ALIGN, and CUMULATIVE_ARGS::words.

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

Definition at line 3936 of file ia64.c.

References GET_MODE_SIZE, int_size_in_bytes(), UNITS_PER_WORD, and words.

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 rtx ia64_gen_check ( rtx  insn,
rtx  label,
bool  mutate_p 
) [static]

static rtx ia64_gen_spec_insn ( rtx  insn,
ds_t  ts,
int  mode_no,
bool  gen_p,
bool  extend_p 
) [static]

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 void ia64_h_i_d_extended ( void   )  [static]

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

static bool ia64_handle_option ( size_t  code,
const char *  arg,
int  value 
) [static]

Definition at line 5129 of file ia64.c.

References ARRAY_SIZE, error(), fix_range(), i, ia64_tune, PROCESSOR_ITANIUM, PROCESSOR_ITANIUM2, and strcmp().

int ia64_hard_regno_rename_ok ( int  from,
int  to 
)

Definition at line 3591 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 int ia64_hpux_reloc_rw_mask ( void   )  [static]

Definition at line 246 of file ia64.c.

References ia64_handle_model_attribute(), and NULL.

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 5199 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 const char* ia64_invalid_binary_op ( int op  ATTRIBUTE_UNUSED,
tree  type1,
tree  type2 
) [static]

Definition at line 9822 of file ia64.c.

References N_, NULL, and TYPE_MODE.

static const char* ia64_invalid_conversion ( tree  fromtype,
tree  totype 
) [static]

Definition at line 9793 of file ia64.c.

References N_, NULL, and TYPE_MODE.

static const char* ia64_invalid_unary_op ( int  op,
tree  type 
) [static]

Definition at line 9809 of file ia64.c.

References N_, NULL, and TYPE_MODE.

static int ia64_issue_rate ( void   )  [static]

Definition at line 6251 of file ia64.c.

int ia64_ld_address_bypass_p ( rtx  producer,
rtx  consumer 
)

bool ia64_legitimate_constant_p ( rtx  x  ) 

int ia64_load_pair_ok ( rtx  dst,
rtx  src 
)

Definition at line 724 of file ia64.c.

References abort, FP_REGNO_P, GET_CODE, GET_MODE, GET_MODE_SIZE, INTVAL, MEM, MEM_VOLATILE_P, REG, REGNO, and XEXP.

static const char* ia64_mangle_fundamental_type ( tree  type  )  [static]

Definition at line 9774 of file ia64.c.

References NULL, TARGET_HPUX, and TYPE_MODE.

static int ia64_mode_to_int ( enum machine_mode  mode  )  [static]

Definition at line 6704 of file ia64.c.

References SPEC_MODE_INVALID.

Referenced by ia64_speculate_insn().

int ia64_move_ok ( rtx  dst,
rtx  src 
)

static bool ia64_needs_block_p ( rtx  insn  )  [static]

Definition at line 7025 of file ia64.c.

References gcc_assert, INSN_UID, SPEC_GEN_CHECK_MUTATION_OFFSET, SPEC_GEN_S, and SPEC_N.

Referenced by ia64_gen_check().

void ia64_optimization_options ( int level  ATTRIBUTE_UNUSED,
int size  ATTRIBUTE_UNUSED 
)

Definition at line 9832 of file ia64.c.

References set_param_value().

static void ia64_output_dwarf_dtprel ( FILE file,
int  size,
rtx  x 
) [static]

Definition at line 4450 of file ia64.c.

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

static void ia64_output_function_end_prologue ( FILE file  )  [static]

Definition at line 3715 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 
)

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   ) 

enum reg_class ia64_preferred_reload_class ( rtx  x,
enum reg_class  class 
)

Definition at line 4894 of file ia64.c.

References AR_I_REGS, AR_M_REGS, CONSTANT_P, FP_REGS, 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 4467 of file ia64.c.

int ia64_produce_address_p ( rtx  insn  ) 

Definition at line 8412 of file ia64.c.

void ia64_profile_hook ( int  labelno  ) 

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

void ia64_reload_gp ( void   ) 

static int ia64_reloc_rw_mask ( void   )  [static]

Definition at line 9406 of file ia64.c.

References flag_pic.

static void ia64_reorg ( void   )  [static]

rtx ia64_return_addr_rtx ( HOST_WIDE_INT  count,
rtx frame  ATTRIBUTE_UNUSED 
)

Definition at line 3531 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 enum attr_itanium_class ia64_safe_itanium_class ( rtx  insn  )  [static]

Definition at line 5208 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 5217 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 9628 of file ia64.c.

References TARGET_HPUX.

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

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

Definition at line 6395 of file ia64.c.

References free().

static void ia64_sched_finish_global ( FILE ,
int   
) [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 void ia64_sched_init_global ( FILE *dump  ATTRIBUTE_UNUSED,
int sched_verbose  ATTRIBUTE_UNUSED,
int max_ready  ATTRIBUTE_UNUSED 
) [static]

Definition at line 6386 of file ia64.c.

References gcc_assert.

static void ia64_sched_init_global ( 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 6495 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]

Definition at line 9427 of file ia64.c.

References default_section_type_flags(), flags, SECTION_SMALL, strcmp(), and strncmp().

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

static void ia64_set_sched_flags ( spec_info_t  spec_info  )  [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]

static int ia64_spec_check_p ( rtx  x  )  [static]

Definition at line 7203 of file ia64.c.

References COND_EXEC_CODE, GET_CODE, ia64_spec_check_src_p(), PATTERN, SET, and SET_SRC.

Referenced by group_barrier_needed().

static int ia64_spec_check_src_p ( rtx  src  )  [static]

Definition at line 7215 of file ia64.c.

References gcc_assert, GET_CODE, NE, XEXP, and XINT.

Referenced by ia64_spec_check_p(), and set_src_needs_barrier().

static int ia64_speculate_insn ( rtx  insn,
ds_t  ts,
rtx new_pat 
) [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  ) 

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 
)

Definition at line 8339 of file ia64.c.

References dest, gcc_assert, GET_CODE, ia64_single_set(), mem, MEM, REG, reg_mentioned_p(), SET_DEST, and SUBREG_REG.

static bool ia64_struct_retval_addr_is_first_parm_p ( tree  fntype  )  [static]

Definition at line 9450 of file ia64.c.

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

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

Definition at line 9619 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 9654 of file ia64.c.

static void ia64_vms_init_libfuncs ( void   )  [static]

Definition at line 9359 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 5900 of file ia64.c.

References memset, and rws_sum.

static void initiate_bundle_state_table ( void   )  [static]

Definition at line 7425 of file ia64.c.

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

static void initiate_bundle_states ( void   )  [static]

Definition at line 7327 of file ia64.c.

References NULL.

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 2308 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 2283 of file ia64.c.

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

static void process_epilogue ( FILE asm_out_file,
rtx  insn,
bool  unwind,
bool  frame 
) [static]

void process_for_unwind_directive ( FILE asm_out_file,
rtx  insn 
)

static int process_set ( FILE asm_out_file,
rtx  pat,
rtx  insn,
bool  unwind,
bool  frame 
) [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 5442 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 ( rtx  insn  )  [static]

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

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

Definition at line 2674 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]

static rtx spill_xfmode_rfmode_operand ( rtx  in,
int  force,
enum machine_mode  mode 
) [static]

Definition at line 1382 of file ia64.c.

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

Referenced by ia64_expand_movxf_movrf().

static enum tls_model tls_symbolic_operand_type ( rtx  addr  )  [static]

Definition at line 778 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 7469 of file ia64.c.

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

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

Definition at line 7451 of file ia64.c.

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

static void update_set_flags ( rtx  x,
struct reg_flags pflags 
) [static]


Variable Documentation

int _0bbb_ [static]

Definition at line 6171 of file ia64.c.

int _0mbb_ [static]

Definition at line 6171 of file ia64.c.

int _0mfb_ [static]

Definition at line 6171 of file ia64.c.

int _0mfi_ [static]

Definition at line 6170 of file ia64.c.

int _0mib_ [static]

Definition at line 6171 of file ia64.c.

int _0mii_ [static]

Definition at line 6170 of file ia64.c.

int _0mlx_ [static]

Definition at line 6171 of file ia64.c.

int _0mmb_ [static]

Definition at line 6171 of file ia64.c.

int _0mmf_ [static]

Definition at line 6170 of file ia64.c.

int _0mmi_ [static]

Definition at line 6170 of file ia64.c.

int _1bbb_ [static]

Definition at line 6174 of file ia64.c.

int _1mbb_ [static]

Definition at line 6174 of file ia64.c.

int _1mfb_ [static]

Definition at line 6174 of file ia64.c.

int _1mfi_ [static]

Definition at line 6173 of file ia64.c.

int _1mib_ [static]

Definition at line 6174 of file ia64.c.

int _1mii_ [static]

Definition at line 6173 of file ia64.c.

int _1mlx_ [static]

Definition at line 6174 of file ia64.c.

int _1mmb_ [static]

Definition at line 6174 of file ia64.c.

int _1mmf_ [static]

Definition at line 6173 of file ia64.c.

int _1mmi_ [static]

Definition at line 6173 of file ia64.c.

int* add_cycles [static]

Definition at line 6231 of file ia64.c.

Definition at line 7283 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 6148 of file ia64.c.

Definition at line 7354 of file ia64.c.

int bundle_states_num [static]

Definition at line 7279 of file ia64.c.

int bundling_p = 0

Definition at line 122 of file ia64.c.

Referenced by bundling().

int* clocks [static]

Definition at line 6226 of file ia64.c.

int clocks_length [static]

Definition at line 6220 of file ia64.c.

Definition at line 155 of file ia64.c.

Definition at line 6579 of file ia64.c.

Definition at line 6188 of file ia64.c.

rtx dfa_stop_insn [static]

Definition at line 6180 of file ia64.c.

int first_instruction [static]

Definition at line 5280 of file ia64.c.

Definition at line 7288 of file ia64.c.

Definition at line 61 of file ia64.c.

Definition at line 65 of file ia64.c.

Definition at line 66 of file ia64.c.

Definition at line 6166 of file ia64.c.

Definition at line 109 of file ia64.c.

int ia64_flag_var_tracking [static]

Definition at line 113 of file ia64.c.

const char* const ia64_input_reg_names[8] [static]

Initial value:

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

Definition at line 84 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 88 of file ia64.c.

rtx ia64_nop [static]

Definition at line 7444 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 101 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 69 of file ia64.c.

unsigned int ia64_section_threshold

Definition at line 118 of file ia64.c.

enum processor_type ia64_tune = PROCESSOR_ITANIUM2

Definition at line 105 of file ia64.c.

Definition at line 7275 of file ia64.c.

bool last_block [static]

Definition at line 8744 of file ia64.c.

Definition at line 6184 of file ia64.c.

int last_scratch_gr_reg [static]

Definition at line 2280 of file ia64.c.

int max_uid = 0 [static]

Definition at line 6211 of file ia64.c.

Definition at line 8748 of file ia64.c.

int pending_data_specs = 0 [static]

Definition at line 6234 of file ia64.c.

int pos_1 [static]

Definition at line 6176 of file ia64.c.

int pos_2 [static]

Definition at line 6176 of file ia64.c.

int pos_3 [static]

Definition at line 6176 of file ia64.c.

int pos_4 [static]

Definition at line 6176 of file ia64.c.

int pos_5 [static]

Definition at line 6176 of file ia64.c.

int pos_6 [static]

Definition at line 6176 of file ia64.c.

state_t prev_cycle_state = NULL [static]

Definition at line 6198 of file ia64.c.

Definition at line 5275 of file ia64.c.

Definition at line 5272 of file ia64.c.

int* spec_check_no = NULL [static]

Definition at line 6208 of file ia64.c.

Definition at line 2671 of file ia64.c.

int stop_before_p = 0 [static]

Definition at line 6215 of file ia64.c.

char* stops_p = NULL [static]

Definition at line 6203 of file ia64.c.

struct gcc_target targetm = TARGET_INITIALIZER

Definition at line 475 of file ia64.c.

state_t temp_dfa_state = NULL [static]

Definition at line 6193 of file ia64.c.


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