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

Go to the source code of this file.
| #define AGGREGATE_PADDING_FIXED 0 |
| #define AGGREGATES_PAD_UPWARD_ALWAYS 0 |
| #define ALTIVEC_REG_BIT | ( | REGNO | ) | (0x80000000 >> ((REGNO) - FIRST_ALTIVEC_REGNO)) |
| #define INT_P | ( | X | ) |
| #define MEM_DEREF | ( | addr | ) | gen_rtx_MEM (Pmode, memory_address (Pmode, addr)) |
| #define MEM_PLUS | ( | addr, | |||
| offset | ) | gen_rtx_MEM (Pmode, memory_address (Pmode, plus_constant (addr, offset))) |
| #define NO_PROFILE_COUNTERS 0 |
| #define REG_MODE_OK_FOR_BASE_P | ( | REGNO, | |||
| MODE | ) | REG_OK_FOR_BASE_P (REGNO) |
| #define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true |
| #define TARGET_ASM_FUNCTION_EPILOGUE rs6000_output_function_epilogue |
| #define TARGET_ASM_FUNCTION_PROLOGUE rs6000_output_function_prologue |
| #define TARGET_ATTRIBUTE_TABLE rs6000_attribute_table |
| #define TARGET_BUILD_BUILTIN_VA_LIST rs6000_build_builtin_va_list |
| #define TARGET_CANNOT_FORCE_CONST_MEM rs6000_tls_referenced_p |
| #define TARGET_DWARF_REGISTER_SPAN rs6000_dwarf_register_span |
| #define TARGET_EH_RETURN_FILTER_MODE rs6000_eh_return_filter_mode |
| #define TARGET_FUNCTION_OK_FOR_SIBCALL rs6000_function_ok_for_sibcall |
| #define TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN invalid_arg_for_unprototyped_fn |
| #define TARGET_INVALID_WITHIN_DOLOOP rs6000_invalid_within_doloop |
| #define TARGET_MANGLE_FUNDAMENTAL_TYPE rs6000_mangle_fundamental_type |
| #define TARGET_MS_BITFIELD_LAYOUT_P rs6000_ms_bitfield_layout_p |
| #define TARGET_MUST_PASS_IN_STACK rs6000_must_pass_in_stack |
| #define TARGET_PRETEND_OUTGOING_VARARGS_NAMED hook_bool_CUMULATIVE_ARGS_true |
| #define TARGET_SCALAR_MODE_SUPPORTED_P rs6000_scalar_mode_supported_p |
| #define TARGET_SCHED_ADJUST_PRIORITY rs6000_adjust_priority |
| #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD rs6000_use_sched_lookahead |
| #define TARGET_SCHED_IS_COSTLY_DEPENDENCE rs6000_is_costly_dependence |
| #define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES rs6000_set_default_type_attributes |
| #define TARGET_SETUP_INCOMING_VARARGS setup_incoming_varargs |
| #define TARGET_STACK_PROTECT_FAIL rs6000_stack_protect_fail |
| #define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_true |
| #define TARGET_USE_BLOCKS_FOR_CONSTANT_P rs6000_use_blocks_for_constant_p |
| #define TARGET_VECTOR_MODE_SUPPORTED_P rs6000_vector_mode_supported_p |
| #define TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD rs6000_builtin_mask_for_load |
| #define USE_ALTIVEC_FOR_ARG_P | ( | CUM, | |||
| MODE, | |||||
| TYPE, | |||||
| NAMED | ) |
Value:
(ALTIVEC_VECTOR_MODE (MODE) \ && (CUM)->vregno <= ALTIVEC_ARG_MAX_REG \ && TARGET_ALTIVEC_ABI \ && (NAMED))
| #define USE_FP_FOR_ARG_P | ( | CUM, | |||
| MODE, | |||||
| TYPE | ) |
Value:
(SCALAR_FLOAT_MODE_P (MODE) \ && !DECIMAL_FLOAT_MODE_P (MODE) \ && (CUM)->fregno <= FP_ARG_MAX_REG \ && TARGET_HARD_FLOAT && TARGET_FPRS)
| #define VTABLE_NAME_P | ( | NAME | ) |
| typedef struct rs6000_stack rs6000_stack_t |
Definition at line 6754 of file rs6000.c.
References const0_rtx, copy_to_mode_reg(), emit_insn(), error_mark_node, expand_normal(), GEN_FCN, gen_reg_rtx(), GET_MODE, and TREE_VALUE.
Definition at line 7389 of file rs6000.c.
References ALTIVEC_BUILTIN_DSS, ALTIVEC_BUILTIN_DSSALL, ALTIVEC_BUILTIN_LVEBX, ALTIVEC_BUILTIN_LVEHX, ALTIVEC_BUILTIN_LVEWX, ALTIVEC_BUILTIN_LVSL, ALTIVEC_BUILTIN_LVSR, ALTIVEC_BUILTIN_LVX, ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_MFVSCR, ALTIVEC_BUILTIN_MTVSCR, ALTIVEC_BUILTIN_OVERLOADED_FIRST, ALTIVEC_BUILTIN_OVERLOADED_LAST, ALTIVEC_BUILTIN_STVEBX, ALTIVEC_BUILTIN_STVEHX, ALTIVEC_BUILTIN_STVEWX, ALTIVEC_BUILTIN_STVX, ALTIVEC_BUILTIN_STVXL, ALTIVEC_BUILTIN_VEC_EXT_V16QI, ALTIVEC_BUILTIN_VEC_EXT_V4SF, ALTIVEC_BUILTIN_VEC_EXT_V4SI, ALTIVEC_BUILTIN_VEC_EXT_V8HI, ALTIVEC_BUILTIN_VEC_INIT_V16QI, ALTIVEC_BUILTIN_VEC_INIT_V4SF, ALTIVEC_BUILTIN_VEC_INIT_V4SI, ALTIVEC_BUILTIN_VEC_INIT_V8HI, ALTIVEC_BUILTIN_VEC_SET_V16QI, ALTIVEC_BUILTIN_VEC_SET_V4SF, ALTIVEC_BUILTIN_VEC_SET_V4SI, ALTIVEC_BUILTIN_VEC_SET_V8HI, altivec_expand_abs_builtin(), altivec_expand_dst_builtin(), altivec_expand_ld_builtin(), altivec_expand_lv_builtin(), altivec_expand_predicate_builtin(), altivec_expand_st_builtin(), altivec_expand_stv_builtin(), altivec_expand_vec_ext_builtin(), altivec_expand_vec_init_builtin(), altivec_expand_vec_set_builtin(), ARRAY_SIZE, builtin_description::code, builtin_description_predicates::code, const0_rtx, copy_to_mode_reg(), d, DECL_FUNCTION_CODE, emit_insn(), error(), error_mark_node, expand_normal(), GEN_FCN, gen_reg_rtx(), GET_MODE, builtin_description::icode, builtin_description_predicates::icode, NULL_RTX, builtin_description_predicates::opcode, STRIP_NOPS, TREE_CODE, TREE_INT_CST_LOW, TREE_OPERAND, TREE_TYPE, and TREE_VALUE.
| static rtx altivec_expand_dst_builtin | ( | tree | exp, | |
| rtx target | ATTRIBUTE_UNUSED, | |||
| bool * | expandedp | |||
| ) | [static] |
Definition at line 7222 of file rs6000.c.
References ARRAY_SIZE, builtin_description::code, const0_rtx, copy_to_mode_reg(), d, DECL_FUNCTION_CODE, emit_insn(), error(), error_mark_node, expand_normal(), GEN_FCN, builtin_description::icode, builtin_description::name, NULL_RTX, Pmode, STRIP_NOPS, TREE_CHAIN, TREE_CODE, TREE_INT_CST_LOW, TREE_OPERAND, and TREE_VALUE.
Definition at line 7117 of file rs6000.c.
References ALTIVEC_BUILTIN_LD_INTERNAL_16qi, ALTIVEC_BUILTIN_LD_INTERNAL_4sf, ALTIVEC_BUILTIN_LD_INTERNAL_4si, ALTIVEC_BUILTIN_LD_INTERNAL_8hi, copy_to_mode_reg(), DECL_FUNCTION_CODE, emit_insn(), expand_normal(), GEN_FCN, gen_reg_rtx(), gen_rtx_MEM(), GET_MODE, builtin_description::icode, NULL_RTX, Pmode, TREE_OPERAND, and TREE_VALUE.
Definition at line 6936 of file rs6000.c.
References addr(), CODE_FOR_nothing, const0_rtx, copy_to_mode_reg(), emit_insn(), error_mark_node, expand_normal(), GEN_FCN, gen_reg_rtx(), gen_rtx_MEM(), gen_rtx_PLUS, GET_MODE, Pmode, TREE_CHAIN, and TREE_VALUE.
| static rtx altivec_expand_predicate_builtin | ( | enum insn_code | icode, | |
| const char * | opcode, | |||
| tree | arglist, | |||
| rtx | target | |||
| ) | [static] |
Definition at line 6859 of file rs6000.c.
References const0_rtx, copy_to_mode_reg(), emit_insn(), error(), error_mark_node, expand_normal(), gcc_assert, GEN_FCN, gen_reg_rtx(), gen_rtx_SYMBOL_REF, GET_MODE, Pmode, scratch, TREE_CHAIN, TREE_CODE, TREE_INT_CST_LOW, and TREE_VALUE.
| static rtx altivec_expand_st_builtin | ( | tree | exp, | |
| rtx target | ATTRIBUTE_UNUSED, | |||
| bool * | expandedp | |||
| ) | [static] |
Definition at line 7170 of file rs6000.c.
References ALTIVEC_BUILTIN_ST_INTERNAL_16qi, ALTIVEC_BUILTIN_ST_INTERNAL_4sf, ALTIVEC_BUILTIN_ST_INTERNAL_4si, ALTIVEC_BUILTIN_ST_INTERNAL_8hi, copy_to_mode_reg(), DECL_FUNCTION_CODE, emit_insn(), expand_normal(), GEN_FCN, gen_rtx_MEM(), builtin_description::icode, NULL_RTX, Pmode, TREE_CHAIN, TREE_OPERAND, and TREE_VALUE.
Definition at line 7015 of file rs6000.c.
References addr(), const0_rtx, copy_to_mode_reg(), emit_insn(), error_mark_node, expand_normal(), GEN_FCN, gen_rtx_MEM(), gen_rtx_PLUS, NULL_RTX, Pmode, TREE_CHAIN, and TREE_VALUE.
Definition at line 7359 of file rs6000.c.
References expand_normal(), force_reg(), gcc_assert, gen_reg_rtx(), get_element_number(), optimize, register_operand(), rs6000_expand_vector_extract(), TREE_CHAIN, TREE_TYPE, TREE_VALUE, TYPE_MODE, and VECTOR_MODE_P.
Referenced by altivec_expand_builtin().
Definition at line 7283 of file rs6000.c.
References expand_normal(), gcc_assert, gen_lowpart, gen_reg_rtx(), gen_rtx_PARALLEL, GET_MODE_INNER, GET_MODE_NUNITS, NULL, register_operand(), rs6000_expand_vector_init(), rtvec_alloc(), RTVEC_ELT, TREE_CHAIN, TREE_VALUE, TYPE_MODE, and VECTOR_MODE_P.
Referenced by altivec_expand_builtin().
Definition at line 7327 of file rs6000.c.
References convert_modes(), expand_expr(), force_reg(), gcc_assert, get_element_number(), GET_MODE, NULL_RTX, rs6000_expand_vector_set(), TREE_CHAIN, TREE_TYPE, TREE_VALUE, TYPE_MODE, and VECTOR_MODE_P.
Referenced by altivec_expand_builtin().
Definition at line 8353 of file rs6000.c.
References ALTIVEC_BUILTIN_DSS, ALTIVEC_BUILTIN_DSSALL, ALTIVEC_BUILTIN_LD_INTERNAL_16qi, ALTIVEC_BUILTIN_LD_INTERNAL_4sf, ALTIVEC_BUILTIN_LD_INTERNAL_4si, ALTIVEC_BUILTIN_LD_INTERNAL_8hi, ALTIVEC_BUILTIN_LVEBX, ALTIVEC_BUILTIN_LVEHX, ALTIVEC_BUILTIN_LVEWX, ALTIVEC_BUILTIN_LVSL, ALTIVEC_BUILTIN_LVSR, ALTIVEC_BUILTIN_LVX, ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_MASK_FOR_LOAD, ALTIVEC_BUILTIN_MFVSCR, ALTIVEC_BUILTIN_MTVSCR, ALTIVEC_BUILTIN_OVERLOADED_FIRST, ALTIVEC_BUILTIN_OVERLOADED_LAST, ALTIVEC_BUILTIN_ST_INTERNAL_16qi, ALTIVEC_BUILTIN_ST_INTERNAL_4sf, ALTIVEC_BUILTIN_ST_INTERNAL_4si, ALTIVEC_BUILTIN_ST_INTERNAL_8hi, ALTIVEC_BUILTIN_STVEBX, ALTIVEC_BUILTIN_STVEHX, ALTIVEC_BUILTIN_STVEWX, ALTIVEC_BUILTIN_STVX, ALTIVEC_BUILTIN_STVXL, ALTIVEC_BUILTIN_VEC_CTF, ALTIVEC_BUILTIN_VEC_CTS, ALTIVEC_BUILTIN_VEC_CTU, ALTIVEC_BUILTIN_VEC_EXT_V16QI, ALTIVEC_BUILTIN_VEC_EXT_V4SF, ALTIVEC_BUILTIN_VEC_EXT_V4SI, ALTIVEC_BUILTIN_VEC_EXT_V8HI, ALTIVEC_BUILTIN_VEC_INIT_V16QI, ALTIVEC_BUILTIN_VEC_INIT_V4SF, ALTIVEC_BUILTIN_VEC_INIT_V4SI, ALTIVEC_BUILTIN_VEC_INIT_V8HI, ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_VEC_LDE, ALTIVEC_BUILTIN_VEC_LDL, ALTIVEC_BUILTIN_VEC_LVEBX, ALTIVEC_BUILTIN_VEC_LVEHX, ALTIVEC_BUILTIN_VEC_LVEWX, ALTIVEC_BUILTIN_VEC_LVSL, ALTIVEC_BUILTIN_VEC_LVSR, ALTIVEC_BUILTIN_VEC_SET_V16QI, ALTIVEC_BUILTIN_VEC_SET_V4SF, ALTIVEC_BUILTIN_VEC_SET_V4SI, ALTIVEC_BUILTIN_VEC_SET_V8HI, ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SPLAT, ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_VEC_STE, ALTIVEC_BUILTIN_VEC_STEP, ALTIVEC_BUILTIN_VEC_STL, ALTIVEC_BUILTIN_VEC_STVEBX, ALTIVEC_BUILTIN_VEC_STVEHX, ALTIVEC_BUILTIN_VEC_STVEWX, ALTIVEC_BUILTIN_VEC_VCFSX, ALTIVEC_BUILTIN_VEC_VCFUX, ALTIVEC_BUILTIN_VEC_VSPLTB, ALTIVEC_BUILTIN_VEC_VSPLTH, ALTIVEC_BUILTIN_VEC_VSPLTW, ARRAY_SIZE, build_function_type(), build_function_type_list(), build_pointer_type(), build_qualified_type(), BUILT_IN_MD, char_type_node, builtin_description::code, builtin_description_predicates::code, d, def_builtin, float_type_node, gcc_unreachable, get_identifier(), builtin_description::icode, builtin_description_predicates::icode, integer_type_node, intHI_type_node, intQI_type_node, intSI_type_node, long_integer_type_node, builtin_description_predicates::mask, builtin_description::mask, MASK_ALTIVEC, builtin_description_predicates::name, builtin_description::name, NULL, NULL_TREE, opaque_V4SI_type_node, short_integer_type_node, TARGET_ALTIVEC, tree_cons, TYPE_QUAL_CONST, V16QI_type_node, V4SF_type_node, V4SI_type_node, V8HI_type_node, void_list_node, and void_type_node.
Definition at line 2506 of file rs6000.c.
References c, gcc_assert, gcc_unreachable, GEN_INT, GET_CODE, INTVAL, and shift.
Definition at line 7989 of file rs6000.c.
References build_vector_type(), copy_node, and TYPE_MAIN_VARIANT.
| int ccr_bit | ( | rtx | op, | |
| int | scc_p | |||
| ) |
Definition at line 10057 of file rs6000.c.
References COMPARISON_P, CR0_REGNO, CR_REGNO_P, EQ, gcc_assert, gcc_unreachable, GE, GET_CODE, GET_MODE, GT, LE, LT, NE, REG, REGNO, validate_condition_mode(), and XEXP.
| static void compute_save_world_info | ( | rs6000_stack_t * | info_ptr | ) | [static] |
Definition at line 12837 of file rs6000.c.
References ABI_DARWIN, compute_vrsave_mask(), rs6000_stack::cr_save_p, current_function_calls_setjmp, DEFAULT_ABI, rs6000_stack::first_altivec_reg_save, rs6000_stack::first_fp_reg_save, rs6000_stack::first_gp_reg_save, FIRST_SAVED_ALTIVEC_REGNO, FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO, flag_exceptions, gcc_assert, GET_CODE, get_last_insn_anywhere(), insn, PREV_INSN, SIBLING_CALL_P, rs6000_stack::vrsave_mask, rs6000_stack::vrsave_size, rs6000_stack::world_save_p, and WORLD_SAVE_P.
| static unsigned int compute_vrsave_mask | ( | void | ) | [static] |
Definition at line 12794 of file rs6000.c.
References ABI_DARWIN, ALTIVEC_ARG_MIN_REG, ALTIVEC_ARG_RETURN, ALTIVEC_REG_BIT, cfun, current_function_calls_eh_return, DEFAULT_ABI, diddle_return_value(), FIRST_ALTIVEC_REGNO, is_altivec_return_reg(), LAST_ALTIVEC_REGNO, regs_ever_live, and TARGET_ALTIVEC.
| static HOST_WIDE_INT const_vector_elt_as_int | ( | rtx | op, | |
| unsigned int | elt | |||
| ) | [static] |
Definition at line 2131 of file rs6000.c.
References CONST_VECTOR_ELT, gen_lowpart, GET_MODE, INTVAL, and tmp.
Referenced by vspltis_constant().
| static int constant_pool_expr_1 | ( | rtx | op, | |
| int * | have_sym, | |||
| int * | have_toc | |||
| ) | [static] |
Definition at line 2688 of file rs6000.c.
References ASM_OUTPUT_SPECIAL_POOL_ENTRY_P, CONST, CONSTANT_POOL_ADDRESS_P, constant_pool_expr_1(), GET_CODE, get_pool_constant(), MINUS, PLUS, Pmode, RS6000_SYMBOL_REF_TLS_P, strcmp(), XEXP, and XSTR.
Definition at line 1741 of file rs6000.c.
References constant_pool_expr_1().
Referenced by legitimate_constant_pool_address_p(), rs6000_emit_move(), rs6000_legitimize_address(), and rs6000_legitimize_reload_address().
Definition at line 13811 of file rs6000.c.
References gen_rtx_CONST, gen_rtx_MINUS, gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_SYMBOL_REF, no_new_pseudos, Pmode, regs_ever_live, and TOC_REGISTER.
| static void debug_stack_info | ( | rs6000_stack_t * | info | ) | [static] |
Definition at line 7857 of file rs6000.c.
References ABI_AIX, ABI_AIX_NODESC, ABI_DARWIN, ABI_NONE, ABI_V4, current_function_decl, DECL_NAME, fprintf(), IDENTIFIER_POINTER, LAST_ALTIVEC_REGNO, rs6000_stack_info(), and TARGET_ALTIVEC_ABI.
Definition at line 6083 of file rs6000.c.
References abort, BUILT_IN_MD, NULL, NULL_TREE, and target_flags.
| int direct_return | ( | void | ) |
Definition at line 2000 of file rs6000.c.
References rs6000_stack::cr_save_p, rs6000_stack::first_altivec_reg_save, rs6000_stack::first_fp_reg_save, rs6000_stack::first_gp_reg_save, info, LAST_ALTIVEC_REGNO, rs6000_stack::lr_save_p, rs6000_stack::push_p, reload_completed, rs6000_stack_info(), and rs6000_stack::vrsave_mask.
| bool easy_altivec_constant | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 2210 of file rs6000.c.
References GET_MODE, GET_MODE_NUNITS, step(), and vspltis_constant().
| int easy_vector_constant | ( | rtx | , | |
| enum | machine_mode | |||
| ) |
| static void emit_frame_save | ( | rtx | frame_reg, | |
| rtx | frame_ptr, | |||
| enum machine_mode | mode, | |||
| unsigned int | regno, | |||
| int | offset, | |||
| HOST_WIDE_INT | total_size | |||
| ) | [static] |
Definition at line 14174 of file rs6000.c.
References addr(), ALTIVEC_VECTOR_MODE, emit_move_insn(), gen_frame_mem(), GEN_INT, gen_rtx_PLUS, gen_rtx_REG(), mem, NULL_RTX, Pmode, rs6000_frame_related(), SPE_CONST_OFFSET_OK, SPE_VECTOR_MODE, TARGET_ALTIVEC_ABI, TARGET_E500_DOUBLE, and TARGET_SPE_ABI.
| static void emit_load_locked | ( | enum machine_mode | mode, | |
| rtx | reg, | |||
| rtx | mem | |||
| ) | [static] |
| static void emit_store_conditional | ( | enum machine_mode | mode, | |
| rtx | res, | |||
| rtx | mem, | |||
| rtx | val | |||
| ) | [static] |
Definition at line 12336 of file rs6000.c.
References emit_jump_insn(), GEN_INT, gen_rtx_EXPR_LIST, gen_rtx_IF_THEN_ELSE, gen_rtx_SET, NULL_RTX, pc_rtx, REG_BR_PROB, REG_BR_PROB_BASE, and REG_NOTES.
| static void enable_mask_for_builtins | ( | struct builtin_description * | desc, | |
| int | size, | |||
| enum rs6000_builtins | start, | |||
| enum rs6000_builtins | end | |||
| ) | [static] |
| int expand_block_clear | ( | rtx | operands[] | ) |
Definition at line 9306 of file rs6000.c.
References adjust_address, align, BITS_PER_UNIT, bytes, CONST0_RTX, dest, emit_move_insn(), gcc_assert, GET_CODE, INTVAL, mode, offset, optimize_size, STRICT_ALIGNMENT, TARGET_ALTIVEC, and TARGET_POWERPC64.
| int expand_block_move | ( | rtx | operands[] | ) |
Definition at line 9401 of file rs6000.c.
References adjust_address, align, BITS_PER_UNIT, bytes, copy_addr_to_reg(), dest, emit_insn(), fixed_regs, gcc_assert, GEN_INT, gen_movdi(), gen_movhi(), gen_movqi(), gen_movsi(), gen_movv4si(), gen_reg_rtx(), GET_CODE, INTVAL, MAX_MOVE_REG, mode, offset, REG_P, replace_equiv_address(), set_mem_size(), src, STRICT_ALIGNMENT, TARGET_ALTIVEC, TARGET_POWERPC64, TARGET_STRING, and XEXP.
| int extract_MB | ( | rtx | op | ) |
| int extract_ME | ( | rtx | op | ) |
Definition at line 17881 of file rs6000.c.
References abort, CONSTANT_P, gcc_assert, gcc_unreachable, GET_CODE, PLUS, REG, REGNO, and XEXP.
| static int first_altivec_reg_to_save | ( | void | ) | [static] |
Definition at line 12766 of file rs6000.c.
References ABI_DARWIN, current_function_calls_eh_return, DEFAULT_ABI, FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO, regs_ever_live, TARGET_ALTIVEC, and TARGET_ALTIVEC_ABI.
| int first_fp_reg_to_save | ( | void | ) |
| int first_reg_to_save | ( | void | ) |
Definition at line 12724 of file rs6000.c.
References ABI_DARWIN, ABI_V4, call_used_regs, current_function_uses_pic_offset_table, DEFAULT_ABI, flag_pic, regs_ever_live, romp_using_r14(), RS6000_PIC_OFFSET_TABLE_REGNUM, TARGET_MINIMAL_TOC, and TARGET_TOC.
| static int force_new_group | ( | int | sched_verbose, | |
| FILE * | dump, | |||
| rtx * | group_insns, | |||
| rtx | next_insn, | |||
| bool * | group_end, | |||
| int | can_issue_more, | |||
| int * | group_count | |||
| ) | [static] |
Definition at line 17086 of file rs6000.c.
References emit_insn_before(), end, fprintf(), gen_nop(), insn_terminates_group_p(), is_branch_slot_insn(), is_costly_group(), is_cracked_insn(), issue_rate, nop, NULL_RTX, previous_group, rs6000_issue_rate(), and sched_finish_regroup_exact.
| rtx function_arg | ( | CUMULATIVE_ARGS * | cum, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| int named | ||||
| ) |
Definition at line 5172 of file rs6000.c.
References ABI_AIX, ABI_V4, align, ALTIVEC_VECTOR_MODE, CUMULATIVE_ARGS::call_cookie, CALL_LIBCALL, CALL_V4_CLEAR_FP_ARGS, CALL_V4_SET_FP_ARGS, const0_rtx, DEFAULT_ABI, FP_ARG_MAX_REG, FP_ARG_MIN_REG, FP_ARG_V4_MAX_REG, gcc_assert, GEN_INT, gen_rtvec(), gen_rtvec_v(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), GET_MODE_SIZE, GP_ARG_MAX_REG, GP_ARG_MIN_REG, GP_ARG_NUM_REG, int_size_in_bytes(), NULL_RTX, Pmode, r, rs6000_arg_size(), rs6000_darwin64_record_arg(), rs6000_mixed_function_arg(), rs6000_parm_start(), rs6000_spe_function_arg(), SPE_VECTOR_MODE, TARGET_32BIT, TARGET_64BIT, TARGET_ALTIVEC_ABI, TARGET_E500_DOUBLE, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_IEEEQUAD, TARGET_NO_PROTOTYPE, TARGET_POWERPC64, TARGET_SPE, TARGET_SPE_ABI, TARGET_XL_COMPAT, TREE_CODE, USE_ALTIVEC_FOR_ARG_P, USE_FP_FOR_ARG_P, and CUMULATIVE_ARGS::words.
| void function_arg_advance | ( | CUMULATIVE_ARGS * | cum, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| int | named, | |||
| int | depth | |||
| ) |
Definition at line 4663 of file rs6000.c.
References ABI_AIX, ABI_V4, align, ALTIVEC_VECTOR_MODE, BITS_PER_UNIT, BITS_PER_WORD, DECIMAL_FLOAT_MODE_P, DEFAULT_ABI, error(), FP_ARG_V4_MAX_REG, fprintf(), GET_MODE_NAME, GET_MODE_SIZE, GP_ARG_MAX_REG, int_size_in_bytes(), rs6000_arg_size(), rs6000_darwin64_record_arg_advance_flush(), rs6000_darwin64_record_arg_advance_recurse(), rs6000_parm_start(), SCALAR_FLOAT_MODE_P, size, SPE_VECTOR_MODE, stack, TARGET_32BIT, TARGET_64BIT, TARGET_ALTIVEC, TARGET_ALTIVEC_ABI, TARGET_DEBUG_ARG, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_IEEEQUAD, TARGET_SPE, TARGET_SPE_ABI, TREE_CODE, TYPE_ALIGN, USE_ALTIVEC_FOR_ARG_P, and CUMULATIVE_ARGS::words.
| int function_arg_boundary | ( | enum machine_mode | mode, | |
| tree | type | |||
| ) |
Definition at line 4515 of file rs6000.c.
References ABI_V4, ALTIVEC_VECTOR_MODE, DEFAULT_ABI, GET_MODE_SIZE, int_size_in_bytes(), PARM_BOUNDARY, SPE_VECTOR_MODE, TARGET_FPRS, TARGET_HARD_FLOAT, TREE_CODE, and TYPE_ALIGN.
| enum direction function_arg_padding | ( | enum machine_mode | mode, | |
| tree | type | |||
| ) |
Definition at line 4452 of file rs6000.c.
References AGGREGATE_PADDING_FIXED, AGGREGATE_TYPE_P, AGGREGATES_PAD_UPWARD_ALWAYS, BYTES_BIG_ENDIAN, DEFAULT_FUNCTION_ARG_PADDING, downward, GET_MODE_SIZE, int_size_in_bytes(), size, TREE_CODE, TYPE_SIZE, and upward.
Definition at line 2251 of file rs6000.c.
References CONST_VECTOR_ELT, gcc_unreachable, gen_lowpart, gen_rtx_VEC_DUPLICATE, GET_MODE, GET_MODE_NUNITS, last, mode, step(), and vspltis_constant().
Referenced by output_vec_const_move().
| static rtx gen_frame_mem_offset | ( | enum machine_mode | mode, | |
| rtx | reg, | |||
| int | offset | |||
| ) | [static] |
Definition at line 14217 of file rs6000.c.
References emit_move_insn(), FIXED_SCRATCH, gen_frame_mem(), GEN_INT, gen_rtx_PLUS, gen_rtx_REG(), Pmode, SPE_VECTOR_MODE, TARGET_E500_DOUBLE, and TARGET_SPE_ABI.
| static rtx generate_set_vrsave | ( | rtx | reg, | |
| rs6000_stack_t * | info, | |||
| int | epiloguep | |||
| ) | [static] |
Definition at line 14115 of file rs6000.c.
References ALTIVEC_REG_BIT, call_used_regs, FIRST_ALTIVEC_REGNO, gen_rtvec(), gen_rtx_CLOBBER, gen_rtx_PARALLEL, gen_rtx_REG(), gen_rtx_SET, gen_rtx_UNSPEC, gen_rtx_UNSPEC_VOLATILE, LAST_ALTIVEC_REGNO, rtvec_alloc(), TOTAL_ALTIVEC_REGS, rs6000_stack::vrsave_mask, VRSAVE_REGNO, and XVECEXP.
Definition at line 7311 of file rs6000.c.
References error(), host_integerp(), max, tree_low_cst(), and TYPE_VECTOR_SUBPARTS.
| static int get_vec_cmp_insn | ( | enum rtx_code | code, | |
| enum machine_mode | dest_mode, | |||
| enum machine_mode | op_mode | |||
| ) | [static] |
| static int get_vsel_insn | ( | enum machine_mode | mode | ) | [static] |
| static GTY | ( | (param_is(struct toc_hash_struct)) | ) | [static] |
| struct machine_function GTY | ( | () | ) | [read, write] |
Definition at line 116 of file rs6000.c.
References HOST_WIDE_INT, and machine_function::ra_needs_full_frame.
Definition at line 9697 of file rs6000.c.
References c, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, GET_CODE, GET_MODE, high, HOST_BITS_PER_WIDE_INT, INTVAL, and low.
Definition at line 9790 of file rs6000.c.
References c, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, GET_CODE, GET_MODE, high, HOST_BITS_PER_WIDE_INT, INTVAL, and low.
| void init_cumulative_args | ( | CUMULATIVE_ARGS * | cum, | |
| tree | fntype, | |||
| rtx libname | ATTRIBUTE_UNUSED, | |||
| int | incoming, | |||
| int | libcall, | |||
| int | n_named_args | |||
| ) |
Definition at line 4373 of file rs6000.c.
References ABI_V4, ALTIVEC_ARG_MIN_REG, ALTIVEC_VECTOR_MODE, CUMULATIVE_ARGS::call_cookie, CALL_LIBCALL, CALL_LONG, CALL_NORMAL, DEFAULT_ABI, error(), FP_ARG_MIN_REG, fprintf(), GP_ARG_MIN_REG, lookup_attribute(), rs6000_default_long_calls, TARGET_ALTIVEC, TARGET_ALTIVEC_ABI, TARGET_DEBUG_ARG, TREE_CODE, tree_code_name, tree_last(), TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_ATTRIBUTES, TYPE_MODE, void_type_node, and CUMULATIVE_ARGS::words.
| static bool insn_terminates_group_p | ( | rtx | insn, | |
| enum group_termination | which_group | |||
| ) | [static] |
Definition at line 17013 of file rs6000.c.
References current_group, get_attr_type(), is_branch_slot_insn(), is_dispatch_slot_restricted(), is_microcoded_insn(), and previous_group.
| static const char* invalid_arg_for_unprototyped_fn | ( | tree | typelist, | |
| tree | funcdecl, | |||
| tree | val | |||
| ) | [static] |
Definition at line 19514 of file rs6000.c.
References BUILT_IN_MD, DECL_BUILT_IN_CLASS, N_, NULL, NULL_TREE, TREE_CODE, and TREE_TYPE.
| bool invalid_e500_subreg | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 2575 of file rs6000.c.
References GET_CODE, GET_MODE, REG_P, SPE_VECTOR_MODE, SUBREG_REG, TARGET_E500_DOUBLE, and TARGET_SPE.
Referenced by rs6000_nonimmediate_operand().
Definition at line 16706 of file rs6000.c.
References get_attr_type(), GET_CODE, INSN_P, PATTERN, TYPE_BRANCH, and USE.
Definition at line 17045 of file rs6000.c.
References insn_cost(), INSN_DEPEND, issue_rate, next, rs6000_is_costly_dependence(), rs6000_issue_rate(), and XEXP.
| static int is_dispatch_slot_restricted | ( | rtx | insn | ) | [static] |
Definition at line 16632 of file rs6000.c.
References get_attr_type(), GET_CODE, is_cracked_insn(), NULL_RTX, PATTERN, PROCESSOR_POWER5, rs6000_cpu, TYPE_IDIV, and USE.
Definition at line 16862 of file rs6000.c.
References GET_CODE, is_load_insn1(), is_mem_ref(), NULL_RTX, SET, SET_SRC, XVECEXP, and XVECLEN.
Definition at line 16835 of file rs6000.c.
References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, is_mem_ref(), MEM, ret, XEXP, XVECEXP, and XVECLEN.
Definition at line 16899 of file rs6000.c.
References GET_CODE, is_mem_ref(), is_store_insn1(), NULL_RTX, SET, SET_DEST, XVECEXP, and XVECLEN.
Definition at line 2742 of file rs6000.c.
References constant_pool_expr_p(), GET_CODE, PLUS, REG, REGNO, TARGET_MINIMAL_TOC, TARGET_TOC, TOC_REGISTER, and XEXP.
Definition at line 2837 of file rs6000.c.
References GET_CODE, INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P, PLUS, REG_P, reload_in_progress, and XEXP.
Definition at line 2863 of file rs6000.c.
References GET_CODE, INT_REG_OK_FOR_BASE_P, and REG.
Referenced by lmw_operation(), rs6000_legitimate_address(), and stmw_operation().
| static bool legitimate_lo_sum_address_p | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| int | strict | |||
| ) | [static] |
Definition at line 2888 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, CONSTANT_P, DEFAULT_ABI, flag_pic, GET_CODE, GET_MODE_BITSIZE, GET_MODE_NUNITS, INT_REG_OK_FOR_BASE_P, REG, TARGET_E500_DOUBLE, TARGET_ELF, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_MACHO, TARGET_POWERPC64, TARGET_TOC, and XEXP.
| static bool legitimate_small_data_p | ( | enum machine_mode | mode, | |
| rtx | x | |||
| ) | [static] |
Definition at line 2752 of file rs6000.c.
References ABI_V4, CONST, DEFAULT_ABI, flag_pic, GET_CODE, small_data_operand(), and TARGET_TOC.
Referenced by rs6000_legitimate_address().
| bool macho_lo_sum_memory_operand | ( | rtx | x, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 2869 of file rs6000.c.
References CONSTANT_P, flag_pic, GET_CODE, INT_REG_OK_FOR_BASE_P, MEM, REG, TARGET_MACHO, and XEXP.
Referenced by reg_or_mem_operand().
| static bool no_global_regs_above | ( | int | first_greg | ) | [static] |
Definition at line 14239 of file rs6000.c.
References global_regs.
Referenced by rs6000_emit_epilogue(), and rs6000_emit_prologue().
| int num_insns_constant | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 2058 of file rs6000.c.
References CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, gcc_unreachable, GET_CODE, high, INTVAL, low, mask64_operand(), num_insns_constant_wide(), REAL_VALUE_FROM_CONST_DOUBLE, REAL_VALUE_TO_TARGET_DOUBLE, REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TYPE, TARGET_32BIT, and WORDS_BIG_ENDIAN.
| int num_insns_constant_wide | ( | HOST_WIDE_INT | value | ) |
Definition at line 2023 of file rs6000.c.
References CONST_OK_FOR_LETTER_P, high, low, num_insns_constant_wide(), and TARGET_POWERPC64.
Definition at line 1623 of file rs6000.c.
References ABI_DARWIN, DEFAULT_ABI, flag_errno_math, set_param_value(), and TARGET_MACHO.
Definition at line 11472 of file rs6000.c.
References abs, br_prob_note_reliable_p(), CR0_REGNO, EQ, find_reg_note(), gcc_unreachable, GE, get_attr_length(), GET_CODE, GET_MODE, GT, INTVAL, LE, LT, mode, NE, NULL, NULL_RTX, REG_BR_PROB, REG_BR_PROB_BASE, reg_names, REGNO, reverse_condition(), reverse_condition_maybe_unordered(), s, sprintf(), TARGET_E500, TARGET_FPRS, TARGET_HARD_FLOAT, validate_condition_mode(), and XEXP.
Definition at line 16401 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, ABI_V4, asm_fprintf(), ASM_GENERATE_INTERNAL_LABEL, assemble_name(), buf, cfun, current_function_args_size, current_function_decl, DEFAULT_ABI, flag_pic, fprintf(), fputs(), gcc_assert, gcc_unreachable, i, NO_PROFILE_COUNTERS, NULL, reg_names, regs_ever_live, RS6000_MCOUNT, STATIC_CHAIN_REGNUM, TARGET_32BIT, TARGET_PROFILE_KERNEL, TARGET_SECURE_PLT, VARARGS_STDARG_FUNCTION, and warning.
| const char* output_isel | ( | rtx * | operands | ) |
| void output_profile_hook | ( | int labelno | ATTRIBUTE_UNUSED | ) |
Definition at line 16347 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, ASM_GENERATE_INTERNAL_LABEL, buf, current_function_uses_pic_offset_table, DEFAULT_ABI, emit_library_call(), gen_rtx_REG(), gen_rtx_SYMBOL_REF, ggc_strdup, init_one_libfunc(), toc_hash_struct::labelno, LINK_REGISTER_REGNUM, MACHOPIC_INDIRECT, NO_PROFILE_COUNTERS, Pmode, RS6000_MCOUNT, gcc_target::strip_name_encoding, and TARGET_PROFILE_KERNEL.
| void output_toc | ( | FILE * | file, | |
| rtx | x, | |||
| int | labelno, | |||
| enum machine_mode | mode | |||
| ) |
Definition at line 15911 of file rs6000.c.
References ASM_GENERATE_INTERNAL_LABEL, gcc_target::asm_out, ASM_OUTPUT_ALIGN, ASM_OUTPUT_INTERNAL_LABEL_PREFIX, base, buf, CODE_LABEL_NUMBER, CONST, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, DECIMAL_FLOAT_MODE_P, DOUBLE_INT_ASM_OP, fprintf(), fputs(), gcc_assert, gcc_unreachable, GET_CODE, GET_MODE, GET_MODE_BITSIZE, ggc_alloc, h, high, HOST_WIDE_INT_PRINT_DEC, HOST_WIDE_INT_PRINT_UNSIGNED, htab_create_ggc, htab_find_slot(), gcc_target::asm_out::internal_label, INTVAL, toc_hash_struct::key, toc_hash_struct::key_mode, toc_hash_struct::labelno, low, lshift_double(), NULL, offset, output_addr_const(), PLUS, POINTER_SIZE, putc(), REAL_VALUE_FROM_CONST_DOUBLE, REAL_VALUE_TO_TARGET_DECIMAL128, REAL_VALUE_TO_TARGET_DECIMAL32, REAL_VALUE_TO_TARGET_DECIMAL64, REAL_VALUE_TO_TARGET_DOUBLE, REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TYPE, RS6000_OUTPUT_BASENAME, STRICT_ALIGNMENT, gcc_target::strip_name_encoding, TARGET_32BIT, TARGET_64BIT, TARGET_MINIMAL_TOC, TARGET_NO_FP_IN_TOC, TARGET_NO_TOC, TARGET_TOC, toc_hash_eq(), toc_hash_function(), toc_hash_table, VTABLE_NAME_P, XEXP, and XSTR.
| const char* output_vec_const_move | ( | rtx * | operands | ) |
Definition at line 2285 of file rs6000.c.
References CONST_VECTOR_ELT, dest, EASY_VECTOR_15, gcc_assert, gcc_unreachable, gen_easy_altivec_constant(), GET_CODE, GET_MODE, INTVAL, mode, TARGET_ALTIVEC, TARGET_SPE, vec, XEXP, and zero_constant().
Definition at line 17302 of file rs6000.c.
References current_group, emit_insn_before(), gen_nop(), GET_MODE, get_next_active_insn(), insn_terminates_group_p(), is_branch_slot_insn(), issue_rate, next_insn(), nop, NULL_RTX, previous_group, rs6000_issue_rate(), rs6000_variable_issue(), and sched_finish_pad_groups.
Definition at line 10291 of file rs6000.c.
References adjust_address_nv, AND, asm_fprintf(), assemble_name(), ccr_bit(), CONST, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, COUNT_REGISTER_REGNUM, CR0_REGNO, CR_REGNO_P, DOT_SYMBOLS, EQ, exact_log2, extract_MB(), extract_ME(), fprintf(), fputc(), fputs(), gcc_assert, gcc_unreachable, GE, GET_CODE, GET_MODE, GET_MODE_SIZE, GT, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT_PRINT_DEC, HOST_WIDE_INT_PRINT_HEX, INT_LOWPART, INT_P, INTVAL, LE, legitimate_indexed_address_p(), LINK_REGISTER_REGNUM, LT, machopic_classify_symbol(), MACHOPIC_INDIRECT, machopic_indirection_name(), MACHOPIC_UNDEFINED_FUNCTION, mark_decl_referenced(), mask64_operand(), mask_operand(), MEM, NE, NOT, output_addr_const(), output_address(), output_operand_lossage(), PLUS, plus_constant, print_operand(), print_operand_address(), putc(), REG, reg_names, REG_P, REGNO, RS6000_CALL_GLUE, rs6000_get_some_local_dynamic_name(), rs6000_output_function_entry(), s, small_data_operand(), SMALL_DATA_REG, SMALL_DATA_RELOC, SYMBOL_REF_DECL, TARGET_ALTIVEC, TARGET_E500, TARGET_MACHO, TARGET_MFCRF, TARGET_NEW_MNEMONICS, tbl, tmp, UNITS_PER_WORD, val, XEXP, XOR, XSTR, and XVECLEN.
Definition at line 10930 of file rs6000.c.
References alloca, CONST, CONSTANT_P, fprintf(), gcc_assert, gcc_unreachable, GET_CODE, GET_MODE, HOST_WIDE_INT_PRINT_DEC, INTVAL, legitimate_constant_pool_address_p(), MINUS, output_addr_const(), PLUS, REG, reg_names, REG_P, REGNO, small_data_operand(), SMALL_DATA_REG, SMALL_DATA_RELOC, strcat(), strcpy, strlen(), TARGET_AIX, TARGET_ELF, TARGET_MINIMAL_TOC, TARGET_TOC, XEXP, and XSTR.
| static int redefine_groups | ( | FILE * | dump, | |
| int | sched_verbose, | |||
| rtx | prev_head_insn, | |||
| rtx | tail | |||
| ) | [static] |
Definition at line 17225 of file rs6000.c.
References alloca, current_group, force_new_group(), GET_MODE, get_next_active_insn(), insn_terminates_group_p(), is_branch_slot_insn(), is_cracked_insn(), issue_rate, next_insn(), NULL_RTX, previous_group, PUT_MODE, rs6000_issue_rate(), and rs6000_variable_issue().
Definition at line 16535 of file rs6000.c.
References get_attr_type(), GET_CODE, GET_MODE, GET_MODE_SIZE, INSN_CODE, MEM, PATTERN, recog_memoized, REG_NOTE_KIND, rs6000_cpu_attr, SET, TARGET_POWER, TYPE_BRANCH, and XEXP.
Definition at line 16731 of file rs6000.c.
References current_sched_info, fprintf(), get_attr_type(), GET_CODE, INSN_P, is_dispatch_slot_restricted(), PATTERN, reload_completed, rs6000_cpu_attr, rs6000_sched_restricted_insns_priority, sched_info::sched_max_insns_priority, TYPE_IDIV, TYPE_IMUL, and USE.
| static int rs6000_adjust_priority | ( | rtx | , | |
| int | ||||
| ) | [static] |
Definition at line 13827 of file rs6000.c.
References do_compare_rtx_and_jump(), emit_label(), emit_move_insn(), EQ, gen_frame_mem(), GEN_INT, gen_int_mode(), gen_label_rtx(), gen_reg_rtx(), gen_rtx_MEM(), gen_rtx_PLUS, gen_rtx_REG(), GET_MODE_SIZE, hard_frame_pointer_rtx, mem, NULL_RTX, opcode, Pmode, and TARGET_32BIT.
| static int rs6000_arg_partial_bytes | ( | CUMULATIVE_ARGS * | cum, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| bool | named | |||
| ) | [static] |
Definition at line 5429 of file rs6000.c.
References ABI_AIX, ABI_V4, DEFAULT_ABI, FP_ARG_MAX_REG, fprintf(), GET_MODE_SIZE, GP_ARG_NUM_REG, int_size_in_bytes(), ret, rs6000_arg_size(), rs6000_parm_start(), TARGET_32BIT, TARGET_DEBUG_ARG, TARGET_XL_COMPAT, TREE_CODE, USE_ALTIVEC_FOR_ARG_P, USE_FP_FOR_ARG_P, and CUMULATIVE_ARGS::words.
| static unsigned long rs6000_arg_size | ( | enum machine_mode | mode, | |
| tree | type | |||
| ) | [static] |
Definition at line 4556 of file rs6000.c.
References GET_MODE_SIZE, int_size_in_bytes(), size, and TARGET_32BIT.
Definition at line 11020 of file rs6000.c.
References ABI_AIX, ASM_GENERATE_INTERNAL_LABEL, asm_out_file, ASM_OUTPUT_ALIGN, ASM_OUTPUT_LABEL, assemble_name(), buf, CONSTANT_P, DEFAULT_ABI, default_assemble_integer(), fprintf(), GET_CODE, output_addr_const(), RELOCATABLE_NEEDS_FIXUP, TARGET_RELOCATABLE, text_section, toc_section(), unlikely_text_section_p(), and XSTR.
Definition at line 5753 of file rs6000.c.
References ABI_V4, build_array_type(), build_decl, build_index_type(), build_pointer_type(), char_type_node, DECL_FIELD_CONTEXT, DEFAULT_ABI, get_identifier(), layout_type(), ptr_type_node, short_unsigned_type_node, size_zero_node, TREE_CHAIN, TYPE_FIELDS, TYPE_NAME, unsigned_char_type_node, va_list_fpr_counter_field, and va_list_gpr_counter_field.
Definition at line 8710 of file rs6000.c.
References ALTIVEC_BUILTIN_OVERLOADED_FIRST, ALTIVEC_BUILTIN_OVERLOADED_LAST, ARRAY_SIZE, build_function_type_list(), char_type_node, builtin_description::code, CODE_FOR_nothing, d, def_builtin, gcc_assert, gcc_unreachable, builtin_description::icode, integer_type_node, builtin_description::mask, builtin_description::name, NULL_TREE, opaque_V2SF_type_node, opaque_V2SI_type_node, opaque_V4SI_type_node, V16QI_type_node, V4SF_type_node, V4SI_type_node, and V8HI_type_node.
| static rtx rs6000_complex_function_value | ( | enum machine_mode | mode | ) | [static] |
Definition at line 19213 of file rs6000.c.
References const0_rtx, FLOAT_MODE_P, FP_ARG_RETURN, GEN_INT, gen_rtvec(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), GET_MODE_INNER, GET_MODE_SIZE, GP_ARG_RETURN, TARGET_32BIT, TARGET_FPRS, and TARGET_HARD_FLOAT.
Definition at line 3672 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, ABI_V4, call_used_regs, DEFAULT_ABI, FIRST_ALTIVEC_REGNO, fixed_regs, FIXED_SCRATCH, flag_pic, global_regs, INVALID_REGNUM, LAST_ALTIVEC_REGNO, PIC_OFFSET_TABLE_REGNUM, RS6000_PIC_OFFSET_TABLE_REGNUM, SPEFSCR_REGNO, TARGET_64BIT, TARGET_ALTIVEC, TARGET_ALTIVEC_ABI, TARGET_FPRS, TARGET_MINIMAL_TOC, TARGET_POWER, TARGET_SOFT_FLOAT, TARGET_SPE, TARGET_TOC, VRSAVE_REGNO, and VSCR_REGNO.
| static rtx rs6000_darwin64_record_arg | ( | CUMULATIVE_ARGS * | orig_cum, | |
| tree | type, | |||
| int | named, | |||
| bool | retval | |||
| ) | [static] |
Definition at line 5054 of file rs6000.c.
References BITS_PER_UNIT, BITS_PER_WORD, const0_rtx, FIRST_PSEUDO_REGISTER, gen_rtvec_v(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, int_size_in_bytes(), NULL_RTX, rs6000_darwin64_record_arg_flush(), rs6000_darwin64_record_arg_recurse(), TYPE_ALIGN, and CUMULATIVE_ARGS::words.
| static void rs6000_darwin64_record_arg_advance_flush | ( | CUMULATIVE_ARGS * | cum, | |
| HOST_WIDE_INT | bitpos | |||
| ) | [static] |
Definition at line 4574 of file rs6000.c.
References BITS_PER_WORD, mode, mode_for_size(), MODE_INT, and CUMULATIVE_ARGS::words.
| static void rs6000_darwin64_record_arg_advance_recurse | ( | CUMULATIVE_ARGS * | cum, | |
| tree | type, | |||
| HOST_WIDE_INT | startbitpos | |||
| ) | [static] |
Definition at line 4613 of file rs6000.c.
References bit_position(), bitpos(), DECL_SIZE, error_mark_node, f, GET_MODE_SIZE, host_integerp(), int_bit_position(), mode, rs6000_darwin64_record_arg_advance_flush(), rs6000_darwin64_record_arg_advance_recurse(), TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_FIELDS, TYPE_MODE, USE_ALTIVEC_FOR_ARG_P, USE_FP_FOR_ARG_P, and CUMULATIVE_ARGS::words.
| static void rs6000_darwin64_record_arg_flush | ( | CUMULATIVE_ARGS * | cum, | |
| HOST_WIDE_INT | bitpos, | |||
| rtx | rvec[], | |||
| int * | k | |||
| ) | [static] |
Definition at line 4916 of file rs6000.c.
References BITS_PER_UNIT, BITS_PER_WORD, GEN_INT, gen_rtx_EXPR_LIST, gen_rtx_REG(), GP_ARG_MIN_REG, GP_ARG_NUM_REG, MIN, mode, mode_for_size(), MODE_INT, UNITS_PER_WORD, word_mode, and CUMULATIVE_ARGS::words.
| static void rs6000_darwin64_record_arg_recurse | ( | CUMULATIVE_ARGS * | cum, | |
| tree | type, | |||
| HOST_WIDE_INT | startbitpos, | |||
| rtx | rvec[], | |||
| int * | k | |||
| ) | [static] |
Definition at line 4984 of file rs6000.c.
References bit_position(), bitpos(), BITS_PER_UNIT, DECL_SIZE, error_mark_node, f, GEN_INT, gen_rtx_EXPR_LIST, gen_rtx_REG(), host_integerp(), int_bit_position(), mode, rs6000_darwin64_record_arg_flush(), rs6000_darwin64_record_arg_recurse(), TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_FIELDS, TYPE_MODE, USE_ALTIVEC_FOR_ARG_P, and USE_FP_FOR_ARG_P.
| unsigned int rs6000_dbx_register_number | ( | unsigned int | regno | ) |
Definition at line 19450 of file rs6000.c.
References abort, ALTIVEC_REGNO_P, COUNT_REGISTER_REGNUM, CR0_REGNO, CR_REGNO_P, DWARF2_DEBUG, FIRST_ALTIVEC_REGNO, gcc_assert, LINK_REGISTER_REGNUM, MQ_REGNO, SPE_ACC_REGNO, SPEFSCR_REGNO, VRSAVE_REGNO, VSCR_REGNO, write_symbols, and XER_REGNO.
Definition at line 19420 of file rs6000.c.
References BYTES_BIG_ENDIAN, gen_rtvec(), gen_rtx_PARALLEL, gen_rtx_REG(), GET_MODE, NULL_RTX, REGNO, SPE_VECTOR_MODE, TARGET_E500_DOUBLE, and TARGET_SPE.
| static enum machine_mode rs6000_eh_return_filter_mode | ( | void | ) | [static] |
Definition at line 3905 of file rs6000.c.
References copy_addr_to_reg(), GET_CODE, legitimate_constant_pool_address_p(), MEM, REG, reload_in_progress, replace_equiv_address(), and XEXP.
| static void rs6000_emit_allocate_stack | ( | HOST_WIDE_INT | size, | |
| int | copy_r12 | |||
| ) | [static] |
Definition at line 13875 of file rs6000.c.
References ABI_V4, const0_rtx, current_function_limit_stack, DEFAULT_ABI, emit_insn(), emit_move_insn(), emit_note(), gen_adddi3(), gen_addsi3(), gen_cond_trap(), GEN_INT, gen_int_mode(), gen_rtx_CONST, gen_rtx_EXPR_LIST, gen_rtx_MEM(), gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_SET, gen_trap(), GET_CODE, get_last_insn(), INTVAL, NOTE_INSN_DELETED, NULL_RTX, PATTERN, Pmode, REG_FRAME_RELATED_EXPR, REG_NOTES, REG_P, REGNO, RTX_FRAME_RELATED_P, stack_limit_rtx, STACK_POINTER_REGNUM, TARGET_32BIT, TARGET_UPDATE, try_split(), and warning.
Definition at line 11448 of file rs6000.c.
References emit_jump_insn(), gen_rtx_IF_THEN_ELSE, gen_rtx_LABEL_REF, gen_rtx_SET, pc_rtx, and rs6000_generate_compare().
Definition at line 11887 of file rs6000.c.
References CONST0_RTX, emit_insn(), EQ, flag_trapping_math, gcc_unreachable, GE, gen_reg_rtx(), gen_rtx_ABS, gen_rtx_GE, gen_rtx_IF_THEN_ELSE, gen_rtx_MINUS, gen_rtx_NEG, gen_rtx_SET, GET_CODE, GET_MODE, GT, HONOR_INFINITIES, HONOR_NANS, LE, LT, NE, real_isinf(), REAL_VALUE_FROM_CONST_DOUBLE, REAL_VALUE_TYPE, reverse_condition_maybe_unordered(), rs6000_emit_int_cmove(), rtx_equal_p(), SCALAR_FLOAT_MODE_P, short_cint_operand(), TARGET_E500, TARGET_FPRS, TARGET_HARD_FLOAT, and TARGET_ISEL.
Definition at line 13735 of file rs6000.c.
References current_function_calls_alloca, emit_move_insn(), frame_pointer_needed, gen_frame_mem(), gen_rtx_MEM(), gen_rtx_REG(), LINK_REGISTER_REGNUM, rs6000_stack::lr_save_offset, rs6000_stack::lr_save_p, operands, plus_constant, Pmode, rs6000_stack::push_p, rs6000_stack_info(), stack_pointer_rtx, tmp, and rs6000_stack::total_size.
| void rs6000_emit_epilogue | ( | int | sibcall | ) |
Definition at line 14880 of file rs6000.c.
References ABI_DARWIN, ABI_V4, abort, addr(), ALTIVEC_REG_BIT, rs6000_stack::altivec_save_offset, rs6000_stack::altivec_size, b, call_used_regs, count, CR0_REGNO, CR2_REGNO, rs6000_stack::cr_save_offset, rs6000_stack::cr_save_p, current_function_calls_alloca, current_function_calls_eh_return, DEFAULT_ABI, EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX, rs6000_stack::ehrd_offset, emit_insn(), emit_jump_insn(), emit_move_insn(), rs6000_stack::first_altivec_reg_save, rs6000_stack::first_fp_reg_save, rs6000_stack::first_gp_reg_save, FIXED_SCRATCH, flag_pic, FP_SAVE_INLINE, rs6000_stack::fp_save_offset, frame_pointer_needed, gcc_assert, gen_adddi3(), gen_addsi3(), gen_frame_mem(), gen_frame_mem_offset(), GEN_INT, gen_rtx_CLOBBER, gen_rtx_MEM(), gen_rtx_PARALLEL, gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_RETURN, gen_rtx_SET, gen_rtx_SYMBOL_REF, gen_rtx_UNSPEC, gen_rtx_USE, generate_set_vrsave(), ggc_strdup, rs6000_stack::gp_save_offset, i, info, INVALID_REGNUM, LAST_ALTIVEC_REGNO, LINK_REGISTER_REGNUM, rs6000_stack::lr_save_offset, rs6000_stack::lr_save_p, mem, no_global_regs_above(), offset, optimize_size, p, plus_constant, Pmode, PROCESSOR_PPC601, PROCESSOR_PPC603, PROCESSOR_PPC750, rs6000_stack::push_p, r, reg_mode, regs_ever_live, RESTORE_FP_PREFIX, RESTORE_FP_SUFFIX, rs6000_cpu, rs6000_emit_stack_tie(), RS6000_PIC_OFFSET_TABLE_REGNUM, rs6000_stack_info(), rtvec_alloc(), RTVEC_ELT, set_mem_alias_set(), rs6000_stack::spe_64bit_regs_used, SPE_CONST_OFFSET_OK, rs6000_stack::spe_gp_save_offset, sprintf(), strcpy, TARGET_32BIT, TARGET_AIX, TARGET_ALTIVEC, TARGET_ALTIVEC_ABI, TARGET_ALTIVEC_VRSAVE, TARGET_MINIMAL_TOC, TARGET_MULTIPLE, TARGET_POWERPC64, TARGET_SPE_ABI, TARGET_TOC, rs6000_stack::total_size, rs6000_stack::vrsave_mask, rs6000_stack::vrsave_save_offset, and WORLD_SAVE_P.
Definition at line 12071 of file rs6000.c.
References emit_insn(), GET_CODE, GET_MODE, rs6000_generate_compare(), and XEXP.
| void rs6000_emit_load_toc_table | ( | int | fromprolog | ) |
Definition at line 13612 of file rs6000.c.
References ABI_AIX, ABI_V4, abort, ASM_GENERATE_INTERNAL_LABEL, buf, current_function_decl, DEFAULT_ABI, dest, emit_insn(), emit_move_insn(), flag_pic, function_section(), gcc_assert, gen_addsi3(), gen_reg_rtx(), gen_rtx_MEM(), gen_rtx_REG(), gen_rtx_SYMBOL_REF, ggc_strdup, insn, lab, LINK_REGISTER_REGNUM, Pmode, rs6000_got_sym(), rs6000_maybe_dead(), RS6000_PIC_OFFSET_TABLE_REGNUM, TARGET_32BIT, TARGET_AIX, TARGET_ELF, TARGET_MINIMAL_TOC, TARGET_SECURE_PLT, tmp1, tmp2, and toc_section().
Definition at line 12111 of file rs6000.c.
References c, emit_move_insn(), gcc_assert, GE, GET_MODE, mode, and target.
| void rs6000_emit_move | ( | rtx | dest, | |
| rtx | source, | |||
| enum machine_mode | mode | |||
| ) |
Definition at line 3926 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, ABI_V4, add_operand(), addend, adjust_address, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P, CONST, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, CONSTANT_P, CONSTANT_POOL_ADDRESS_P, constant_pool_expr_p(), create_TOC_reference(), DEFAULT_ABI, easy_fp_constant(), easy_vector_constant(), emit_insn(), emit_move_insn(), FIRST_PSEUDO_REGISTER, flag_pic, FLOAT_MODE_P, force_const_mem(), force_operand(), force_reg(), FP_REGNO_P, gcc_assert, gcc_unreachable, gen_adddi3(), gen_addsi3(), gen_const_mem(), gen_int_mode(), gen_reg_rtx(), gen_rtvec(), gen_rtx_CLOBBER, gen_rtx_PARALLEL, gen_rtx_PLUS, gen_rtx_SCRATCH, gen_rtx_SET, gen_rtx_SYMBOL_REF, gen_rtx_USE, general_operand(), GET_CODE, GET_MODE_BITSIZE, GET_MODE_SIZE, get_pool_constant(), get_pool_mode(), get_TOC_alias_set(), got_operand(), gpc_reg_operand(), HOST_BITS_PER_WIDE_INT, legitimate_constant_pool_address_p(), MACHO_DYNAMIC_NO_PIC_P, MACHOPIC_INDIRECT, MEM, MEM_ALIGN, MEM_VOLATILE_P, no_new_pseudos, nonimmediate_operand(), NULL, num_insns_constant(), operands, PLUS, Pmode, REG, REGNO, reload_completed, reload_in_progress, rs6000_eliminate_indexed_memrefs(), rs6000_emit_move(), rs6000_legitimize_tls_address(), rs6000_tls_referenced_p(), set_mem_alias_set(), side_effects_p(), simplify_gen_subreg(), SLOW_UNALIGNED_ACCESS, small_data_operand(), sym, SYMBOL_REF_DATA, SYMBOL_REF_FLAGS, SYMBOL_REF_TLS_MODEL, SYMBOL_REF_USED, target, TARGET_ELF, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_IEEEQUAD, TARGET_LONG_DOUBLE_128, TARGET_NO_SUM_IN_TOC, TARGET_NO_TOC, TARGET_POWER, TARGET_POWERPC, TARGET_TOC, tmp, toc_relative_expr_p(), true_regnum(), validize_mem(), XEXP, and XSTR.
Definition at line 14255 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, ABI_V4, addr(), altivec_frame_fixup(), ALTIVEC_REG_BIT, rs6000_stack::altivec_save_offset, rs6000_stack::altivec_size, b, call_used_regs, cfun, CR2_REGNO, rs6000_stack::cr_save_offset, rs6000_stack::cr_save_p, current_function_calls_eh_return, current_function_uses_pic_offset_table, DEFAULT_ABI, dest, EDGE_COUNT, EH_RETURN_DATA_REGNO, rs6000_stack::ehrd_offset, emit_frame_save(), emit_insn(), emit_move_insn(), EXIT_BLOCK_PTR, FALSE, rs6000_stack::first_altivec_reg_save, rs6000_stack::first_fp_reg_save, rs6000_stack::first_gp_reg_save, FIXED_SCRATCH, flag_pic, FP_SAVE_INLINE, rs6000_stack::fp_save_offset, frame_pointer_needed, FRAME_POINTER_REGNUM, gcc_assert, gen_blockage(), gen_frame_mem(), GEN_INT, gen_iorsi3(), gen_nop(), gen_rtx_CLOBBER, gen_rtx_EXPR_LIST, gen_rtx_MEM(), gen_rtx_PARALLEL, gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_SET, gen_rtx_SYMBOL_REF, gen_rtx_USE, generate_set_vrsave(), GET_CODE, get_pool_size(), ggc_strdup, rs6000_stack::gp_save_offset, HARD_FRAME_POINTER_REGNUM, HOST_WIDE_INT, i, info, insn, INVALID_REGNUM, LAST_ALTIVEC_REGNO, LINK_REGISTER_REGNUM, lr, rs6000_stack::lr_save_offset, rs6000_stack::lr_save_p, machopic_function_base_sym(), mem, no_global_regs_above(), NULL, NULL_RTX, offset, p, PATTERN, plus_constant, Pmode, rs6000_stack::push_p, REG_FRAME_RELATED_EXPR, reg_mode, REG_NOTES, REGNO, regs_ever_live, rs6000_emit_allocate_stack(), rs6000_emit_load_toc_table(), rs6000_emit_stack_tie(), rs6000_frame_related(), rs6000_maybe_dead(), RS6000_PIC_OFFSET_TABLE_REGNUM, rs6000_stack_info(), rtvec_alloc(), RTVEC_ELT, RTX_FRAME_RELATED_P, SAVE_FP_PREFIX, SAVE_FP_SUFFIX, set_mem_alias_set(), rs6000_stack::spe_64bit_regs_used, SPE_CONST_OFFSET_OK, rs6000_stack::spe_gp_save_offset, sprintf(), src, STACK_POINTER_REGNUM, sz(), TARGET_32BIT, TARGET_AIX, TARGET_ALTIVEC, TARGET_ALTIVEC_ABI, TARGET_ALTIVEC_VRSAVE, TARGET_ELF, TARGET_FIX_AND_CONTINUE, TARGET_MACHO, TARGET_MINIMAL_TOC, TARGET_MULTIPLE, TARGET_POWERPC64, TARGET_SECURE_PLT, TARGET_SPE_ABI, TARGET_TOC, rs6000_stack::total_size, TRUE, rs6000_stack::vrsave_mask, VRSAVE_REGNO, rs6000_stack::vrsave_save_offset, and WORLD_SAVE_P.
Definition at line 11385 of file rs6000.c.
References const0_rtx, convert_move(), emit_insn(), EQ, gcc_assert, GE, gen_reg_rtx(), gen_rtx_COMPARE, gen_rtx_EQ, gen_rtx_fmt_ee(), gen_rtx_SET, GET_CODE, GET_MODE, LE, NE, PUT_MODE, rs6000_generate_compare(), rs6000_reverse_condition(), TARGET_E500, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_POWERPC64, and XEXP.
| rtx rs6000_emit_set_const | ( | rtx | dest, | |
| enum machine_mode | mode, | |||
| rtx | source, | |||
| int n | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 3750 of file rs6000.c.
References CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, CONSTANT_P, emit_insn(), gcc_unreachable, GEN_INT, gen_reg_rtx(), gen_rtx_IOR, gen_rtx_SET, GET_CODE, get_last_insn(), insn, INTVAL, no_new_pseudos, NULL, REG_EQUAL, result, rs6000_emit_set_long_const(), SET_SRC, set_unique_reg_note(), and single_set.
Definition at line 3819 of file rs6000.c.
References emit_move_insn(), GEN_INT, gen_rtx_ASHIFT, gen_rtx_IOR, operand_subword_force(), TARGET_POWERPC64, and WORDS_BIG_ENDIAN.
Definition at line 13862 of file rs6000.c.
References emit_insn(), gen_frame_mem(), gen_rtx_REG(), mem, Pmode, and STACK_POINTER_REGNUM.
Definition at line 19156 of file rs6000.c.
References CONST_DOUBLE_FROM_REAL_VALUE, dconst1, emit_insn(), force_reg(), gen_reg_rtx(), gen_rtvec(), gen_rtx_MINUS, gen_rtx_MULT, gen_rtx_PLUS, gen_rtx_SET, gen_rtx_UNSPEC, one, v0, x0, and y1().
Definition at line 19111 of file rs6000.c.
References CONST_DOUBLE_FROM_REAL_VALUE, dconst1, emit_insn(), force_reg(), gen_reg_rtx(), gen_rtvec(), gen_rtx_MINUS, gen_rtx_MULT, gen_rtx_PLUS, gen_rtx_SET, gen_rtx_UNSPEC, one, v0, x0, and y1().
| void rs6000_emit_sync | ( | enum rtx_code | code, | |
| enum machine_mode | mode, | |||
| rtx | m, | |||
| rtx | op, | |||
| rtx | before_param, | |||
| rtx | after_param, | |||
| bool | sync_p | |||
| ) |
Definition at line 12142 of file rs6000.c.
References after, AND, and_optab, before, BYTES_BIG_ENDIAN, change_address(), convert_move(), emit_insn(), emit_move_insn(), expand_binop(), force_reg(), gcc_unreachable, gen_ashlsi3(), GEN_INT, gen_lowpart_common(), gen_lshrsi3(), gen_reg_rtx(), gen_rotlsi3(), gen_rtvec(), gen_rtx_AND, gen_rtx_CLOBBER, gen_rtx_fmt_ee(), gen_rtx_IOR, gen_rtx_MINUS, gen_rtx_NOT, gen_rtx_PARALLEL, gen_rtx_PLUS, gen_rtx_SCRATCH, gen_rtx_SET, gen_rtx_UNSPEC, gen_rtx_XOR, gen_xorsi3(), GET_CODE, GET_MODE_BITSIZE, GET_MODE_MASK, ior_optab, lowpart_subreg(), MEM_ALIGN, MINUS, NOT, NULL_RTX, OPTAB_LIB_WIDEN, PLUS, Pmode, set_mem_align(), shift, simplify_gen_binary(), vec, XEXP, and XOR.
| static rtx rs6000_emit_vector_compare | ( | enum rtx_code | rcode, | |
| rtx | op0, | |||
| rtx | op1, | |||
| enum machine_mode | dmode | |||
| ) | [static] |
Definition at line 11669 of file rs6000.c.
References CODE_FOR_nothing, convert_move(), emit_insn(), EQ, gcc_assert, gcc_unreachable, GE, GEN_FCN, gen_reg_rtx(), gen_rtvec(), gen_rtx_SET, gen_rtx_UNSPEC, GET_MODE, get_vec_cmp_insn(), GT, ior_optab, LE, LT, NE, one_cmpl_optab, rs6000_emit_vector_compare(), TARGET_ALTIVEC, and tmp.
Definition at line 11864 of file rs6000.c.
References GET_CODE, GET_MODE, rcode, rs6000_emit_vector_compare(), rs6000_emit_vector_select(), and TARGET_ALTIVEC.
Definition at line 11840 of file rs6000.c.
References emit_insn(), emit_move_insn(), gen_reg_rtx(), gen_rtvec(), gen_rtx_SET, gen_rtx_UNSPEC, GET_MODE, and get_vsel_insn().
Definition at line 6786 of file rs6000.c.
References CODE_FOR_nothing, const0_rtx, copy_to_mode_reg(), emit_insn(), error(), error_mark_node, expand_normal(), GEN_FCN, gen_reg_rtx(), GET_MODE, STRIP_NOPS, TREE_CHAIN, TREE_CODE, TREE_INT_CST_LOW, and TREE_VALUE.
| static rtx rs6000_expand_builtin | ( | tree | exp, | |
| rtx | target, | |||
| rtx subtarget | ATTRIBUTE_UNUSED, | |||
| enum machine_mode mode | ATTRIBUTE_UNUSED, | |||
| int ignore | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 7898 of file rs6000.c.
References addr(), ALTIVEC_BUILTIN_MASK_FOR_LOAD, ALTIVEC_BUILTIN_MASK_FOR_STORE, altivec_expand_builtin(), ARRAY_SIZE, builtin_description::code, d, DECL_FUNCTION_CODE, emit_insn(), expand_expr(), EXPAND_NORMAL, gcc_assert, gcc_unreachable, GEN_FCN, gen_reg_rtx(), gen_rtx_MEM(), gen_rtx_NEG, gen_rtx_SET, GET_MODE, builtin_description::icode, memory_address(), mode, NULL_RTX, Pmode, ret, rs6000_expand_binop_builtin(), rs6000_expand_ternop_builtin(), rs6000_expand_unop_builtin(), spe_expand_builtin(), TARGET_ALTIVEC, TARGET_SPE, TREE_CODE, TREE_OPERAND, TREE_TYPE, and TREE_VALUE.
Definition at line 12481 of file rs6000.c.
References align, and_optab, change_address(), convert_modes(), emit_insn(), emit_move_insn(), expand_binop(), force_reg(), gen_ashlsi3(), GEN_INT, gen_lowpart, gen_lowpart_common(), gen_reg_rtx(), gen_xorsi3(), GET_MODE, GET_MODE_MASK, MEM_VOLATILE_P, mode, NULL_RTX, OPTAB_LIB_WIDEN, Pmode, set_mem_align(), shift, and XEXP.
Definition at line 7056 of file rs6000.c.
References CODE_FOR_nothing, const0_rtx, copy_to_mode_reg(), emit_insn(), error(), error_mark_node, expand_normal(), GEN_FCN, gen_reg_rtx(), GET_MODE, STRIP_NOPS, TREE_CHAIN, TREE_CODE, TREE_INT_CST_LOW, and TREE_VALUE.
Definition at line 6705 of file rs6000.c.
References CODE_FOR_nothing, const0_rtx, copy_to_mode_reg(), emit_insn(), error(), error_mark_node, expand_normal(), GEN_FCN, gen_reg_rtx(), GET_CODE, GET_MODE, INTVAL, and TREE_VALUE.
Definition at line 2480 of file rs6000.c.
References adjust_address_nv, assign_stack_temp(), const0_rtx, emit_insn(), emit_move_insn(), gen_rtvec(), gen_rtx_PARALLEL, gen_rtx_SET, gen_rtx_UNSPEC, GET_MODE, GET_MODE_INNER, GET_MODE_SIZE, mem, and mode.
Referenced by altivec_expand_vec_ext_builtin().
Definition at line 2343 of file rs6000.c.
References adjust_address_nv, assign_stack_temp(), CONST0_RTX, const0_rtx, CONSTANT_P, copy, copy_rtx(), easy_vector_constant(), emit_insn(), emit_move_insn(), gen_rtvec(), gen_rtx_CONST_VECTOR(), gen_rtx_PARALLEL, gen_rtx_SET, gen_rtx_UNSPEC, gen_rtx_VEC_DUPLICATE, gen_rtx_VEC_SELECT, gen_rtx_XOR, GET_MODE, GET_MODE_INNER, GET_MODE_NUNITS, GET_MODE_SIZE, mem, mode, rs6000_expand_vector_set(), rtx_equal_p(), XVEC, and XVECEXP.
Referenced by altivec_expand_vec_init_builtin().
Definition at line 2440 of file rs6000.c.
References adjust_address_nv, assign_stack_temp(), const0_rtx, emit_insn(), emit_move_insn(), force_reg(), GEN_INT, gen_reg_rtx(), gen_rtvec(), gen_rtx_CONST_VECTOR(), gen_rtx_PARALLEL, gen_rtx_SET, gen_rtx_UNSPEC, GET_MODE, GET_MODE_INNER, GET_MODE_SIZE, mem, mode, rtvec_alloc(), XVEC, and XVECEXP.
Referenced by altivec_expand_vec_set_builtin(), and rs6000_expand_vector_init().
Definition at line 1931 of file rs6000.c.
References ABI_AIX, ARRAY_SIZE, ASM_COMMENT_START, asm_out_file, DEFAULT_ABI, default_file_start(), flag_pic, flag_verbose_asm, fprintf(), g_switch_value, HOST_WIDE_INT_PRINT_UNSIGNED, MASK_64BIT, rs6000_cpu_select::name, PPC405_ERRATUM77, putc(), SDATA_DATA, SDATA_EABI, SDATA_NONE, SDATA_SYSV, sprintf(), start, rs6000_cpu_select::string, switch_to_section(), TARGET_CPU_DEFAULT, TARGET_DEFAULT, TARGET_ELF, target_flags, text_section, and toc_section().
| static void rs6000_frame_related | ( | rtx | insn, | |
| rtx | reg, | |||
| HOST_WIDE_INT | val, | |||
| rtx | reg2, | |||
| rtx | rreg | |||
| ) | [static] |
Definition at line 13970 of file rs6000.c.
References copy_rtx(), gcc_assert, GEN_INT, gen_raw_REG(), gen_rtx_EXPR_LIST, gen_rtx_PLUS, gen_rtx_REG(), GET_CODE, GET_MODE, MEM, NULL_RTX, PATTERN, Pmode, REG_FRAME_RELATED_EXPR, REG_NOTES, REGNO, replace_rtx(), RTX_FRAME_RELATED_P, SET, SET_DEST, SET_SRC, simplify_rtx(), spe_synthesize_frame_save(), STACK_POINTER_REGNUM, TARGET_SPE, XEXP, XVECEXP, and XVECLEN.
Definition at line 13503 of file rs6000.c.
References ABI_DARWIN, gcc_target::binds_local_p, DEFAULT_ABI, lookup_attribute(), TARGET_ALTIVEC_VRSAVE, TREE_CHAIN, TREE_CODE, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, and TYPE_ATTRIBUTES.
Definition at line 19252 of file rs6000.c.
References ALTIVEC_ARG_MIN_REG, ALTIVEC_ARG_RETURN, ALTIVEC_VECTOR_MODE, BITS_PER_WORD, gcc_target::calls, COMPLEX_TYPE, const0_rtx, DECIMAL_FLOAT_MODE_P, FP_ARG_MIN_REG, FP_ARG_RETURN, GEN_INT, gen_rtvec(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), GET_MODE_BITSIZE, GP_ARG_RETURN, int_size_in_bytes(), INTEGRAL_TYPE_P, POINTER_TYPE_P, rs6000_complex_function_value(), rs6000_darwin64_record_arg(), SCALAR_FLOAT_TYPE_P, spe_build_register_parallel(), gcc_target::calls::split_complex_arg, TARGET_32BIT, TARGET_ALTIVEC, TARGET_ALTIVEC_ABI, TARGET_E500_DOUBLE, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_POWERPC64, TREE_CODE, TYPE_MODE, and CUMULATIVE_ARGS::words.
| void rs6000_gen_section_name | ( | char ** | buf, | |
| const char * | filename, | |||
| const char * | section_desc | |||
| ) |
Definition at line 11124 of file rs6000.c.
References const0_rtx, emit_insn(), EQ, flag_finite_math_only, flag_unsafe_math_optimizations, gcc_unreachable, GE, gen_reg_rtx(), gen_rtvec(), gen_rtx_CLOBBER, gen_rtx_COMPARE, gen_rtx_fmt_ee(), gen_rtx_IOR, gen_rtx_PARALLEL, gen_rtx_SCRATCH, gen_rtx_SET, GET_CODE, GET_MODE, GT, LE, LT, NE, SUBREG_PROMOTED_UNSIGNED_P, TARGET_64BIT, TARGET_E500, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_IEEEQUAD, TARGET_LONG_DOUBLE_128, TARGET_XL_COMPAT, validate_condition_mode(), XINT, and XVECEXP.
| static const char* rs6000_get_some_local_dynamic_name | ( | void | ) | [static] |
Definition at line 10214 of file rs6000.c.
References cfun, for_each_rtx(), gcc_unreachable, get_insns(), insn, INSN_P, NEXT_INSN, PATTERN, and rs6000_get_some_local_dynamic_name_1().
Definition at line 10233 of file rs6000.c.
References cfun, GET_CODE, str, SYMBOL_REF_TLS_MODEL, TLS_MODEL_LOCAL_DYNAMIC, and XSTR.
Definition at line 5887 of file rs6000.c.
References ABI_V4, addr(), align, ALTIVEC_VECTOR_MODE, append_to_statement_list(), BITS_PER_UNIT, boolean_type_node, build(), build1, build2, build3, build_fold_addr_expr(), build_function_call_expr(), build_int_cst(), build_pointer_type(), build_va_arg_indirect_ref(), gcc_target::calls, COMPLEX_TYPE, copy, create_artificial_label(), create_tmp_var, DECL_POINTER_ALIAS_SET, DEFAULT_ABI, fb_rvalue, fold_convert(), fpr, get_initialized_tmp_var(), GET_MODE_SIZE, get_varargs_alias_set(), gimplify_and_add(), gimplify_expr(), implicit_built_in_decls, int_size_in_bytes(), integer_type_node, is_gimple_val(), NULL, NULL_TREE, pass_by_reference(), ptr_type_node, rs6000_gimplify_va_arg(), size, size_int, gcc_target::calls::split_complex_arg, std_gimplify_va_arg_expr(), STRICT_ALIGNMENT, TARGET_ALTIVEC_ABI, TARGET_FPRS, TARGET_HARD_FLOAT, tmp, TREE_CHAIN, TREE_CODE, tree_cons, TREE_TYPE, TYPE_ALIGN, TYPE_FIELDS, TYPE_MODE, UNITS_PER_WORD, va_list_type_node, and void_type_node.
Referenced by rs6000_gimplify_va_arg().
Definition at line 10114 of file rs6000.c.
References current_function_uses_pic_offset_table, no_new_pseudos, pic_offset_table_rtx, regs_ever_live, and RS6000_PIC_OFFSET_TABLE_REGNUM.
| static tree rs6000_handle_altivec_attribute | ( | tree * | node, | |
| tree name | ATTRIBUTE_UNUSED, | |||
| tree | args, | |||
| int flags | ATTRIBUTE_UNUSED, | |||
| bool * | no_add_attrs | |||
| ) | [static] |
Definition at line 17496 of file rs6000.c.
References bool_V16QI_type_node, bool_V4SI_type_node, bool_V8HI_type_node, boolean_type_node, build_qualified_type(), COMPLEX_TYPE, DECIMAL_FLOAT_MODE_P, double_type_node, error(), IDENTIFIER_POINTER, long_double_type_node, long_integer_type_node, long_long_integer_type_node, long_long_unsigned_type_node, long_unsigned_type_node, mode, NULL_TREE, pixel_V8HI_type_node, POINTER_TYPE_P, reconstruct_complex_type(), result, rs6000_warn_altivec_long, TARGET_64BIT, TREE_CODE, TREE_TYPE, TREE_VALUE, TYPE_MODE, TYPE_QUAL_CONST, TYPE_READONLY, TYPE_UNSIGNED, unsigned_V16QI_type_node, unsigned_V4SI_type_node, unsigned_V8HI_type_node, V16QI_type_node, V4SF_type_node, V4SI_type_node, V8HI_type_node, and warning.
Definition at line 1643 of file rs6000.c.
References ABI_DARWIN, DEFAULT_ABI, error(), MASK_ALIGN_NATURAL, MASK_ALIGN_POWER, MASK_MINIMAL_TOC, MASK_MULTIPLE, MASK_POWER, MASK_POWER2, MASK_POWERPC, MASK_POWERPC64, MASK_PPC_GFXOPT, MASK_PPC_GPOPT, MASK_RELOCATABLE, MASK_STRING, rs6000_alignment_flags, RS6000_DEFAULT_LONG_DOUBLE_SIZE, rs6000_explicit_options, rs6000_isel, rs6000_parse_yes_no_option(), rs6000_spe, strcmp(), rs6000_cpu_select::string, TARGET_64BIT, TARGET_ALTIVEC_VRSAVE, target_flags, target_flags_explicit, TARGET_NO_FP_IN_TOC, TARGET_NO_SUM_IN_TOC, TARGET_SPE_ABI, and warning.
| static tree rs6000_handle_struct_attribute | ( | tree * | node, | |
| tree | name, | |||
| tree args | ATTRIBUTE_UNUSED, | |||
| int flags | ATTRIBUTE_UNUSED, | |||
| bool * | no_add_attrs | |||
| ) | [static] |
Definition at line 17688 of file rs6000.c.
References DECL_P, IDENTIFIER_POINTER, is_attribute_p(), lookup_attribute(), NULL, NULL_TREE, TREE_CODE, TREE_TYPE, TYPE_ATTRIBUTES, and warning.
| static int rs6000_hard_regno_mode_ok | ( | int | regno, | |
| enum machine_mode | mode | |||
| ) | [static] |
Definition at line 1052 of file rs6000.c.
References ALTIVEC_REGNO_P, ALTIVEC_VECTOR_MODE, CR_REGNO_P, DECIMAL_FLOAT_MODE_P, FP_REGNO_P, GET_MODE_CLASS, GET_MODE_SIZE, HARD_REGNO_NREGS, INT_REGNO_P, MODE_CC, MODE_INT, SCALAR_FLOAT_MODE_P, SPE_SIMD_REGNO_P, SPE_VECTOR_MODE, TARGET_SPE, UNITS_PER_FP_WORD, UNITS_PER_WORD, and XER_REGNO_P.
| int rs6000_hard_regno_nregs | ( | int | regno, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 3647 of file rs6000.c.
References ALTIVEC_REGNO_P, FLOAT_MODE_P, FP_REGNO_P, GET_MODE_SIZE, SPE_SIMD_REGNO_P, SPE_VECTOR_MODE, TARGET_E500_DOUBLE, TARGET_SPE, UNITS_PER_ALTIVEC_WORD, UNITS_PER_FP_WORD, UNITS_PER_SPE_WORD, and UNITS_PER_WORD.
| static unsigned rs6000_hash_constant | ( | rtx | k | ) | [static] |
Definition at line 15781 of file rs6000.c.
References CHAR_BIT, CONST_DOUBLE_REAL_VALUE, format, gcc_unreachable, GET_CODE, GET_MODE, GET_RTX_FORMAT, INSN_UID, len, mode, real_hash(), result, rs6000_hash_constant(), str, strlen(), unsigned, XEXP, XINT, XSTR, and XWINT.
Definition at line 7997 of file rs6000.c.
References altivec_init_builtins(), bool_char_type_node, bool_int_type_node, bool_short_type_node, bool_V16QI_type_node, bool_V4SI_type_node, bool_V8HI_type_node, build_decl, build_distinct_type_copy(), build_opaque_vector_type(), build_pointer_type(), build_vector_type(), built_in_decls, copy_node, float_type_internal_node, float_type_node, get_identifier(), intHI_type_internal_node, intHI_type_node, intQI_type_internal_node, intQI_type_node, intSI_type_internal_node, intSI_type_node, long_integer_type_internal_node, long_integer_type_node, long_unsigned_type_internal_node, long_unsigned_type_node, opaque_p_V2SI_type_node, opaque_V2SF_type_node, opaque_V2SI_type_node, opaque_V4SI_type_node, pixel_type_node, pixel_V8HI_type_node, rs6000_common_init_builtins(), set_user_assembler_name(), spe_init_builtins(), TARGET_ALTIVEC, TARGET_SPE, uintHI_type_internal_node, uintQI_type_internal_node, uintSI_type_internal_node, unsigned_intHI_type_node, unsigned_intQI_type_node, unsigned_intSI_type_node, unsigned_V16QI_type_node, unsigned_V4SI_type_node, unsigned_V8HI_type_node, V16QI_type_node, V2SF_type_node, V2SI_type_node, V4HI_type_node, V4SF_type_node, V4SI_type_node, V8HI_type_node, void_type_internal_node, and void_type_node.
Definition at line 1092 of file rs6000.c.
References FIRST_PSEUDO_REGISTER, NUM_MACHINE_MODES, r, and rs6000_hard_regno_mode_ok().
Definition at line 9218 of file rs6000.c.
References ABI_V4, add_optab, DEFAULT_ABI, eq_optab, ge_optab, gt_optab, le_optab, lt_optab, ne_optab, neg_optab, sdiv_optab, set_conv_libfunc(), set_optab_libfunc(), sext_optab, sfix_optab, sfloat_optab, smul_optab, sqrt_optab, sub_optab, TARGET_IEEEQUAD, TARGET_POWER2, TARGET_POWERPC, TARGET_PPC_GPOPT, TARGET_SOFT_FLOAT, TARGET_XCOFF, TARGET_XL_COMPAT, trunc_optab, ufix_optab, ufloat_optab, and unord_optab.
| static struct machine_function * rs6000_init_machine_status | ( | void | ) | [static, read] |
| HOST_WIDE_INT rs6000_initial_elimination_offset | ( | int | from, | |
| int | to | |||
| ) |
Definition at line 19379 of file rs6000.c.
References ARG_POINTER_REGNUM, rs6000_stack::fixed_size, FRAME_GROWS_DOWNWARD, FRAME_POINTER_REGNUM, gcc_unreachable, HARD_FRAME_POINTER_REGNUM, rs6000_stack::parm_size, rs6000_stack::push_p, RS6000_PIC_OFFSET_TABLE_REGNUM, rs6000_stack_info(), STACK_POINTER_REGNUM, rs6000_stack::total_size, and rs6000_stack::vars_size.
Definition at line 17425 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, ABI_V4, DEFAULT_ABI, emit_library_call(), emit_move_insn(), FALSE, force_reg(), gcc_unreachable, GEN_INT, gen_reg_rtx(), gen_rtx_SYMBOL_REF, MEM_DEREF, MEM_PLUS, Pmode, rs6000_trampoline_size(), and TARGET_32BIT.
| static const char * rs6000_invalid_within_doloop | ( | rtx | insn | ) | [static] |
| static bool rs6000_is_costly_dependence | ( | rtx | insn, | |
| rtx | next, | |||
| rtx | link, | |||
| int | cost, | |||
| int | distance | |||
| ) | [static] |
Definition at line 16934 of file rs6000.c.
References all_deps_costly, is_load_insn(), is_store_insn(), max_dep_latency, no_dep_costly, REG_NOTE_KIND, store_to_load_dep_costly, and true_store_to_load_dep_costly.
Definition at line 19411 of file rs6000.c.
References opaque_p_V2SI_type_node, opaque_V2SF_type_node, opaque_V2SI_type_node, and opaque_V4SI_type_node.
| static int rs6000_issue_rate | ( | void | ) | [static] |
| int rs6000_legitimate_address | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| int | reg_ok_strict | |||
| ) |
Definition at line 3519 of file rs6000.c.
References ALTIVEC_VECTOR_MODE, AND, arg_pointer_rtx, GET_CODE, INTVAL, legitimate_constant_pool_address_p(), legitimate_indexed_address_p(), legitimate_indirect_address_p(), legitimate_lo_sum_address_p(), legitimate_small_data_p(), PLUS, REG, rs6000_legitimate_offset_address_p(), RS6000_SYMBOL_REF_TLS_P, SPE_VECTOR_MODE, TARGET_ALTIVEC, TARGET_E500_DOUBLE, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_POWERPC64, TARGET_UPDATE, virtual_stack_vars_rtx, and XEXP.
| bool rs6000_legitimate_offset_address_p | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| int | strict | |||
| ) |
Definition at line 2764 of file rs6000.c.
References GET_CODE, INT_REG_OK_FOR_BASE_P, INTVAL, legitimate_constant_pool_address_p(), offset, PLUS, REG, SPE_CONST_OFFSET_OK, TARGET_E500_DOUBLE, TARGET_POWERPC64, and XEXP.
| rtx rs6000_legitimize_address | ( | rtx | x, | |
| rtx oldx | ATTRIBUTE_UNUSED, | |||
| enum machine_mode | mode | |||
| ) |
Definition at line 2945 of file rs6000.c.
References ALTIVEC_VECTOR_MODE, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P, CONSTANT_P, constant_pool_expr_p(), create_TOC_reference(), emit_insn(), flag_pic, force_operand(), force_reg(), GEN_INT, gen_reg_rtx(), gen_rtx_LO_SUM, gen_rtx_PLUS, GET_CODE, GET_MODE_BITSIZE, GET_MODE_NUNITS, get_pool_constant(), INTVAL, MACHO_DYNAMIC_NO_PIC_P, NULL_RTX, PLUS, Pmode, REG, rs6000_legitimize_tls_address(), SPE_CONST_OFFSET_OK, SPE_VECTOR_MODE, SYMBOL_REF_TLS_MODEL, TARGET_32BIT, TARGET_E500_DOUBLE, TARGET_ELF, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_MACHO, TARGET_NO_TOC, TARGET_POWERPC64, TARGET_TOC, and XEXP.
| rtx rs6000_legitimize_reload_address | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| int | opnum, | |||
| int | type, | |||
| int ind_levels | ATTRIBUTE_UNUSED, | |||
| int * | win | |||
| ) |
Definition at line 3335 of file rs6000.c.
References ABI_DARWIN, ABI_V4, ALTIVEC_VECTOR_MODE, AND, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P, BASE_REG_CLASS, CONST, constant_pool_expr_p(), create_TOC_reference(), DEFAULT_ABI, FIRST_PSEUDO_REGISTER, flag_pic, GEN_INT, gen_rtx_CONST, gen_rtx_HIGH, gen_rtx_LO_SUM, gen_rtx_MINUS, gen_rtx_PLUS, GET_CODE, GET_MODE, GET_MODE_SIZE, get_pool_constant(), high, INTVAL, low, MACHO_DYNAMIC_NO_PIC_P, machopic_function_base_sym(), MINUS, NULL, NULL_RTX, offset, pic_offset_table_rtx, PLUS, Pmode, push_reload(), REG, REG_MODE_OK_FOR_BASE_P, REGNO, SPE_VECTOR_MODE, TARGET_ALTIVEC, TARGET_E500_DOUBLE, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_MACHO, TARGET_POWERPC64, TARGET_TOC, UNITS_PER_WORD, val, and XEXP.
Definition at line 3113 of file rs6000.c.
References CALL_INSN_FUNCTION_USAGE, const0_rtx, CONST_OR_PURE_CALL_P, dest, emit_call_insn(), emit_insn(), emit_libcall_block(), emit_move_insn(), end_sequence(), first, flag_pic, gen_addsi3(), gen_call_value(), gen_const_mem(), gen_reg_rtx(), gen_rtvec(), gen_rtx_EXPR_LIST, gen_rtx_INSN_LIST, gen_rtx_MEM(), gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_SET, gen_rtx_UNSPEC, get_insns(), insn, last, mem, Pmode, r3, REG_EQUAL, REG_LIBCALL, REG_NOTES, REG_RETVAL, rs6000_emit_move(), rs6000_got_sym(), RS6000_PIC_OFFSET_TABLE_REGNUM, rs6000_tls_get_addr(), start_sequence(), TARGET_64BIT, TLS_MODEL_GLOBAL_DYNAMIC, TLS_MODEL_LOCAL_DYNAMIC, TLS_MODEL_LOCAL_EXEC, tmp, tmp1, tmp2, and use_reg().
| rtx rs6000_libcall_value | ( | enum machine_mode | mode | ) |
Definition at line 19339 of file rs6000.c.
References ALTIVEC_ARG_RETURN, ALTIVEC_VECTOR_MODE, gcc_target::calls, COMPLEX_MODE_P, const0_rtx, DECIMAL_FLOAT_MODE_P, FP_ARG_RETURN, GEN_INT, gen_rtvec(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), GP_ARG_RETURN, rs6000_complex_function_value(), SCALAR_FLOAT_MODE_P, spe_build_register_parallel(), gcc_target::calls::split_complex_arg, TARGET_32BIT, TARGET_ALTIVEC, TARGET_ALTIVEC_ABI, TARGET_E500_DOUBLE, TARGET_FPRS, TARGET_HARD_FLOAT, and TARGET_POWERPC64.
Definition at line 17659 of file rs6000.c.
References force_reg(), gen_rtx_SYMBOL_REF, GET_CODE, get_identifier(), IDENTIFIER_POINTER, node, Pmode, and XSTR.
| static const char * rs6000_mangle_fundamental_type | ( | tree | type | ) | [static] |
Definition at line 17598 of file rs6000.c.
References bool_char_type_node, bool_int_type_node, bool_short_type_node, long_double_type_node, NULL, pixel_type_node, TARGET_ELF, TARGET_IEEEQUAD, TARGET_LONG_DOUBLE_128, and TYPE_MAIN_VARIANT.
Definition at line 13600 of file rs6000.c.
References const0_rtx, gen_rtx_EXPR_LIST, REG_MAYBE_DEAD, and REG_NOTES.
| int rs6000_memory_move_cost | ( | enum machine_mode | mode, | |
| enum reg_class | class, | |||
| int in | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 19094 of file rs6000.c.
References ALTIVEC_REGS, FIRST_ALTIVEC_REGNO, FLOAT_REGS, GENERAL_REGS, hard_regno_nregs, reg_classes_intersect_p(), and rs6000_register_move_cost().
| static rtx rs6000_mixed_function_arg | ( | enum machine_mode | mode, | |
| tree | type, | |||
| int | align_words | |||
| ) | [static] |
Definition at line 5100 of file rs6000.c.
References const0_rtx, GEN_INT, gen_rtvec_v(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), GP_ARG_MIN_REG, GP_ARG_NUM_REG, NULL_RTX, r, and rs6000_arg_size().
Definition at line 5551 of file rs6000.c.
References adjust_address_nv, emit_move_insn(), gcc_assert, gen_rtx_REG(), GET_MODE_SIZE, NULL_RTX, reg_mode, reload_completed, replace_equiv_address(), simplify_gen_subreg(), strict_memory_address_p(), TARGET_32BIT, and XEXP.
Definition at line 17722 of file rs6000.c.
References lookup_attribute(), TARGET_USE_MS_BITFIELD_LAYOUT, and TYPE_ATTRIBUTES.
| static bool rs6000_must_pass_in_stack | ( | enum machine_mode | mode, | |
| tree | type | |||
| ) | [static] |
Definition at line 4434 of file rs6000.c.
References ABI_AIX, DEFAULT_ABI, must_pass_in_stack_var_size(), must_pass_in_stack_var_size_or_pad(), and TARGET_64BIT.
Definition at line 3616 of file rs6000.c.
References GET_MODE, MEM_P, offsettable_address_p(), rs6000_legitimate_offset_address_p(), and XEXP.
Referenced by rs6000_split_multireg_move().
Definition at line 3064 of file rs6000.c.
References DOUBLE_INT_ASM_OP, fputs(), gcc_unreachable, and output_addr_const().
| static void rs6000_output_dwarf_dtprel | ( | FILE * | , | |
| static rtx rs6000_darwin64_record_arg (CUMULATIVE_ARGS | int, | |||
| static rtx rs6000_emit_vector_compare (enum | rtx | |||
| ) | [static] |
Definition at line 10253 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, ABI_V4, ASM_OUTPUT_INTERNAL_LABEL_PREFIX, assemble_name(), DEFAULT_ABI, DOT_SYMBOLS, gcc_unreachable, putc(), RS6000_OUTPUT_BASENAME, and TARGET_AIX.
| static void rs6000_output_function_epilogue | ( | FILE * | file, | |
| HOST_WIDE_INT size | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 15327 of file rs6000.c.
References ABI_AIX, addr(), ASM_OUTPUT_INTERNAL_LABEL_PREFIX, ASM_OUTPUT_LABEL, assemble_name(), assemble_string(), rs6000_stack::cr_save_p, current_function_decl, current_function_is_thunk, debug_rtx_list(), DECL_ARGUMENTS, DECL_INCOMING_RTL, DECL_RTL, DEFAULT_ABI, emit_note(), end_sequence(), FALSE, rs6000_stack::first_fp_reg_save, first_reg_to_save(), flag_inhibit_size_directive, fprintf(), fputs(), frame_pointer_needed, gcc_unreachable, GET_CODE, get_insns(), get_last_insn(), GET_MODE, GET_MODE_SIZE, HAVE_epilogue, INSN_ADDRESSES_NEW, LABEL_P, rs6000_stack::lr_save_p, mode, NEXT_INSN, NOTE_INSN_DELETED, NOTE_INSN_DELETED_LABEL, NOTE_LINE_NUMBER, NOTE_P, NULL, optimize, optimize_size, PREV_INSN, prev_nonnote_insn(), rs6000_stack::push_p, putc(), REG, rs6000_emit_epilogue(), RS6000_OUTPUT_BASENAME, rs6000_output_function_entry(), rs6000_stack_info(), rs6000_traceback, SCALAR_FLOAT_MODE_P, start_sequence(), strcmp(), strlen(), TARGET_AIX, TARGET_DEBUG_STACK, TARGET_ELF, TREE_CHAIN, UNITS_PER_WORD, XEXP, and XSTR.
| static void rs6000_output_function_prologue | ( | FILE * | file, | |
| HOST_WIDE_INT size | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 14813 of file rs6000.c.
References addr(), debug_rtx_list(), debug_stack_info(), emit_note(), end_sequence(), FALSE, rs6000_stack::first_fp_reg_save, FP_SAVE_INLINE, fprintf(), fputs(), get_insns(), HAVE_prologue, INSN_ADDRESSES_NEW, NEXT_INSN, NOTE_INSN_DELETED, RESTORE_FP_PREFIX, RESTORE_FP_SUFFIX, rs6000_emit_prologue(), rs6000_stack_info(), SAVE_FP_PREFIX, SAVE_FP_SUFFIX, start_sequence(), TARGET_DEBUG_STACK, TARGET_POWER, and TARGET_POWERPC.
| const char* rs6000_output_load_multiple | ( | rtx | operands[3] | ) |
Definition at line 9577 of file rs6000.c.
References GEN_INT, gen_rtx_REG(), output_asm_insn(), refers_to_regno_p(), REGNO, words, and XVECLEN.
| static void rs6000_output_mi_thunk | ( | FILE * | file, | |
| tree thunk_fndecl | ATTRIBUTE_UNUSED, | |||
| HOST_WIDE_INT | delta, | |||
| HOST_WIDE_INT | vcall_offset, | |||
| tree | function | |||
| ) | [static] |
Definition at line 15651 of file rs6000.c.
References aggregate_value_p(), assemble_external(), const0_rtx, DECL_RTL, emit_barrier(), emit_call_insn(), emit_insn(), emit_move_insn(), emit_note(), epilogue_completed, final_end_function(), final_start_function(), FUNCTION_MODE, gen_adddi3(), gen_addsi3(), GEN_INT, gen_rtvec(), gen_rtx_CALL, gen_rtx_MEM(), gen_rtx_PARALLEL, gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_RETURN, gen_rtx_USE, get_insns(), insn_locators_initialize(), LINK_REGISTER_REGNUM, MACHOPIC_INDIRECT, machopic_indirect_call_target(), no_new_pseudos, NOTE_INSN_PROLOGUE_END, Pmode, reload_completed, reset_block_changes(), shorten_branches(), SIBLING_CALL_P, TARGET_32BIT, tmp, TREE_TYPE, TREE_USED, and XEXP.
| static void rs6000_output_mi_thunk | ( | FILE * | , | |
| tree | , | |||
| HOST_WIDE_INT | , | |||
| HOST_WIDE_INT | , | |||
| tree | ||||
| ) | [static] |
Definition at line 15889 of file rs6000.c.
References assemble_name(), RS6000_OUTPUT_BASENAME, VTABLE_NAME_P, and XSTR.
| void rs6000_override_options | ( | const char * | default_cpu | ) |
Definition at line 1113 of file rs6000.c.
References ABI_AIX, ABI_DARWIN, ABI_V4, abort, align_functions, align_jumps, align_jumps_max_skip, align_loops, align_loops_max_skip, gcc_target::asm_out::aligned_op, all_deps_costly, ARRAY_SIZE, ASM_GENERATE_INTERNAL_LABEL, gcc_target::asm_out, atoi(), base, BYTES_BIG_ENDIAN, gcc_target::calls, darwin_one_byte_bool, DEFAULT_ABI, gcc_target::asm_out::asm_int_op::di, DRAFT_V4_STRUCT_RET, error(), gcc_unreachable, i, ibm_extended_format, init_machine_status, MASK_AIX_STRUCT_RET, MASK_ALIGN_NATURAL, MASK_ALTIVEC, MASK_MFCRF, MASK_MULTIPLE, MASK_NEW_MNEMONICS, MASK_POWER, MASK_POWER2, MASK_POWERPC, MASK_POWERPC64, MASK_PPC_GFXOPT, MASK_PPC_GPOPT, MASK_SOFT_FLOAT, MASK_STRICT_ALIGN, MASK_STRING, memcpy, rs6000_cpu_select::name, new_alias_set(), no_dep_costly, NULL, optimize_size, OS_MISSING_ALTIVEC, OS_MISSING_POWERPC64, POWER_MASKS, POWERPC_MASKS, PROCESSOR_COMMON, PROCESSOR_DEFAULT, PROCESSOR_DEFAULT64, PROCESSOR_MPCCORE, PROCESSOR_POWER, PROCESSOR_POWER4, PROCESSOR_POWER5, PROCESSOR_POWERPC, PROCESSOR_POWERPC64, PROCESSOR_PPC403, PROCESSOR_PPC405, PROCESSOR_PPC440, PROCESSOR_PPC601, PROCESSOR_PPC603, PROCESSOR_PPC604, PROCESSOR_PPC604e, PROCESSOR_PPC620, PROCESSOR_PPC630, PROCESSOR_PPC7400, PROCESSOR_PPC7450, PROCESSOR_PPC750, PROCESSOR_PPC8540, PROCESSOR_RIOS1, PROCESSOR_RIOS2, PROCESSOR_RS64A, ptr, REAL_MODE_FORMAT, rs6000_alignment_flags, rs6000_cpu, rs6000_default_long_calls, RS6000_DEFAULT_LONG_DOUBLE_SIZE, rs6000_explicit_options, rs6000_init_hard_regno_mode_ok(), rs6000_init_machine_status(), rs6000_isel, rs6000_longcall_switch, rs6000_parse_abi_options(), rs6000_parse_alignment_option(), rs6000_parse_float_gprs_option(), rs6000_parse_tls_size_option(), rs6000_parse_yes_no_option(), rs6000_reg_names, rs6000_sched_restricted_insns_priority, rs6000_spe, rs6000_sr_alias_set, rs6000_traceback, rs6000_traceback_name, rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, sched_finish_none, sched_finish_pad_groups, sched_finish_regroup_exact, rs6000_cpu_select::set_arch_p, rs6000_cpu_select::set_tune_p, size, gcc_target::calls::split_complex_arg, store_to_load_dep_costly, strcmp(), rs6000_cpu_select::string, strncmp(), strtol(), SUB3TARGET_OVERRIDE_OPTIONS, SUBSUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_OVERRIDE_OPTIONS, tail, TARGET_64BIT, TARGET_ALTIVEC, TARGET_ALTIVEC_VRSAVE, TARGET_E500, TARGET_ELF, target_flags, target_flags_explicit, TARGET_IEEEQUAD, TARGET_LONG_DOUBLE_128, TARGET_MULTIPLE, TARGET_NO_FP_IN_TOC, TARGET_POWERPC64, TARGET_REGNAMES, TARGET_STRING, TARGET_TOC, true_store_to_load_dep_costly, gcc_target::asm_out::unaligned_op, and warning.
| static unsigned int rs6000_parm_start | ( | enum machine_mode | mode, | |
| tree | type, | |||
| unsigned int | nwords | |||
| ) | [static] |
Definition at line 4543 of file rs6000.c.
References ABI_V4, align, DEFAULT_ABI, function_arg_boundary(), and PARM_BOUNDARY.
Referenced by function_arg(), function_arg_advance(), and rs6000_arg_partial_bytes().
| static void rs6000_parse_yes_no_option | ( | const char * | name, | |
| const char * | value, | |||
| int * | flag | |||
| ) | [static] |
| static bool rs6000_pass_by_reference | ( | CUMULATIVE_ARGS *cum | ATTRIBUTE_UNUSED, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| bool named | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 5494 of file rs6000.c.
References ABI_V4, AGGREGATE_TYPE_P, ALTIVEC_VECTOR_MODE, DEFAULT_ABI, fprintf(), int_size_in_bytes(), TARGET_32BIT, TARGET_ALTIVEC_ABI, TARGET_DEBUG_ARG, TARGET_IEEEQUAD, TREE_CODE, and warning.
| static int rs6000_ra_ever_killed | ( | void | ) | [static] |
Definition at line 13549 of file rs6000.c.
References CALL_P, current_function_is_thunk, find_regno_note(), gen_rtx_REG(), get_insns(), insn, INSN_P, LINK_REGISTER_REGNUM, NEXT_INSN, NULL_RTX, Pmode, pop_topmost_sequence(), prologue_epilogue_contains(), push_topmost_sequence(), REG_INC, set_of(), SIBLING_CALL_P, and top.
| int rs6000_register_move_cost | ( | enum machine_mode | mode, | |
| enum reg_class | from, | |||
| enum reg_class | to | |||
| ) |
Definition at line 19056 of file rs6000.c.
References ALTIVEC_REGS, CR_REGS, FLOAT_REGS, GENERAL_REGS, HARD_REGNO_NREGS, hard_regno_nregs, reg_classes_intersect_p(), rs6000_memory_move_cost(), and rs6000_register_move_cost().
Referenced by rs6000_memory_move_cost(), and rs6000_register_move_cost().
Definition at line 13471 of file rs6000.c.
References ABI_AIX, cfun, copy_to_reg(), DEFAULT_ABI, flag_pic, gen_rtx_MEM(), get_hard_reg_initial_val(), LINK_REGISTER_REGNUM, memory_address(), plus_constant, Pmode, and RETURN_ADDRESS_OFFSET.
Definition at line 4312 of file rs6000.c.
References ABI_V4, AGGREGATE_TYPE_P, ALTIVEC_ARG_MIN_REG, ALTIVEC_VECTOR_MODE, DEFAULT_ABI, FP_ARG_MIN_REG, int_size_in_bytes(), rs6000_darwin64_record_arg(), TARGET_32BIT, TARGET_ALTIVEC_ABI, TARGET_IEEEQUAD, TREE_CODE, TYPE_MODE, warning, and CUMULATIVE_ARGS::words.
| enum rtx_code rs6000_reverse_condition | ( | enum machine_mode | mode, | |
| enum rtx_code | code | |||
| ) |
Definition at line 11107 of file rs6000.c.
References flag_finite_math_only, reverse_condition(), and reverse_condition_maybe_unordered().
Definition at line 18687 of file rs6000.c.
References ABS, AND, and64_2_operand(), COMPARE, CONST, const0_rtx, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, COSTS_N_INSNS, processor_costs::ddiv, DIV, processor_costs::divdi, processor_costs::divsi, processor_costs::dmul, EQ, exact_log2, FIX, FLOAT, FLOAT_MODE_P, processor_costs::fp, GET_CODE, GET_MODE, GT, INTVAL, LT, mask64_operand(), mask_operand(), MEM, MINUS, MOD, processor_costs::muldi, processor_costs::mulsi, processor_costs::mulsi_const, processor_costs::mulsi_const9, NOT, optimize_size, PLUS, Pmode, ROTATE, processor_costs::sdiv, SET, SIGN_EXTEND, TARGET_FPRS, TARGET_HARD_FLOAT, TARGET_PPC_GFXOPT, TRUNCATE, XEXP, XINT, and XOR.
| static bool rs6000_scalar_mode_supported_p | ( | enum machine_mode | mode | ) | [static] |
Definition at line 19489 of file rs6000.c.
References DECIMAL_FLOAT_MODE_P, and default_scalar_mode_supported_p().
Definition at line 17365 of file rs6000.c.
References current_sched_info, fprintf(), sched_info::next_tail, pad_groups(), sched_info::prev_head, print_rtl(), redefine_groups(), reload_completed, sched_finish_none, and sched_finish_pad_groups.
| enum reg_class rs6000_secondary_reload_class | ( | enum reg_class | class, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED, | |||
| rtx | in | |||
| ) |
Definition at line 9977 of file rs6000.c.
References ABI_DARWIN, ALTIVEC_REGNO_P, ALTIVEC_REGS, BASE_REGS, CONST, CR0_REGS, CR_REGNO_P, CR_REGS, DEFAULT_ABI, FIRST_PSEUDO_REGISTER, FLOAT_REGS, FP_REGNO_P, GENERAL_REGS, GET_CODE, INT_REGNO_P, MACHOPIC_INDIRECT, NO_REGS, NON_SPECIAL_REGS, REG, REGNO, TARGET_ELF, TARGET_MACHO, and true_regnum().
Definition at line 17641 of file rs6000.c.
References darwin_set_default_type_attributes(), get_identifier(), NULL_TREE, rs6000_default_long_calls, TREE_CODE, tree_cons, and TYPE_ATTRIBUTES.
| static rtx rs6000_spe_function_arg | ( | CUMULATIVE_ARGS * | cum, | |
| enum machine_mode | mode, | |||
| tree | type | |||
| ) | [static] |
Definition at line 4860 of file rs6000.c.
References const0_rtx, GEN_INT, gen_rtvec(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), GP_ARG_MAX_REG, NULL_RTX, rs6000_arg_size(), spe_build_register_parallel(), and TARGET_E500_DOUBLE.
| unsigned int rs6000_special_round_type_align | ( | tree | type, | |
| unsigned int | computed, | |||
| unsigned int | specified | |||
| ) |
Definition at line 2608 of file rs6000.c.
References align, error_mark_node, MAX, NULL, TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_FIELDS, and TYPE_MODE.
| void rs6000_split_atomic_op | ( | enum rtx_code | code, | |
| rtx | mem, | |||
| rtx | val, | |||
| rtx | before, | |||
| rtx | after, | |||
| rtx | scratch | |||
| ) |
Definition at line 12386 of file rs6000.c.
References AND, cond, const0_rtx, copy_rtx(), CR0_REGNO, emit_insn(), emit_label(), emit_load_locked(), emit_store_conditional(), emit_unlikely_jump(), gen_label_rtx(), gen_rtvec(), gen_rtx_AND, gen_rtx_fmt_ee(), gen_rtx_LABEL_REF, gen_rtx_NE, gen_rtx_NOT, gen_rtx_REG(), gen_rtx_SET, gen_rtx_UNSPEC, GET_MODE, mode, NOT, and NULL_RTX.
Definition at line 12426 of file rs6000.c.
References cond, const0_rtx, CR0_REGNO, emit_insn(), emit_label(), emit_load_locked(), emit_move_insn(), emit_store_conditional(), emit_unlikely_jump(), gen_label_rtx(), gen_rtx_COMPARE, gen_rtx_LABEL_REF, gen_rtx_NE, gen_rtx_REG(), gen_rtx_SET, GET_MODE, mode, and XEXP.
| void rs6000_split_compare_and_swapqhi | ( | rtx | dest, | |
| rtx | mask, | |||
| rtx | oldval, | |||
| rtx | newval, | |||
| rtx | mem, | |||
| rtx | scratch | |||
| ) |
Definition at line 12529 of file rs6000.c.
References cond, const0_rtx, CR0_REGNO, emit_insn(), emit_label(), emit_load_locked(), emit_store_conditional(), emit_unlikely_jump(), gen_iorsi3(), gen_label_rtx(), gen_rtvec(), gen_rtx_AND, gen_rtx_COMPARE, gen_rtx_LABEL_REF, gen_rtx_NE, gen_rtx_NOT, gen_rtx_REG(), gen_rtx_SET, gen_rtx_UNSPEC, and XEXP.
Definition at line 12460 of file rs6000.c.
References cond, const0_rtx, CR0_REGNO, emit_insn(), emit_label(), emit_load_locked(), emit_move_insn(), emit_store_conditional(), emit_unlikely_jump(), gen_label_rtx(), gen_rtx_LABEL_REF, gen_rtx_NE, gen_rtx_REG(), GET_MODE, mode, and XEXP.
Definition at line 12577 of file rs6000.c.
References ALTIVEC_REGNO_P, emit_insn(), FP_REGNO_P, gcc_assert, gen_adddi3(), gen_addsi3(), GEN_INT, gen_rtx_REG(), gen_rtx_SET, GET_CODE, GET_MODE, GET_MODE_SIZE, hard_regno_nregs, INT_REGNO_P, MEM, MEM_P, mode, PLUS, Pmode, reg_mode, REG_P, REGNO, replace_equiv_address(), rs6000_offsettable_memref_p(), simplify_gen_subreg(), TARGET_32BIT, TARGET_E500_DOUBLE, TARGET_POWERPC64, TARGET_UPDATE, word_mode, and XEXP.
| static rs6000_stack_t* rs6000_stack_info | ( | void | ) | [static] |
Definition at line 7614 of file rs6000.c.
References rs6000_stack::abi, ABI_AIX, ABI_AIX_NODESC, ABI_DARWIN, ABI_NONE, ABI_STACK_BOUNDARY, ABI_V4, abort, rs6000_stack::altivec_padding_size, rs6000_stack::altivec_save_offset, rs6000_stack::altivec_size, BITS_PER_UNIT, rs6000_stack::calls_p, cfun, compute_vrsave_mask(), CR2_REGNO, CR3_REGNO, CR4_REGNO, rs6000_stack::cr_save_offset, rs6000_stack::cr_save_p, rs6000_stack::cr_size, current_function_calls_alloca, current_function_calls_eh_return, current_function_is_leaf, current_function_outgoing_args_size, current_function_profile, current_function_uses_pic_offset_table, DEFAULT_ABI, EH_RETURN_DATA_REGNO, rs6000_stack::ehrd_offset, rs6000_stack::first_altivec_reg_save, first_altivec_reg_to_save(), rs6000_stack::first_fp_reg_save, first_fp_reg_to_save(), rs6000_stack::first_gp_reg_save, first_reg_to_save(), rs6000_stack::fixed_size, flag_pic, FP_SAVE_INLINE, rs6000_stack::fp_save_offset, rs6000_stack::fp_size, frame_pointer_needed, get_frame_size(), get_pool_size(), rs6000_stack::gp_save_offset, rs6000_stack::gp_size, i, info, INVALID_REGNUM, LAST_ALTIVEC_REGNO, LINK_REGISTER_REGNUM, rs6000_stack::lr_save_offset, rs6000_stack::lr_save_p, rs6000_stack::lr_size, NO_DEBUG, rs6000_stack::parm_size, rs6000_stack::push_p, rs6000_stack::reg_size, regs_ever_live, RS6000_ALIGN, RS6000_PIC_OFFSET_TABLE_REGNUM, rs6000_ra_ever_killed(), RS6000_SAVE_AREA, RS6000_VARARGS_AREA, rs6000_stack::save_size, TARGET_32BIT, TARGET_ALTIVEC_ABI, TARGET_MINIMAL_TOC, TARGET_POWERPC64, TARGET_RELOCATABLE, TARGET_TOC, rs6000_stack::toc_save_offset, rs6000_stack::toc_save_p, rs6000_stack::toc_size, rs6000_stack::total_size, UNITS_PER_WORD, rs6000_stack::varargs_size, rs6000_stack::vars_size, rs6000_stack::vrsave_mask, rs6000_stack::vrsave_save_offset, rs6000_stack::vrsave_size, and write_symbols.
Referenced by debug_stack_info(), direct_return(), rs6000_emit_eh_reg_restore(), rs6000_emit_epilogue(), rs6000_emit_prologue(), rs6000_initial_elimination_offset(), rs6000_output_function_epilogue(), and rs6000_output_function_prologue().
Definition at line 19532 of file rs6000.c.
References ABI_V4, DEFAULT_ABI, default_external_stack_protect_fail(), default_hidden_stack_protect_fail(), flag_pic, and TARGET_SECURE_PLT.
Definition at line 3297 of file rs6000.c.
References for_each_rtx(), rs6000_tls_symbol_ref_1(), and TARGET_HAVE_TLS.
Referenced by rs6000_emit_move().
| int rs6000_trampoline_size | ( | void | ) |
Definition at line 17398 of file rs6000.c.
References ABI_AIX, ABI_AIX_NODESC, ABI_DARWIN, ABI_V4, abort, DEFAULT_ABI, gcc_unreachable, ret, and TARGET_32BIT.
| static bool rs6000_use_blocks_for_constant_p | ( | enum machine_mode | mode, | |
| rtx | x | |||
| ) | [static] |
| static int rs6000_use_sched_lookahead | ( | void | ) | [static] |
Definition at line 5804 of file rs6000.c.
References ABI_V4, build2, build3, build_int_cst(), build_va_arg_indirect_ref(), cfun, const0_rtx, current_function_args_info, DEFAULT_ABI, expand_expr(), EXPAND_NORMAL, FP_ARG_MIN_REG, FP_ARG_NUM_REG, FP_ARG_V4_MAX_REG, fpr, fprintf(), GP_ARG_MIN_REG, GP_ARG_NUM_REG, HOST_WIDE_INT_PRINT_DEC, make_tree(), MIN, NULL_TREE, std_expand_builtin_va_start(), TARGET_DEBUG_ARG, TREE_CHAIN, TREE_SIDE_EFFECTS, TREE_TYPE, TYPE_FIELDS, UNITS_PER_WORD, va_list_type_node, virtual_incoming_args_rtx, virtual_stack_vars_rtx, and words.
| static int rs6000_variable_issue | ( | FILE *stream | ATTRIBUTE_UNUSED, | |
| int verbose | ATTRIBUTE_UNUSED, | |||
| rtx | insn, | |||
| int | more | |||
| ) | [static] |
Definition at line 16512 of file rs6000.c.
References GET_CODE, is_cracked_insn(), is_microcoded_insn(), PATTERN, and USE.
| static bool rs6000_vector_mode_supported_p | ( | enum machine_mode | mode | ) | [static] |
Definition at line 19499 of file rs6000.c.
References ALTIVEC_VECTOR_MODE, SPE_VECTOR_MODE, TARGET_ALTIVEC, and TARGET_SPE.
| static void setup_incoming_varargs | ( | CUMULATIVE_ARGS * | cum, | |
| enum machine_mode mode | , | |||
| tree type | , | |||
| int *pretend_size | ATTRIBUTE_UNUSED, | |||
| int | no_rtl | |||
| ) | [static] |
Definition at line 5594 of file rs6000.c.
References ABI_V4, assign_stack_local(), BITS_PER_WORD, gcc_target::calls, cfun, const0_rtx, cr1, CR1_REGNO, DEFAULT_ABI, emit_jump_insn(), emit_label(), emit_move_insn(), FP_ARG_MIN_REG, FP_ARG_V4_MAX_REG, function_arg_advance(), gcc_assert, gen_label_rtx(), gen_rtx_IF_THEN_ELSE, gen_rtx_LABEL_REF, gen_rtx_MEM(), gen_rtx_NE, gen_rtx_REG(), gen_rtx_SET, GET_CODE, GET_MODE_ALIGNMENT, get_varargs_alias_set(), GP_ARG_MIN_REG, GP_ARG_NUM_REG, INTVAL, lab, mem, MEM, MEM_NOTRAP_P, gcc_target::calls::must_pass_in_stack, NULL_RTX, offset, pc_rtx, PLUS, plus_constant, rs6000_arg_size(), rs6000_move_block_from_reg(), set_mem_alias_set(), set_mem_align(), TARGET_32BIT, TARGET_FPRS, TARGET_HARD_FLOAT, TYPE_MODE, UNITS_PER_FP_WORD, va_list_gpr_counter_field, virtual_incoming_args_rtx, virtual_stack_vars_rtx, CUMULATIVE_ARGS::words, and XEXP.
| int small_data_operand | ( | rtx op | ATTRIBUTE_UNUSED, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 2634 of file rs6000.c.
References ABI_V4, CONST, DEFAULT_ABI, g_switch_value, GET_CODE, INTVAL, PLUS, SDATA_DATA, SDATA_NONE, SYMBOL_REF_SMALL_P, and XEXP.
| static rtx spe_build_register_parallel | ( | enum machine_mode | mode, | |
| int | gregno | |||
| ) | [static] |
Definition at line 4835 of file rs6000.c.
References const0_rtx, gcc_unreachable, GEN_INT, gen_rtvec(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), and r3.
Definition at line 7601 of file rs6000.c.
References ARRAY_SIZE, builtin_description::code, const0_rtx, copy_to_mode_reg(), d, DECL_FUNCTION_CODE, emit_insn(), error(), error_mark_node, expand_normal(), GEN_FCN, gen_reg_rtx(), GET_MODE, builtin_description::icode, NULL_RTX, rs6000_expand_binop_builtin(), rs6000_expand_unop_builtin(), SPE_BUILTIN_EVSPLATFI, SPE_BUILTIN_EVSPLATI, SPE_BUILTIN_EVSTDD, SPE_BUILTIN_EVSTDDX, SPE_BUILTIN_EVSTDH, SPE_BUILTIN_EVSTDHX, SPE_BUILTIN_EVSTDW, SPE_BUILTIN_EVSTDWX, SPE_BUILTIN_EVSTWHE, SPE_BUILTIN_EVSTWHEX, SPE_BUILTIN_EVSTWHO, SPE_BUILTIN_EVSTWHOX, SPE_BUILTIN_EVSTWWE, SPE_BUILTIN_EVSTWWEX, SPE_BUILTIN_EVSTWWO, SPE_BUILTIN_EVSTWWOX, SPE_BUILTIN_MFSPEFSCR, SPE_BUILTIN_MTSPEFSCR, spe_expand_evsel_builtin(), spe_expand_predicate_builtin(), spe_expand_stv_builtin(), TREE_CHAIN, TREE_CODE, TREE_INT_CST_LOW, TREE_OPERAND, and TREE_VALUE.
Definition at line 7842 of file rs6000.c.
References const0_rtx, copy_to_mode_reg(), emit_insn(), error_mark_node, expand_normal(), gcc_assert, GEN_FCN, gen_reg_rtx(), GET_MODE, scratch, TREE_CHAIN, and TREE_VALUE.
Definition at line 7734 of file rs6000.c.
References const0_rtx, copy_to_mode_reg(), emit_insn(), emit_move_insn(), EQ, error(), error_mark_node, expand_normal(), gcc_assert, GEN_FCN, gen_reg_rtx(), gen_rtx_fmt_ee(), GET_MODE, GT, LT, scratch, tmp, TREE_CHAIN, TREE_CODE, TREE_INT_CST_LOW, and TREE_VALUE.
Definition at line 6982 of file rs6000.c.
References const0_rtx, copy_to_mode_reg(), emit_insn(), error_mark_node, expand_normal(), GEN_FCN, NULL_RTX, TREE_CHAIN, and TREE_VALUE.
Definition at line 13297 of file rs6000.c.
References current_function_calls_eh_return, current_function_calls_setjmp, current_function_has_nonlocal_goto, GET_CODE, get_insns(), GET_MODE, insn, INSN_P, insns, mode, NEXT_INSN, NULL_RTX, PATTERN, SET, SET_SRC, SPE_VECTOR_MODE, and TARGET_E500_DOUBLE.
Definition at line 8134 of file rs6000.c.
References ARRAY_SIZE, build_decl, build_function_type(), build_pointer_type(), char_type_node, builtin_description::code, d, def_builtin, enable_mask_for_builtins(), gcc_unreachable, get_identifier(), builtin_description::icode, integer_type_node, builtin_description::mask, builtin_description::name, NULL_TREE, opaque_p_V2SI_type_node, opaque_V2SF_type_node, opaque_V2SI_type_node, short_unsigned_type_node, signed_char_type_node, SPE_BUILTIN_EVABS, SPE_BUILTIN_EVADDW, SPE_BUILTIN_EVCMPEQ, SPE_BUILTIN_EVFSTSTLT, SPE_BUILTIN_EVLDD, SPE_BUILTIN_EVLDDX, SPE_BUILTIN_EVLDH, SPE_BUILTIN_EVLDHX, SPE_BUILTIN_EVLDW, SPE_BUILTIN_EVLDWX, SPE_BUILTIN_EVLHHESPLAT, SPE_BUILTIN_EVLHHESPLATX, SPE_BUILTIN_EVLHHOSSPLAT, SPE_BUILTIN_EVLHHOSSPLATX, SPE_BUILTIN_EVLHHOUSPLAT, SPE_BUILTIN_EVLHHOUSPLATX, SPE_BUILTIN_EVLWHE, SPE_BUILTIN_EVLWHEX, SPE_BUILTIN_EVLWHOS, SPE_BUILTIN_EVLWHOSX, SPE_BUILTIN_EVLWHOU, SPE_BUILTIN_EVLWHOUX, SPE_BUILTIN_EVLWHSPLAT, SPE_BUILTIN_EVLWHSPLATX, SPE_BUILTIN_EVLWWSPLAT, SPE_BUILTIN_EVLWWSPLATX, SPE_BUILTIN_EVSEL_CMPGTS, SPE_BUILTIN_EVSEL_FSTSTEQ, SPE_BUILTIN_EVSPLATFI, SPE_BUILTIN_EVSPLATI, SPE_BUILTIN_EVSTDD, SPE_BUILTIN_EVSTDDX, SPE_BUILTIN_EVSTDH, SPE_BUILTIN_EVSTDHX, SPE_BUILTIN_EVSTDW, SPE_BUILTIN_EVSTDWX, SPE_BUILTIN_EVSTWHE, SPE_BUILTIN_EVSTWHEX, SPE_BUILTIN_EVSTWHO, SPE_BUILTIN_EVSTWHOX, SPE_BUILTIN_EVSTWWE, SPE_BUILTIN_EVSTWWEX, SPE_BUILTIN_EVSTWWO, SPE_BUILTIN_EVSTWWOX, SPE_BUILTIN_EVSUBFUSIAAW, SPE_BUILTIN_EVXOR, SPE_BUILTIN_MFSPEFSCR, SPE_BUILTIN_MTSPEFSCR, target_flags, tree_cons, unsigned_type_node, void_list_node, and void_type_node.
Definition at line 14053 of file rs6000.c.
References BYTES_BIG_ENDIAN, copy_rtx(), gcc_assert, GEN_INT, gen_rtvec(), gen_rtx_PARALLEL, gen_rtx_REG(), GET_CODE, GET_MODE, INTVAL, MEM, offset, PLUS, PUT_MODE, REG, REGNO, replace_rtx(), RTX_FRAME_RELATED_P, SET, SET_DEST, SET_SRC, and XEXP.
| static unsigned toc_hash_function | ( | const void * | hash_entry | ) | [static] |
Definition at line 15854 of file rs6000.c.
References toc_hash_struct::key, toc_hash_struct::key_mode, and rs6000_hash_constant().
| void validate_condition_mode | ( | enum rtx_code | code, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 9634 of file rs6000.c.
References abort, EQ, flag_finite_math_only, gcc_assert, GE, GET_MODE_CLASS, GET_RTX_CLASS, GT, LE, LT, MODE_CC, NE, RTX_COMM_COMPARE, and RTX_COMPARE.
Definition at line 2148 of file rs6000.c.
References const_vector_elt_as_int(), EASY_VECTOR_15, EASY_VECTOR_15_ADD_SELF, GET_MODE, GET_MODE_BITSIZE, GET_MODE_INNER, GET_MODE_MASK, GET_MODE_NUNITS, mode, and val.
Referenced by easy_altivec_constant(), and gen_easy_altivec_constant().
struct builtin_description bdesc_1arg[] [static] |
struct builtin_description bdesc_2arg[] [static] |
struct builtin_description bdesc_2arg_spe[] [static] |
Initial value:
{
{ 0, CODE_FOR_spe_evlddx, "__builtin_spe_evlddx", SPE_BUILTIN_EVLDDX },
{ 0, CODE_FOR_spe_evldwx, "__builtin_spe_evldwx", SPE_BUILTIN_EVLDWX },
{ 0, CODE_FOR_spe_evldhx, "__builtin_spe_evldhx", SPE_BUILTIN_EVLDHX },
{ 0, CODE_FOR_spe_evlwhex, "__builtin_spe_evlwhex", SPE_BUILTIN_EVLWHEX },
{ 0, CODE_FOR_spe_evlwhoux, "__builtin_spe_evlwhoux", SPE_BUILTIN_EVLWHOUX },
{ 0, CODE_FOR_spe_evlwhosx, "__builtin_spe_evlwhosx", SPE_BUILTIN_EVLWHOSX },
{ 0, CODE_FOR_spe_evlwwsplatx, "__builtin_spe_evlwwsplatx", SPE_BUILTIN_EVLWWSPLATX },
{ 0, CODE_FOR_spe_evlwhsplatx, "__builtin_spe_evlwhsplatx", SPE_BUILTIN_EVLWHSPLATX },
{ 0, CODE_FOR_spe_evlhhesplatx, "__builtin_spe_evlhhesplatx", SPE_BUILTIN_EVLHHESPLATX },
{ 0, CODE_FOR_spe_evlhhousplatx, "__builtin_spe_evlhhousplatx", SPE_BUILTIN_EVLHHOUSPLATX },
{ 0, CODE_FOR_spe_evlhhossplatx, "__builtin_spe_evlhhossplatx", SPE_BUILTIN_EVLHHOSSPLATX },
{ 0, CODE_FOR_spe_evldd, "__builtin_spe_evldd", SPE_BUILTIN_EVLDD },
{ 0, CODE_FOR_spe_evldw, "__builtin_spe_evldw", SPE_BUILTIN_EVLDW },
{ 0, CODE_FOR_spe_evldh, "__builtin_spe_evldh", SPE_BUILTIN_EVLDH },
{ 0, CODE_FOR_spe_evlwhe, "__builtin_spe_evlwhe", SPE_BUILTIN_EVLWHE },
{ 0, CODE_FOR_spe_evlwhou, "__builtin_spe_evlwhou", SPE_BUILTIN_EVLWHOU },
{ 0, CODE_FOR_spe_evlwhos, "__builtin_spe_evlwhos", SPE_BUILTIN_EVLWHOS },
{ 0, CODE_FOR_spe_evlwwsplat, "__builtin_spe_evlwwsplat", SPE_BUILTIN_EVLWWSPLAT },
{ 0, CODE_FOR_spe_evlwhsplat, "__builtin_spe_evlwhsplat", SPE_BUILTIN_EVLWHSPLAT },
{ 0, CODE_FOR_spe_evlhhesplat, "__builtin_spe_evlhhesplat", SPE_BUILTIN_EVLHHESPLAT },
{ 0, CODE_FOR_spe_evlhhousplat, "__builtin_spe_evlhhousplat", SPE_BUILTIN_EVLHHOUSPLAT },
{ 0, CODE_FOR_spe_evlhhossplat, "__builtin_spe_evlhhossplat", SPE_BUILTIN_EVLHHOSSPLAT }
}
struct builtin_description bdesc_3arg[] [static] |
struct builtin_description bdesc_abs[] [static] |
Initial value:
{
{ MASK_ALTIVEC, CODE_FOR_absv4si2, "__builtin_altivec_abs_v4si", ALTIVEC_BUILTIN_ABS_V4SI },
{ MASK_ALTIVEC, CODE_FOR_absv8hi2, "__builtin_altivec_abs_v8hi", ALTIVEC_BUILTIN_ABS_V8HI },
{ MASK_ALTIVEC, CODE_FOR_absv4sf2, "__builtin_altivec_abs_v4sf", ALTIVEC_BUILTIN_ABS_V4SF },
{ MASK_ALTIVEC, CODE_FOR_absv16qi2, "__builtin_altivec_abs_v16qi", ALTIVEC_BUILTIN_ABS_V16QI },
{ MASK_ALTIVEC, CODE_FOR_altivec_abss_v4si, "__builtin_altivec_abss_v4si", ALTIVEC_BUILTIN_ABSS_V4SI },
{ MASK_ALTIVEC, CODE_FOR_altivec_abss_v8hi, "__builtin_altivec_abss_v8hi", ALTIVEC_BUILTIN_ABSS_V8HI },
{ MASK_ALTIVEC, CODE_FOR_altivec_abss_v16qi, "__builtin_altivec_abss_v16qi", ALTIVEC_BUILTIN_ABSS_V16QI }
}
Initial value:
{
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v4sf, "*vcmpbfp.", "__builtin_altivec_vcmpbfp_p", ALTIVEC_BUILTIN_VCMPBFP_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v4sf, "*vcmpeqfp.", "__builtin_altivec_vcmpeqfp_p", ALTIVEC_BUILTIN_VCMPEQFP_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v4sf, "*vcmpgefp.", "__builtin_altivec_vcmpgefp_p", ALTIVEC_BUILTIN_VCMPGEFP_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v4sf, "*vcmpgtfp.", "__builtin_altivec_vcmpgtfp_p", ALTIVEC_BUILTIN_VCMPGTFP_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v4si, "*vcmpequw.", "__builtin_altivec_vcmpequw_p", ALTIVEC_BUILTIN_VCMPEQUW_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v4si, "*vcmpgtsw.", "__builtin_altivec_vcmpgtsw_p", ALTIVEC_BUILTIN_VCMPGTSW_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v4si, "*vcmpgtuw.", "__builtin_altivec_vcmpgtuw_p", ALTIVEC_BUILTIN_VCMPGTUW_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v8hi, "*vcmpgtuh.", "__builtin_altivec_vcmpgtuh_p", ALTIVEC_BUILTIN_VCMPGTUH_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v8hi, "*vcmpgtsh.", "__builtin_altivec_vcmpgtsh_p", ALTIVEC_BUILTIN_VCMPGTSH_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v8hi, "*vcmpequh.", "__builtin_altivec_vcmpequh_p", ALTIVEC_BUILTIN_VCMPEQUH_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v16qi, "*vcmpequb.", "__builtin_altivec_vcmpequb_p", ALTIVEC_BUILTIN_VCMPEQUB_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v16qi, "*vcmpgtsb.", "__builtin_altivec_vcmpgtsb_p", ALTIVEC_BUILTIN_VCMPGTSB_P },
{ MASK_ALTIVEC, CODE_FOR_altivec_predicate_v16qi, "*vcmpgtub.", "__builtin_altivec_vcmpgtub_p", ALTIVEC_BUILTIN_VCMPGTUB_P },
{ MASK_ALTIVEC, 0, NULL, "__builtin_vec_vcmpeq_p", ALTIVEC_BUILTIN_VCMPEQ_P },
{ MASK_ALTIVEC, 0, NULL, "__builtin_vec_vcmpgt_p", ALTIVEC_BUILTIN_VCMPGT_P },
{ MASK_ALTIVEC, 0, NULL, "__builtin_vec_vcmpge_p", ALTIVEC_BUILTIN_VCMPGE_P }
}
struct builtin_description bdesc_dst[] [static] |
Initial value:
{
{ MASK_ALTIVEC, CODE_FOR_altivec_dst, "__builtin_altivec_dst", ALTIVEC_BUILTIN_DST },
{ MASK_ALTIVEC, CODE_FOR_altivec_dstt, "__builtin_altivec_dstt", ALTIVEC_BUILTIN_DSTT },
{ MASK_ALTIVEC, CODE_FOR_altivec_dstst, "__builtin_altivec_dstst", ALTIVEC_BUILTIN_DSTST },
{ MASK_ALTIVEC, CODE_FOR_altivec_dststt, "__builtin_altivec_dststt", ALTIVEC_BUILTIN_DSTSTT },
{ MASK_ALTIVEC, CODE_FOR_nothing, "__builtin_vec_dst", ALTIVEC_BUILTIN_VEC_DST },
{ MASK_ALTIVEC, CODE_FOR_nothing, "__builtin_vec_dstt", ALTIVEC_BUILTIN_VEC_DSTT },
{ MASK_ALTIVEC, CODE_FOR_nothing, "__builtin_vec_dstst", ALTIVEC_BUILTIN_VEC_DSTST },
{ MASK_ALTIVEC, CODE_FOR_nothing, "__builtin_vec_dststt", ALTIVEC_BUILTIN_VEC_DSTSTT }
}
struct builtin_description bdesc_spe_evsel[] [static] |
Initial value:
{
{ 0, CODE_FOR_spe_evcmpgts, "__builtin_spe_evsel_gts", SPE_BUILTIN_EVSEL_CMPGTS },
{ 0, CODE_FOR_spe_evcmpgtu, "__builtin_spe_evsel_gtu", SPE_BUILTIN_EVSEL_CMPGTU },
{ 0, CODE_FOR_spe_evcmplts, "__builtin_spe_evsel_lts", SPE_BUILTIN_EVSEL_CMPLTS },
{ 0, CODE_FOR_spe_evcmpltu, "__builtin_spe_evsel_ltu", SPE_BUILTIN_EVSEL_CMPLTU },
{ 0, CODE_FOR_spe_evcmpeq, "__builtin_spe_evsel_eq", SPE_BUILTIN_EVSEL_CMPEQ },
{ 0, CODE_FOR_spe_evfscmpgt, "__builtin_spe_evsel_fsgt", SPE_BUILTIN_EVSEL_FSCMPGT },
{ 0, CODE_FOR_spe_evfscmplt, "__builtin_spe_evsel_fslt", SPE_BUILTIN_EVSEL_FSCMPLT },
{ 0, CODE_FOR_spe_evfscmpeq, "__builtin_spe_evsel_fseq", SPE_BUILTIN_EVSEL_FSCMPEQ },
{ 0, CODE_FOR_spe_evfststgt, "__builtin_spe_evsel_fststgt", SPE_BUILTIN_EVSEL_FSTSTGT },
{ 0, CODE_FOR_spe_evfststlt, "__builtin_spe_evsel_fststlt", SPE_BUILTIN_EVSEL_FSTSTLT },
{ 0, CODE_FOR_spe_evfststeq, "__builtin_spe_evsel_fststeq", SPE_BUILTIN_EVSEL_FSTSTEQ },
}
struct builtin_description bdesc_spe_predicates[] [static] |
Initial value:
{
{ 0, CODE_FOR_spe_evcmpeq, "__builtin_spe_evcmpeq", SPE_BUILTIN_EVCMPEQ },
{ 0, CODE_FOR_spe_evcmpgts, "__builtin_spe_evcmpgts", SPE_BUILTIN_EVCMPGTS },
{ 0, CODE_FOR_spe_evcmpgtu, "__builtin_spe_evcmpgtu", SPE_BUILTIN_EVCMPGTU },
{ 0, CODE_FOR_spe_evcmplts, "__builtin_spe_evcmplts", SPE_BUILTIN_EVCMPLTS },
{ 0, CODE_FOR_spe_evcmpltu, "__builtin_spe_evcmpltu", SPE_BUILTIN_EVCMPLTU },
{ 0, CODE_FOR_spe_evfscmpeq, "__builtin_spe_evfscmpeq", SPE_BUILTIN_EVFSCMPEQ },
{ 0, CODE_FOR_spe_evfscmpgt, "__builtin_spe_evfscmpgt", SPE_BUILTIN_EVFSCMPGT },
{ 0, CODE_FOR_spe_evfscmplt, "__builtin_spe_evfscmplt", SPE_BUILTIN_EVFSCMPLT },
{ 0, CODE_FOR_spe_evfststeq, "__builtin_spe_evfststeq", SPE_BUILTIN_EVFSTSTEQ },
{ 0, CODE_FOR_spe_evfststgt, "__builtin_spe_evfststgt", SPE_BUILTIN_EVFSTSTGT },
{ 0, CODE_FOR_spe_evfststlt, "__builtin_spe_evfststlt", SPE_BUILTIN_EVFSTSTLT },
}
struct processor_costs mpccore_cost [static] |
Initial value:
{
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (6),
COSTS_N_INSNS (6),
COSTS_N_INSNS (4),
COSTS_N_INSNS (5),
COSTS_N_INSNS (10),
COSTS_N_INSNS (17),
}
struct processor_costs power4_cost [static] |
Initial value:
{
COSTS_N_INSNS (3),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (4),
COSTS_N_INSNS (18),
COSTS_N_INSNS (34),
COSTS_N_INSNS (3),
COSTS_N_INSNS (3),
COSTS_N_INSNS (17),
COSTS_N_INSNS (17),
}
struct processor_costs ppc403_cost [static] |
Initial value:
{
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (33),
COSTS_N_INSNS (33),
COSTS_N_INSNS (11),
COSTS_N_INSNS (11),
COSTS_N_INSNS (11),
COSTS_N_INSNS (11),
}
struct processor_costs ppc405_cost [static] |
Initial value:
{
COSTS_N_INSNS (5),
COSTS_N_INSNS (4),
COSTS_N_INSNS (3),
COSTS_N_INSNS (5),
COSTS_N_INSNS (35),
COSTS_N_INSNS (35),
COSTS_N_INSNS (11),
COSTS_N_INSNS (11),
COSTS_N_INSNS (11),
COSTS_N_INSNS (11),
}
struct processor_costs ppc440_cost [static] |
Initial value:
{
COSTS_N_INSNS (3),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (3),
COSTS_N_INSNS (34),
COSTS_N_INSNS (34),
COSTS_N_INSNS (5),
COSTS_N_INSNS (5),
COSTS_N_INSNS (19),
COSTS_N_INSNS (33),
}
struct processor_costs ppc601_cost [static] |
Initial value:
{
COSTS_N_INSNS (5),
COSTS_N_INSNS (5),
COSTS_N_INSNS (5),
COSTS_N_INSNS (5),
COSTS_N_INSNS (36),
COSTS_N_INSNS (36),
COSTS_N_INSNS (4),
COSTS_N_INSNS (5),
COSTS_N_INSNS (17),
COSTS_N_INSNS (31),
}
struct processor_costs ppc603_cost [static] |
Initial value:
{
COSTS_N_INSNS (5),
COSTS_N_INSNS (3),
COSTS_N_INSNS (2),
COSTS_N_INSNS (5),
COSTS_N_INSNS (37),
COSTS_N_INSNS (37),
COSTS_N_INSNS (3),
COSTS_N_INSNS (4),
COSTS_N_INSNS (18),
COSTS_N_INSNS (33),
}
struct processor_costs ppc604_cost [static] |
Initial value:
{
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (20),
COSTS_N_INSNS (20),
COSTS_N_INSNS (3),
COSTS_N_INSNS (3),
COSTS_N_INSNS (18),
COSTS_N_INSNS (32),
}
struct processor_costs ppc604e_cost [static] |
Initial value:
{
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (20),
COSTS_N_INSNS (20),
COSTS_N_INSNS (3),
COSTS_N_INSNS (3),
COSTS_N_INSNS (18),
COSTS_N_INSNS (32),
}
struct processor_costs ppc620_cost [static] |
Initial value:
{
COSTS_N_INSNS (5),
COSTS_N_INSNS (4),
COSTS_N_INSNS (3),
COSTS_N_INSNS (7),
COSTS_N_INSNS (21),
COSTS_N_INSNS (37),
COSTS_N_INSNS (3),
COSTS_N_INSNS (3),
COSTS_N_INSNS (18),
COSTS_N_INSNS (32),
}
struct processor_costs ppc630_cost [static] |
Initial value:
{
COSTS_N_INSNS (5),
COSTS_N_INSNS (4),
COSTS_N_INSNS (3),
COSTS_N_INSNS (7),
COSTS_N_INSNS (21),
COSTS_N_INSNS (37),
COSTS_N_INSNS (3),
COSTS_N_INSNS (3),
COSTS_N_INSNS (17),
COSTS_N_INSNS (21),
}
struct processor_costs ppc7450_cost [static] |
Initial value:
{
COSTS_N_INSNS (4),
COSTS_N_INSNS (3),
COSTS_N_INSNS (3),
COSTS_N_INSNS (4),
COSTS_N_INSNS (23),
COSTS_N_INSNS (23),
COSTS_N_INSNS (5),
COSTS_N_INSNS (5),
COSTS_N_INSNS (21),
COSTS_N_INSNS (35),
}
struct processor_costs ppc750_cost [static] |
Initial value:
{
COSTS_N_INSNS (5),
COSTS_N_INSNS (3),
COSTS_N_INSNS (2),
COSTS_N_INSNS (5),
COSTS_N_INSNS (17),
COSTS_N_INSNS (17),
COSTS_N_INSNS (3),
COSTS_N_INSNS (3),
COSTS_N_INSNS (17),
COSTS_N_INSNS (31),
}
struct processor_costs ppc8540_cost [static] |
Initial value:
{
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (19),
COSTS_N_INSNS (19),
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (29),
COSTS_N_INSNS (29),
}
struct processor_costs rios1_cost [static] |
Initial value:
{
COSTS_N_INSNS (5),
COSTS_N_INSNS (4),
COSTS_N_INSNS (3),
COSTS_N_INSNS (5),
COSTS_N_INSNS (19),
COSTS_N_INSNS (19),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (19),
COSTS_N_INSNS (19),
}
struct processor_costs rios2_cost [static] |
Initial value:
{
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (13),
COSTS_N_INSNS (13),
COSTS_N_INSNS (2),
COSTS_N_INSNS (2),
COSTS_N_INSNS (17),
COSTS_N_INSNS (17),
}
struct attribute_spec rs6000_attribute_table[] [read] |
Initial value:
{
{ "altivec", 1, 1, false, true, false, rs6000_handle_altivec_attribute },
{ "longcall", 0, 0, false, true, true, rs6000_handle_longcall_attribute },
{ "shortcall", 0, 0, false, true, true, rs6000_handle_longcall_attribute },
{ "ms_struct", 0, 0, false, false, false, rs6000_handle_struct_attribute },
{ "gcc_struct", 0, 0, false, false, false, rs6000_handle_struct_attribute },
{ NULL, 0, 0, false, false, false, NULL }
}
| enum processor_type rs6000_cpu |
Definition at line 258 of file rs6000.c.
Referenced by rs6000_handle_option(), and rs6000_override_options().
struct processor_costs rs64a_cost [static] |
Initial value:
{
COSTS_N_INSNS (20),
COSTS_N_INSNS (12),
COSTS_N_INSNS (8),
COSTS_N_INSNS (34),
COSTS_N_INSNS (65),
COSTS_N_INSNS (67),
COSTS_N_INSNS (4),
COSTS_N_INSNS (4),
COSTS_N_INSNS (31),
COSTS_N_INSNS (31),
}
struct processor_costs size32_cost [static] |
Initial value:
{
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
}
struct processor_costs size64_cost [static] |
Initial value:
{
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
COSTS_N_INSNS (1),
}
| struct gcc_target targetm = TARGET_INITIALIZER |
| int toc_initialized |
| char toc_label_name[10] |
1.5.6