osprey-gcc-4.2.0/gcc/config/frv/frv.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "rtl.h"
#include "tree.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "real.h"
#include "insn-config.h"
#include "conditions.h"
#include "insn-flags.h"
#include "output.h"
#include "insn-attr.h"
#include "flags.h"
#include "recog.h"
#include "reload.h"
#include "expr.h"
#include "obstack.h"
#include "except.h"
#include "function.h"
#include "optabs.h"
#include "toplev.h"
#include "basic-block.h"
#include "tm_p.h"
#include "ggc.h"
#include <ctype.h>
#include "target.h"
#include "target-def.h"
#include "targhooks.h"
#include "integrate.h"
#include "langhooks.h"
#include "gt-frv.h"

Include dependency graph for frv.c:

Go to the source code of this file.

Data Types

type  frv_tmp_reg_struct
type  frv_frame_accessor_t
type  frv_ifcvt_t
type  builtin_description

Defines

#define FRV_INLINE   inline
#define NUM_NOP_PATTERNS   3
#define NTH_UNIT(GROUP, N)   frv_unit_codes[(GROUP) + (N) * 2 + 1]
#define UNIT_NUMBER(UNIT)   (((UNIT) - 1) / 2)
#define PACKING_FLAG_P(INSN)   (GET_MODE (INSN) == TImode)
#define SET_PACKING_FLAG(INSN)   PUT_MODE (INSN, TImode)
#define CLEAR_PACKING_FLAG(INSN)   PUT_MODE (INSN, VOIDmode)
#define FOR_EACH_REGNO(REG, X)
#define REGSTATE_CC_MASK   0x07
#define REGSTATE_MODIFIED   0x08
#define REGSTATE_IF_TRUE   0x10
#define REGSTATE_IF_FALSE   0x20
#define REGSTATE_IF_EITHER   (REGSTATE_IF_TRUE | REGSTATE_IF_FALSE)
#define MASK_DEFAULT_ALLOC_CC   MASK_ALLOC_CC
#define TARGET_ASM_FUNCTION_PROLOGUE   frv_function_prologue
#define TARGET_ASM_FUNCTION_EPILOGUE   frv_function_epilogue
#define TARGET_ASM_INTEGER   frv_assemble_integer
#define TARGET_DEFAULT_TARGET_FLAGS
#define TARGET_HANDLE_OPTION   frv_handle_option
#define TARGET_INIT_BUILTINS   frv_init_builtins
#define TARGET_EXPAND_BUILTIN   frv_expand_builtin
#define TARGET_INIT_LIBFUNCS   frv_init_libfuncs
#define TARGET_IN_SMALL_DATA_P   frv_in_small_data_p
#define TARGET_RTX_COSTS   frv_rtx_costs
#define TARGET_ASM_CONSTRUCTOR   frv_asm_out_constructor
#define TARGET_ASM_DESTRUCTOR   frv_asm_out_destructor
#define TARGET_ASM_OUTPUT_MI_THUNK   frv_asm_output_mi_thunk
#define TARGET_ASM_CAN_OUTPUT_MI_THUNK   default_can_output_mi_thunk_no_vcall
#define TARGET_SCHED_ISSUE_RATE   frv_issue_rate
#define TARGET_FUNCTION_OK_FOR_SIBCALL   frv_function_ok_for_sibcall
#define TARGET_CANNOT_FORCE_CONST_MEM   frv_cannot_force_const_mem
#define TARGET_HAVE_TLS   HAVE_AS_TLS
#define TARGET_STRUCT_VALUE_RTX   frv_struct_value_rtx
#define TARGET_MUST_PASS_IN_STACK   frv_must_pass_in_stack
#define TARGET_PASS_BY_REFERENCE   hook_pass_by_reference_must_pass_in_stack
#define TARGET_ARG_PARTIAL_BYTES   frv_arg_partial_bytes
#define TARGET_EXPAND_BUILTIN_SAVEREGS   frv_expand_builtin_saveregs
#define TARGET_SETUP_INCOMING_VARARGS   frv_setup_incoming_varargs
#define TARGET_MACHINE_DEPENDENT_REORG   frv_reorg
#define FRV_SYMBOL_REF_TLS_P(RTX)   (GET_CODE (RTX) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (RTX) != 0)
#define MAX_MOVE_REG   4
#define TOTAL_MOVE_REG   8
#define FRV_JUMP_LIKELY   2
#define FRV_JUMP_NOT_LIKELY   0
#define HIGH_COST   40
#define MEDIUM_COST   3
#define LOW_COST   1
#define def_builtin(name, type, code)   lang_hooks.builtin_function ((name), (type), (code), BUILT_IN_MD, NULL, NULL)
#define UNARY(RET, T1)   build_function_type (RET, tree_cons (NULL_TREE, T1, endlink))
#define BINARY(RET, T1, T2)
#define TRINARY(RET, T1, T2, T3)
#define QUAD(RET, T1, T2, T3, T4)
#define TLS_BIAS   (2048 - 16)

Typedefs

typedef struct frv_tmp_reg_struct frv_tmp_reg_t
typedef unsigned char regstate_t

Enumerations

enum  frv_insn_group {
  GROUP_I, GROUP_FM, GROUP_B, GROUP_C,
  NUM_GROUPS, GROUP_I, GROUP_FM, GROUP_B,
  GROUP_C, NUM_GROUPS
}
enum  frv_stack_op { FRV_LOAD, FRV_STORE, FRV_LOAD, FRV_STORE }

Functions/Subroutines

static GTY (())
static bool frv_handle_option (size_t, const char *, int)
static int frv_default_flags_for_cpu (void)
static int frv_string_begins_with (tree, const char *)
static FRV_INLINE bool frv_small_data_reloc_p (rtx, int)
static void frv_print_operand_memory_reference_reg (FILE *, rtx)
static void frv_print_operand_memory_reference (FILE *, rtx, int)
static int frv_print_operand_jump_hint (rtx)
static const char * comparison_string (enum rtx_code, rtx)
static FRV_INLINE int frv_regno_ok_for_base_p (int, int)
static rtx single_set_pattern (rtx)
static int frv_function_contains_far_jump (void)
static rtx frv_alloc_temp_reg (frv_tmp_reg_t *, enum reg_class, enum machine_mode, int, int)
static rtx frv_frame_offset_rtx (int)
static rtx frv_frame_mem (enum machine_mode, rtx, int)
static rtx frv_dwarf_store (rtx, int)
static void frv_frame_insn (rtx, rtx)
static void frv_frame_access (frv_frame_accessor_t *, rtx, int)
static void frv_frame_access_multi (frv_frame_accessor_t *, frv_stack_t *, int)
static void frv_frame_access_standard_regs (enum frv_stack_op, frv_stack_t *)
static struct machine_functionfrv_init_machine_status (void)
static rtx frv_int_to_acc (enum insn_code, int, rtx)
static enum machine_mode frv_matching_accg_mode (enum machine_mode)
static rtx frv_read_argument (tree *)
static rtx frv_read_iacc_argument (enum machine_mode, tree *)
static int frv_check_constant_argument (enum insn_code, int, rtx)
static rtx frv_legitimize_target (enum insn_code, rtx)
static rtx frv_legitimize_argument (enum insn_code, int, rtx)
static rtx frv_legitimize_tls_address (rtx, enum tls_model)
static rtx frv_expand_set_builtin (enum insn_code, tree, rtx)
static rtx frv_expand_unop_builtin (enum insn_code, tree, rtx)
static rtx frv_expand_binop_builtin (enum insn_code, tree, rtx)
static rtx frv_expand_cut_builtin (enum insn_code, tree, rtx)
static rtx frv_expand_binopimm_builtin (enum insn_code, tree, rtx)
static rtx frv_expand_voidbinop_builtin (enum insn_code, tree)
static rtx frv_expand_int_void2arg (enum insn_code, tree)
static rtx frv_expand_prefetches (enum insn_code, tree)
static rtx frv_expand_voidtriop_builtin (enum insn_code, tree)
static rtx frv_expand_voidaccop_builtin (enum insn_code, tree)
static rtx frv_expand_mclracc_builtin (tree)
static rtx frv_expand_mrdacc_builtin (enum insn_code, tree)
static rtx frv_expand_mwtacc_builtin (enum insn_code, tree)
static rtx frv_expand_noargs_builtin (enum insn_code)
static void frv_split_iacc_move (rtx, rtx)
static rtx frv_emit_comparison (enum rtx_code, rtx, rtx)
static int frv_clear_registers_used (rtx *, void *)
static void frv_ifcvt_add_insn (rtx, rtx, int)
static rtx frv_ifcvt_rewrite_mem (rtx, enum machine_mode, rtx)
static rtx frv_ifcvt_load_value (rtx, rtx)
static int frv_acc_group_1 (rtx *, void *)
static unsigned int frv_insn_unit (rtx)
static bool frv_issues_to_branch_unit_p (rtx)
static int frv_cond_flags (rtx)
static bool frv_regstate_conflict_p (regstate_t, regstate_t)
static int frv_registers_conflict_p_1 (rtx *, void *)
static bool frv_registers_conflict_p (rtx)
static void frv_registers_update_1 (rtx, rtx, void *)
static void frv_registers_update (rtx)
static void frv_start_packet (void)
static void frv_start_packet_block (void)
static void frv_finish_packet (void(*)(void))
static bool frv_pack_insn_p (rtx)
static void frv_add_insn_to_packet (rtx)
static void frv_insert_nop_in_packet (rtx)
static bool frv_for_each_packet (void(*)(void))
static bool frv_sort_insn_group_1 (enum frv_insn_group, unsigned int, unsigned int, unsigned int, unsigned int, state_t)
static int frv_compare_insns (const void *, const void *)
static void frv_sort_insn_group (enum frv_insn_group)
static void frv_reorder_packet (void)
static void frv_fill_unused_units (enum frv_insn_group)
static void frv_align_label (void)
static void frv_reorg_packet (void)
static void frv_register_nop (rtx)
static void frv_reorg (void)
static void frv_pack_insns (void)
static void frv_function_prologue (FILE *, HOST_WIDE_INT)
static void frv_function_epilogue (FILE *, HOST_WIDE_INT)
static bool frv_assemble_integer (rtx, unsigned, int)
static void frv_init_builtins (void)
static rtx frv_expand_builtin (tree, rtx, rtx, enum machine_mode, int)
static void frv_init_libfuncs (void)
static bool frv_in_small_data_p (tree)
static void frv_asm_output_mi_thunk (FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT, tree)
static void frv_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode, tree, int *, int)
static rtx frv_expand_builtin_saveregs (void)
static bool frv_rtx_costs (rtx, int, int, int *)
static void frv_asm_out_constructor (rtx, int)
static void frv_asm_out_destructor (rtx, int)
static bool frv_function_symbol_referenced_p (rtx)
static bool frv_cannot_force_const_mem (rtx)
static const char * unspec_got_name (int)
static void frv_output_const_unspec (FILE *, const struct frv_unspec *)
static bool frv_function_ok_for_sibcall (tree, tree)
static rtx frv_struct_value_rtx (tree, int)
static bool frv_must_pass_in_stack (enum machine_mode mode, tree type)
static int frv_arg_partial_bytes (CUMULATIVE_ARGS *, enum machine_mode, tree, bool)
static void frv_output_dwarf_dtprel (FILE *, int, rtx)
bool frv_const_unspec_p (rtx x, struct frv_unspec *unspec)
static bool frv_cannot_force_const_mem (rtx x ATTRIBUTE_UNUSED)
static bool frv_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
void frv_override_options (void)
void frv_optimization_options (int level, int size ATTRIBUTE_UNUSED)
void frv_conditional_register_usage (void)
frv_stack_tfrv_stack_info (void)
void frv_debug_stack (frv_stack_t *info)
static void frv_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
void frv_expand_prologue (void)
static void frv_function_epilogue (FILE *file ATTRIBUTE_UNUSED, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
void frv_expand_epilogue (bool emit_return)
static void frv_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, HOST_WIDE_INT delta, HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED, tree function)
int frv_frame_pointer_required (void)
int frv_initial_elimination_offset (int from, int to)
static void frv_setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type ATTRIBUTE_UNUSED, int *pretend_size, int second_time)
void frv_expand_builtin_va_start (tree valist, rtx nextarg)
int frv_expand_block_move (rtx operands[])
int frv_expand_block_clear (rtx operands[])
const char * frv_asm_output_opcode (FILE *f, const char *ptr)
void frv_final_prescan_insn (rtx insn, rtx *opvec, int noperands ATTRIBUTE_UNUSED)
rtx frv_dynamic_chain_address (rtx frame)
rtx frv_return_addr_rtx (int count, rtx frame)
rtx frv_index_memory (rtx memref, enum machine_mode mode, int index)
void frv_print_operand_address (FILE *stream, rtx x)
void frv_print_operand (FILE *file, rtx x, int code)
void frv_init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype, rtx libname, tree fndecl, int incoming)
int frv_function_arg_boundary (enum machine_mode mode ATTRIBUTE_UNUSED, tree type ATTRIBUTE_UNUSED)
rtx frv_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type ATTRIBUTE_UNUSED, int named, int incoming ATTRIBUTE_UNUSED)
void frv_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type ATTRIBUTE_UNUSED, int named)
static int frv_arg_partial_bytes (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type ATTRIBUTE_UNUSED, bool named ATTRIBUTE_UNUSED)
int frv_legitimate_address_p (enum machine_mode mode, rtx x, int strict_p, int condexec_p, int allow_double_reg_p)
static rtx gen_inlined_tls_plt (rtx addr)
static rtx gen_tlsmoff (rtx addr, rtx reg)
rtx frv_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED)
static bool frv_local_funcdesc_p (rtx fnx)
rtx frv_gen_GPsym2reg (rtx dest, rtx src)
rtx frv_find_base_term (rtx x)
int frv_legitimate_memory_operand (rtx op, enum machine_mode mode, int condexec_p)
void frv_expand_fdpic_call (rtx *operands, bool ret_value, bool sibcall)
int condexec_memory_operand (rtx op, enum machine_mode mode)
int direct_return_p (void)
void frv_emit_move (enum machine_mode mode, rtx dest, rtx src)
int frv_emit_movsi (rtx dest, rtx src)
const char * output_move_single (rtx operands[], rtx insn)
const char * output_move_double (rtx operands[], rtx insn)
const char * output_condmove_single (rtx operands[], rtx insn)
int frv_emit_cond_branch (enum rtx_code test, rtx label)
int frv_emit_scc (enum rtx_code test, rtx target)
rtx frv_split_scc (rtx dest, rtx test, rtx cc_reg, rtx cr_reg, HOST_WIDE_INT value)
int frv_emit_cond_move (rtx dest, rtx test_rtx, rtx src1, rtx src2)
rtx frv_split_cond_move (rtx operands[])
void frv_split_double_load (rtx dest, rtx source)
void frv_split_double_store (rtx dest, rtx source)
rtx frv_split_minmax (rtx operands[])
rtx frv_split_abs (rtx operands[])
void frv_ifcvt_init_extra_fields (ce_if_block_t *ce_info ATTRIBUTE_UNUSED)
void frv_ifcvt_modify_tests (ce_if_block_t *ce_info, rtx *p_true, rtx *p_false)
void frv_ifcvt_modify_multiple_tests (ce_if_block_t *ce_info, basic_block bb, rtx *p_true, rtx *p_false)
static rtx frv_ifcvt_load_value (rtx value, rtx insn ATTRIBUTE_UNUSED)
rtx frv_ifcvt_modify_insn (ce_if_block_t *ce_info, rtx pattern, rtx insn)
void frv_ifcvt_modify_final (ce_if_block_t *ce_info ATTRIBUTE_UNUSED)
void frv_ifcvt_modify_cancel (ce_if_block_t *ce_info ATTRIBUTE_UNUSED)
int frv_trampoline_size (void)
void frv_initialize_trampoline (rtx addr, rtx fnaddr, rtx static_chain)
enum reg_class frv_secondary_reload_class (enum reg_class class, enum machine_mode mode ATTRIBUTE_UNUSED, rtx x, int in_p ATTRIBUTE_UNUSED)
int frv_class_likely_spilled_p (enum reg_class class)
int frv_adjust_field_align (tree field, int computed)
int frv_hard_regno_mode_ok (int regno, enum machine_mode mode)
int frv_hard_regno_nregs (int regno, enum machine_mode mode)
int frv_class_max_nregs (enum reg_class class, enum machine_mode mode)
int frv_legitimate_constant_p (rtx x)
enum machine_mode frv_select_cc_mode (enum rtx_code code, rtx x, rtx y)
int frv_register_move_cost (enum reg_class from, enum reg_class to)
static bool frv_assemble_integer (rtx value, unsigned int size, int aligned_p)
int frv_issue_rate (void)
static int frv_acc_group_1 (rtx *x, void *data ATTRIBUTE_UNUSED)
int frv_acc_group (rtx insn)
static void frv_registers_update_1 (rtx x, rtx pat ATTRIBUTE_UNUSED, void *data)
static bool frv_same_doubleword_p (const struct frv_io *io1, const struct frv_io *io2)
static bool frv_io_fixed_order_p (const struct frv_io *io1, const struct frv_io *io2)
static void frv_io_union (struct frv_io *x, const struct frv_io *y)
static void frv_extract_membar (struct frv_io *io, rtx insn)
static void frv_io_check_address (rtx x, rtx pat ATTRIBUTE_UNUSED, void *data)
static void frv_io_handle_set (rtx x, rtx pat ATTRIBUTE_UNUSED, void *data)
static int frv_io_handle_use_1 (rtx *x, void *data)
static void frv_io_handle_use (rtx *x, void *data)
static void frv_optimize_membar_local (basic_block bb, struct frv_io *next_io, rtx *last_membar)
static void frv_optimize_membar_global (basic_block bb, struct frv_io *first_io, rtx membar)
static void frv_optimize_membar (void)
static rtx frv_io_address_cookie (rtx address)
rtx frv_matching_accg_for_acc (rtx acc)
static rtx frv_volatile_memref (enum machine_mode mode, rtx arg)
static rtx frv_expand_load_builtin (enum insn_code icode, enum machine_mode target_mode, tree arglist, rtx target)
static rtx frv_expand_store_builtin (enum insn_code icode, tree arglist)
static rtx frv_expand_mdpackh_builtin (tree arglist, rtx target)
static rtx frv_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, int ignore ATTRIBUTE_UNUSED)
static bool frv_rtx_costs (rtx x, int code ATTRIBUTE_UNUSED, int outer_code ATTRIBUTE_UNUSED, int *total)
static void frv_asm_out_constructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
static void frv_asm_out_destructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
static rtx frv_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED, int incoming ATTRIBUTE_UNUSED)

Variables

static const char *const frv_unit_names []
static enum frv_insn_group frv_unit_groups [ARRAY_SIZE(frv_unit_names)]
static int frv_unit_codes [ARRAY_SIZE(frv_unit_names)]
static unsigned int frv_type_to_unit [TYPE_UNKNOWN+1]
rtx frv_compare_op0
rtx frv_compare_op1
static frv_ifcvt_t frv_ifcvt
enum reg_class regno_reg_class [FIRST_PSEUDO_REGISTER]
enum reg_class reg_class_from_letter [256]
static frv_stack_tfrv_stack_cache = (frv_stack_t *)0
frv_cpu_t frv_cpu_type = CPU_TYPE
static int frv_insn_packing_flag
static rtxfrv_insn_operands
type {
   state_t   dfa_state
   regstate_t   regstate [FIRST_PSEUDO_REGISTER]
   type {
      rtx   mem
      regstate_t   cond
   }   mems [2]
   unsigned int   num_mems
   unsigned int   issue_rate
   type frv_packet_group {
      unsigned int   num_insns
      rtx   insns [ARRAY_SIZE(frv_unit_codes)]
      rtx   sorted [ARRAY_SIZE(frv_unit_codes)]
      rtx   nop
   }   groups [NUM_GROUPS]
   rtx   insns [ARRAY_SIZE(frv_unit_codes)]
   unsigned int   num_insns
frv_packet
static unsigned int frv_packet_address
static struct builtin_description bdesc_set []
static struct builtin_description bdesc_1arg []
static struct builtin_description bdesc_2arg []
static struct builtin_description bdesc_int_void2arg []
static struct builtin_description bdesc_prefetches []
static struct builtin_description bdesc_cut []
static struct builtin_description bdesc_2argimm []
static struct builtin_description bdesc_void2arg []
static struct builtin_description bdesc_void3arg []
static struct builtin_description bdesc_voidacc []
static struct builtin_description bdesc_loads []
static struct builtin_description bdesc_stores []


Define Documentation

#define BINARY ( RET,
T1,
T2   ) 

#define CLEAR_PACKING_FLAG ( INSN   )     PUT_MODE (INSN, VOIDmode)

Definition at line 133 of file frv.c.

#define def_builtin ( name,
type,
code   )     lang_hooks.builtin_function ((name), (type), (code), BUILT_IN_MD, NULL, NULL)

Definition at line 8150 of file frv.c.

#define FOR_EACH_REGNO ( REG,
X   ) 

Value:

for (REG = REGNO (X);             \
       REG < REGNO (X) + HARD_REGNO_NREGS (REGNO (X), GET_MODE (X));  \
       REG++)

Definition at line 136 of file frv.c.

#define FRV_INLINE   inline

Definition at line 56 of file frv.c.

#define FRV_JUMP_LIKELY   2

Definition at line 2646 of file frv.c.

#define FRV_JUMP_NOT_LIKELY   0

Definition at line 2647 of file frv.c.

#define FRV_SYMBOL_REF_TLS_P ( RTX   )     (GET_CODE (RTX) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (RTX) != 0)

#define HIGH_COST   40

Definition at line 6804 of file frv.c.

#define LOW_COST   1

Definition at line 6806 of file frv.c.

#define MASK_DEFAULT_ALLOC_CC   MASK_ALLOC_CC

#define MAX_MOVE_REG   4

Definition at line 2224 of file frv.c.

#define MEDIUM_COST   3

Definition at line 6805 of file frv.c.

#define NTH_UNIT ( GROUP,
 )     frv_unit_codes[(GROUP) + (N) * 2 + 1]

Definition at line 91 of file frv.c.

#define NUM_NOP_PATTERNS   3

Definition at line 61 of file frv.c.

#define PACKING_FLAG_P ( INSN   )     (GET_MODE (INSN) == TImode)

Definition at line 129 of file frv.c.

#define QUAD ( RET,
T1,
T2,
T3,
T4   ) 

#define REGSTATE_CC_MASK   0x07

Definition at line 160 of file frv.c.

#define REGSTATE_IF_EITHER   (REGSTATE_IF_TRUE | REGSTATE_IF_FALSE)

Definition at line 165 of file frv.c.

#define REGSTATE_IF_FALSE   0x20

Definition at line 163 of file frv.c.

#define REGSTATE_IF_TRUE   0x10

Definition at line 162 of file frv.c.

#define REGSTATE_MODIFIED   0x08

Definition at line 161 of file frv.c.

#define SET_PACKING_FLAG ( INSN   )     PUT_MODE (INSN, TImode)

Definition at line 132 of file frv.c.

#define TARGET_ARG_PARTIAL_BYTES   frv_arg_partial_bytes

#define TARGET_ASM_CAN_OUTPUT_MI_THUNK   default_can_output_mi_thunk_no_vcall

#define TARGET_ASM_CONSTRUCTOR   frv_asm_out_constructor

#define TARGET_ASM_DESTRUCTOR   frv_asm_out_destructor

#define TARGET_ASM_FUNCTION_EPILOGUE   frv_function_epilogue

#define TARGET_ASM_FUNCTION_PROLOGUE   frv_function_prologue

#define TARGET_ASM_INTEGER   frv_assemble_integer

#define TARGET_ASM_OUTPUT_MI_THUNK   frv_asm_output_mi_thunk

#define TARGET_CANNOT_FORCE_CONST_MEM   frv_cannot_force_const_mem

#define TARGET_DEFAULT_TARGET_FLAGS

Value:

(MASK_DEFAULT_ALLOC_CC      \
   | MASK_COND_MOVE       \
   | MASK_SCC         \
   | MASK_COND_EXEC       \
   | MASK_VLIW_BRANCH       \
   | MASK_MULTI_CE        \
   | MASK_NESTED_CE)

#define TARGET_EXPAND_BUILTIN   frv_expand_builtin

#define TARGET_EXPAND_BUILTIN_SAVEREGS   frv_expand_builtin_saveregs

#define TARGET_FUNCTION_OK_FOR_SIBCALL   frv_function_ok_for_sibcall

#define TARGET_HANDLE_OPTION   frv_handle_option

#define TARGET_HAVE_TLS   HAVE_AS_TLS

#define TARGET_IN_SMALL_DATA_P   frv_in_small_data_p

#define TARGET_INIT_BUILTINS   frv_init_builtins

#define TARGET_INIT_LIBFUNCS   frv_init_libfuncs

#define TARGET_MACHINE_DEPENDENT_REORG   frv_reorg

#define TARGET_MUST_PASS_IN_STACK   frv_must_pass_in_stack

#define TARGET_PASS_BY_REFERENCE   hook_pass_by_reference_must_pass_in_stack

#define TARGET_RTX_COSTS   frv_rtx_costs

#define TARGET_SCHED_ISSUE_RATE   frv_issue_rate

#define TARGET_SETUP_INCOMING_VARARGS   frv_setup_incoming_varargs

#define TARGET_STRUCT_VALUE_RTX   frv_struct_value_rtx

#define TLS_BIAS   (2048 - 16)

Definition at line 9581 of file frv.c.

#define TOTAL_MOVE_REG   8

Definition at line 2229 of file frv.c.

#define TRINARY ( RET,
T1,
T2,
T3   ) 

#define UNARY ( RET,
T1   )     build_function_type (RET, tree_cons (NULL_TREE, T1, endlink))

#define UNIT_NUMBER ( UNIT   )     (((UNIT) - 1) / 2)

Definition at line 95 of file frv.c.


Typedef Documentation

typedef unsigned char regstate_t

Definition at line 167 of file frv.c.


Enumeration Type Documentation

Enumerator:
GROUP_I 
GROUP_FM 
GROUP_B 
GROUP_C 
NUM_GROUPS 
GROUP_I 
GROUP_FM 
GROUP_B 
GROUP_C 
NUM_GROUPS 

Definition at line 65 of file frv.c.

Enumerator:
FRV_LOAD 
FRV_STORE 
FRV_LOAD 
FRV_STORE 

Definition at line 171 of file frv.c.


Function Documentation

static const char * comparison_string ( enum rtx_code  code,
rtx  op0 
) [static]

Definition at line 2717 of file frv.c.

References EQ, GE, GET_MODE, GT, LE, LT, NE, and output_operand_lossage().

int condexec_memory_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 3880 of file frv.c.

References addr(), FALSE, frv_legitimate_address_p(), GET_CODE, GET_MODE, MEM, reload_completed, TRUE, and XEXP.

int direct_return_p ( void   ) 

Definition at line 3911 of file frv.c.

References FALSE, frv_stack_info(), info, reload_completed, and frv_stack::total_size.

int frv_acc_group ( rtx  insn  ) 

Definition at line 7004 of file frv.c.

References for_each_rtx(), frv_acc_group_1(), FRV_CPU_FR550, and PATTERN.

static int frv_acc_group_1 ( rtx x,
void *data  ATTRIBUTE_UNUSED 
) [static]

Definition at line 6989 of file frv.c.

References ACC_FIRST, ACC_P, ACCG_FIRST, ACCG_P, REG_P, and REGNO.

static int frv_acc_group_1 ( rtx ,
void  
) [static]

static void frv_add_insn_to_packet ( rtx  insn  )  [static]

Definition at line 7344 of file frv.c.

References frv_insn_unit(), frv_packet, frv_registers_update(), frv_unit_groups, and PATTERN.

int frv_adjust_field_align ( tree  field,
int  computed 
)

static void frv_align_label ( void   )  [static]

static rtx frv_alloc_temp_reg ( frv_tmp_reg_t info,
enum reg_class  class,
enum machine_mode  mode,
int  mark_as_used,
int  no_abort 
) [static]

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

Definition at line 3222 of file frv.c.

References bytes, fprintf(), GET_MODE_SIZE, LAST_ARG_REGNUM, ret, TARGET_DEBUG_ARG, UNITS_PER_WORD, and words.

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

static void frv_asm_out_constructor ( rtx  symbol,
int priority  ATTRIBUTE_UNUSED 
) [static]

static void frv_asm_out_constructor ( rtx  ,
int   
) [static]

static void frv_asm_out_destructor ( rtx  symbol,
int priority  ATTRIBUTE_UNUSED 
) [static]

static void frv_asm_out_destructor ( rtx  ,
int   
) [static]

static void frv_asm_output_mi_thunk ( FILE file,
tree thunk_fndecl  ATTRIBUTE_UNUSED,
HOST_WIDE_INT  delta,
HOST_WIDE_INT vcall_offset  ATTRIBUTE_UNUSED,
tree  function 
) [static]

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

const char* frv_asm_output_opcode ( FILE f,
const char *  ptr 
)

Definition at line 2403 of file frv.c.

References atoi(), c, fprintf(), fputc(), and frv_print_operand().

static bool frv_assemble_integer ( rtx  value,
unsigned int  size,
int  aligned_p 
) [static]

static bool frv_assemble_integer ( rtx  ,
unsigned  ,
int   
) [static]

static bool frv_cannot_force_const_mem ( rtx ATTRIBUTE_UNUSED  )  [static]

Definition at line 541 of file frv.c.

References TARGET_FDPIC.

static bool frv_cannot_force_const_mem ( rtx   )  [static]

static int frv_check_constant_argument ( enum insn_code  icode,
int  opnum,
rtx  opval 
) [static]

Definition at line 8736 of file frv.c.

References error(), FALSE, GET_CODE, and TRUE.

int frv_class_likely_spilled_p ( enum reg_class  class  ) 

int frv_class_max_nregs ( enum reg_class  class,
enum machine_mode  mode 
)

Definition at line 6698 of file frv.c.

References ACCG_REGS, GET_MODE_SIZE, and UNITS_PER_WORD.

static int frv_clear_registers_used ( rtx ptr,
void data 
) [static]

static int frv_compare_insns ( const void first,
const void second 
) [static]

Definition at line 7523 of file frv.c.

References frv_insn_unit().

static int frv_cond_flags ( rtx  cond  )  [static]

Definition at line 7104 of file frv.c.

References const0_rtx, CR_FIRST, CR_P, EQ, gcc_assert, GET_CODE, NE, REG, REGNO, REGSTATE_IF_FALSE, REGSTATE_IF_TRUE, and XEXP.

void frv_conditional_register_usage ( void   ) 

bool frv_const_unspec_p ( rtx  x,
struct frv_unspec *  unspec 
)

void frv_debug_stack ( frv_stack_t info  ) 

static int frv_default_flags_for_cpu ( void   )  [static]

static rtx frv_dwarf_store ( rtx  reg,
int  offset 
) [static]

rtx frv_dynamic_chain_address ( rtx  frame  ) 

Definition at line 2466 of file frv.c.

References cfun.

static rtx frv_emit_comparison ( enum rtx_code  test,
rtx  op0,
rtx  op1 
) [static]

int frv_emit_cond_branch ( enum rtx_code  test,
rtx  label 
)

int frv_emit_cond_move ( rtx  dest,
rtx  test_rtx,
rtx  src1,
rtx  src2 
)

void frv_emit_move ( enum machine_mode  mode,
rtx  dest,
rtx  src 
)

int frv_emit_movsi ( rtx  dest,
rtx  src 
)

int frv_emit_scc ( enum rtx_code  test,
rtx  target 
)

static rtx frv_expand_binop_builtin ( enum insn_code  icode,
tree  arglist,
rtx  target 
) [static]

static rtx frv_expand_binopimm_builtin ( enum insn_code  icode,
tree  arglist,
rtx  target 
) [static]

int frv_expand_block_clear ( rtx  operands[]  ) 

int frv_expand_block_move ( rtx  operands[]  ) 

static rtx frv_expand_builtin ( tree  exp,
rtx  target,
rtx subtarget  ATTRIBUTE_UNUSED,
enum machine_mode mode  ATTRIBUTE_UNUSED,
int ignore  ATTRIBUTE_UNUSED 
) [static]

Definition at line 9213 of file frv.c.

References ARRAY_SIZE, builtin_description::code, d, DECL_FUNCTION_CODE, dest, emit_move_insn(), error(), force_reg(), FRV_BUILTIN_ADDSS, FRV_BUILTIN_FIRST_NONMEDIA, FRV_BUILTIN_IACCreadl, FRV_BUILTIN_IACCreadll, FRV_BUILTIN_IACCsetl, FRV_BUILTIN_IACCsetll, FRV_BUILTIN_MABSHS, FRV_BUILTIN_MADDACCS, FRV_BUILTIN_MASACCS, FRV_BUILTIN_MBTOHE, FRV_BUILTIN_MCLRACC, FRV_BUILTIN_MCLRACCA, FRV_BUILTIN_MCOP1, FRV_BUILTIN_MCOP2, FRV_BUILTIN_MCPLHI, FRV_BUILTIN_MCPLI, FRV_BUILTIN_MDADDACCS, FRV_BUILTIN_MDASACCS, FRV_BUILTIN_MDCUTSSI, FRV_BUILTIN_MDPACKH, FRV_BUILTIN_MDROTLI, FRV_BUILTIN_MDSUBACCS, FRV_BUILTIN_MDUNPACKH, FRV_BUILTIN_MHDSETH, FRV_BUILTIN_MHDSETS, FRV_BUILTIN_MHSETHIH, FRV_BUILTIN_MHSETHIS, FRV_BUILTIN_MHSETLOH, FRV_BUILTIN_MHSETLOS, FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQMACXHS, FRV_BUILTIN_MQSATHS, FRV_BUILTIN_MQSLLHI, FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_MQXMACHS, FRV_BUILTIN_MQXMACXHS, FRV_BUILTIN_MRDACC, FRV_BUILTIN_MRDACCG, FRV_BUILTIN_MSUBACCS, FRV_BUILTIN_MTRAP, FRV_BUILTIN_MWTACC, FRV_BUILTIN_MWTACCG, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SCUTSS, FRV_BUILTIN_SLASS, FRV_BUILTIN_SMASS, FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SUBSS, frv_expand_binop_builtin(), frv_expand_binopimm_builtin(), frv_expand_cut_builtin(), frv_expand_int_void2arg(), frv_expand_load_builtin(), frv_expand_mclracc_builtin(), frv_expand_mdpackh_builtin(), frv_expand_mrdacc_builtin(), frv_expand_mwtacc_builtin(), frv_expand_noargs_builtin(), frv_expand_prefetches(), frv_expand_set_builtin(), frv_expand_store_builtin(), frv_expand_unop_builtin(), frv_expand_voidaccop_builtin(), frv_expand_voidbinop_builtin(), frv_expand_voidtriop_builtin(), frv_read_argument(), frv_read_iacc_argument(), frv_split_iacc_move(), gen_reg_rtx(), i, builtin_description::icode, NULL_RTX, REG_P, src, TARGET_ACC_8, TARGET_FR405_BUILTINS, TARGET_FR500_FR550_BUILTINS, TARGET_MEDIA, TARGET_MEDIA_FR450, TARGET_MEDIA_REV1, TARGET_MEDIA_REV2, TREE_OPERAND, TREE_TYPE, TYPE_MODE, and unsigned.

static rtx frv_expand_builtin ( tree  ,
rtx  ,
rtx  ,
enum  machine_mode,
int   
) [static]

static rtx frv_expand_builtin_saveregs ( void   )  [static]

void frv_expand_builtin_va_start ( tree  valist,
rtx  nextarg 
)

static rtx frv_expand_cut_builtin ( enum insn_code  icode,
tree  arglist,
rtx  target 
) [static]

void frv_expand_epilogue ( bool  emit_return  ) 

void frv_expand_fdpic_call ( rtx operands,
bool  ret_value,
bool  sibcall 
)

static rtx frv_expand_int_void2arg ( enum insn_code  icode,
tree  arglist 
) [static]

Definition at line 8952 of file frv.c.

References emit_insn(), frv_legitimize_argument(), frv_read_argument(), GEN_FCN, and NULL_RTX.

static rtx frv_expand_load_builtin ( enum insn_code  icode,
enum machine_mode  target_mode,
tree  arglist,
rtx  target 
) [static]

static rtx frv_expand_mclracc_builtin ( tree  arglist  )  [static]

static rtx frv_expand_mdpackh_builtin ( tree  arglist,
rtx  target 
) [static]

static rtx frv_expand_mrdacc_builtin ( enum insn_code  icode,
tree  arglist 
) [static]

Definition at line 9154 of file frv.c.

References emit_insn(), frv_int_to_acc(), frv_read_argument(), GEN_FCN, gen_reg_rtx(), NULL_RTX, and target.

static rtx frv_expand_mwtacc_builtin ( enum insn_code  icode,
tree  arglist 
) [static]

static rtx frv_expand_noargs_builtin ( enum insn_code  icode  )  [static]

Definition at line 9141 of file frv.c.

References const0_rtx, emit_insn(), GEN_FCN, and NULL_RTX.

static rtx frv_expand_prefetches ( enum insn_code  icode,
tree  arglist 
) [static]

Definition at line 8971 of file frv.c.

References emit_insn(), force_reg(), frv_read_argument(), GEN_FCN, and Pmode.

void frv_expand_prologue ( void   ) 

static rtx frv_expand_set_builtin ( enum insn_code  icode,
tree  arglist,
rtx  target 
) [static]

static rtx frv_expand_store_builtin ( enum insn_code  icode,
tree  arglist 
) [static]

static rtx frv_expand_unop_builtin ( enum insn_code  icode,
tree  arglist,
rtx  target 
) [static]

static rtx frv_expand_voidaccop_builtin ( enum insn_code  icode,
tree  arglist 
) [static]

static rtx frv_expand_voidbinop_builtin ( enum insn_code  icode,
tree  arglist 
) [static]

static rtx frv_expand_voidtriop_builtin ( enum insn_code  icode,
tree  arglist 
) [static]

static void frv_extract_membar ( struct frv_io *  io,
rtx  insn 
) [static]

Definition at line 7744 of file frv.c.

References extract_insn(), INTVAL, and XEXP.

Referenced by frv_optimize_membar_global(), and frv_optimize_membar_local().

static void frv_fill_unused_units ( enum frv_insn_group  group  )  [static]

Definition at line 7670 of file frv.c.

References frv_insert_nop_in_packet(), frv_packet, frv_sort_insn_group(), i, and nops.

void frv_final_prescan_insn ( rtx  insn,
rtx opvec,
int noperands  ATTRIBUTE_UNUSED 
)

Definition at line 2436 of file frv.c.

References asm_out_file, fprintf(), INSN_P, PACKING_FLAG_P, and recog_memoized.

rtx frv_find_base_term ( rtx  x  ) 

Definition at line 3724 of file frv.c.

References frv_const_unspec_p(), frv_small_data_reloc_p(), and plus_constant.

static void frv_finish_packet ( void(*)(void handle_packet  )  [static]

Definition at line 7285 of file frv.c.

References frv_packet, frv_start_packet(), and state_transition().

static bool frv_for_each_packet ( void(*)(void handle_packet  )  [static]

static void frv_frame_access ( frv_frame_accessor_t accessor,
rtx  reg,
int  stack_offset 
) [static]

static void frv_frame_access_multi ( frv_frame_accessor_t accessor,
frv_stack_t info,
int  reg_set 
) [static]

static void frv_frame_access_standard_regs ( enum frv_stack_op  op,
frv_stack_t info 
) [static]

static void frv_frame_insn ( rtx  pattern,
rtx  dwarf_pattern 
) [static]

static rtx frv_frame_mem ( enum machine_mode  mode,
rtx  base,
int  offset 
) [static]

Definition at line 1603 of file frv.c.

References frv_frame_offset_rtx(), gen_rtx_MEM(), gen_rtx_PLUS, and Pmode.

static rtx frv_frame_offset_rtx ( int  offset  )  [static]

Definition at line 1581 of file frv.c.

References emit_insn(), GEN_INT, gen_movsi(), gen_rtx_REG(), IN_RANGE_P, and OFFSET_REGNO.

int frv_frame_pointer_required ( void   ) 

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

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

Definition at line 3186 of file frv.c.

References bytes, fprintf(), GET_MODE_NAME, GET_MODE_SIZE, TARGET_DEBUG_ARG, UNITS_PER_WORD, and words.

int frv_function_arg_boundary ( enum machine_mode mode  ATTRIBUTE_UNUSED,
tree type  ATTRIBUTE_UNUSED 
)

Definition at line 3130 of file frv.c.

References BITS_PER_WORD.

static int frv_function_contains_far_jump ( void   )  [static]

Definition at line 1471 of file frv.c.

References GET_CODE, get_insns(), insn, NEXT_INSN, NULL, and PATTERN.

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

Definition at line 1874 of file frv.c.

References BITMAP_FREE, memset, frv_ifcvt_t::scratch_insns_bitmap, and frv_ifcvt_t::tmp_reg.

static void frv_function_epilogue ( FILE ,
HOST_WIDE_INT   
) [static]

static bool frv_function_ok_for_sibcall ( tree  ,
tree   
) [static]

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

static void frv_function_prologue ( FILE ,
HOST_WIDE_INT   
) [static]

static bool frv_function_symbol_referenced_p ( rtx  x  )  [static]

rtx frv_gen_GPsym2reg ( rtx  dest,
rtx  src 
)

Definition at line 3665 of file frv.c.

References GEN_INT, gen_rtx_SYMBOL_REF, get_identifier(), IDENTIFIER_POINTER, and Pmode.

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

static bool frv_handle_option ( size_t  ,
const char *  ,
int   
) [static]

int frv_hard_regno_mode_ok ( int  regno,
enum machine_mode  mode 
)

int frv_hard_regno_nregs ( int  regno,
enum machine_mode  mode 
)

Definition at line 6676 of file frv.c.

References ACCG_P, GET_MODE_SIZE, and UNITS_PER_WORD.

static void frv_ifcvt_add_insn ( rtx  pattern,
rtx  insn,
int  before_p 
) [static]

void frv_ifcvt_init_extra_fields ( ce_if_block_t *ce_info  ATTRIBUTE_UNUSED  ) 

static rtx frv_ifcvt_load_value ( rtx  value,
rtx insn  ATTRIBUTE_UNUSED 
) [static]

static rtx frv_ifcvt_load_value ( rtx  ,
rtx   
) [static]

void frv_ifcvt_modify_cancel ( ce_if_block_t *ce_info  ATTRIBUTE_UNUSED  ) 

void frv_ifcvt_modify_final ( ce_if_block_t *ce_info  ATTRIBUTE_UNUSED  ) 

rtx frv_ifcvt_modify_insn ( ce_if_block_t ce_info,
rtx  pattern,
rtx  insn 
)

void frv_ifcvt_modify_multiple_tests ( ce_if_block_t ce_info,
basic_block  bb,
rtx p_true,
rtx p_false 
)

void frv_ifcvt_modify_tests ( ce_if_block_t ce_info,
rtx p_true,
rtx p_false 
)

Definition at line 5243 of file frv.c.

References frv_ifcvt_t::added_insns_list, alloca, AND_COMPL_HARD_REG_SET, BB_END, BB_HEAD, call_used_reg_set, cc, CC_FIRST, CC_LAST, CC_P, CLEAR_HARD_REG_BIT, CLEAR_HARD_REG_SET, COMPARE, COMPARISON_P, COND_EXEC_TEST, const0_rtx, COPY_HARD_REG_SET, CR_FIRST, CR_LAST, CR_P, frv_ifcvt_t::cr_reg, frv_ifcvt_t::cur_scratch_regs, dest, dump_file, EDGE_PRED, ce_if_block::else_bb, EQ, EXECUTE_IF_SET_IN_REG_SET, fail, FALSE, FCC_FIRST, FCC_LAST, FCC_REGS, FCR_REGS, FIRST_PSEUDO_REGISTER, fixed_reg_set, for_each_rtx(), fprintf(), fputs(), frv_alloc_temp_reg(), frv_clear_registers_used(), frv_ifcvt_add_insn(), gen_rtx_fmt_ee(), gen_rtx_SET, GET_CODE, GET_MODE, basic_block_def::global_live_at_start, GPR_FIRST, GPR_LAST, GPR_TEMP_NUM, ICC_FIRST, ICC_LAST, ICC_REGS, ICC_TEMP, ICR_REGS, ICR_TEMP, index(), insn, INSN_P, INSN_UID, int, ce_if_block::join_bb, last_insn, ce_if_block::last_test_bb, memset, mode, NE, frv_ifcvt_t::nested_cc_ok_rewrite, frv_ifcvt_t::nested_cc_reg, NEXT_INSN, frv_tmp_reg_struct::next_reg, NO_REGS, NULL_RTX, ce_if_block::num_multiple_test_blocks, frv_ifcvt_t::num_nested_cond_exec, ce_if_block::pass, pattern, PATTERN, REG, reg_names, REGNO, REGNO_REG_SET_P, frv_tmp_reg_struct::regs, reload_completed, reverse_condition(), frv_ifcvt_t::scratch_regs, SET_DEST, SET_HARD_REG_BIT, SET_SRC, single_set_pattern(), src, TARGET_COND_EXEC, TARGET_NESTED_CE, ce_if_block::test_bb, TEST_HARD_REG_BIT, ce_if_block::then_bb, frv_ifcvt_t::tmp_reg, TRUE, and XEXP.

static rtx frv_ifcvt_rewrite_mem ( rtx  mem,
enum machine_mode  mode,
rtx  insn 
) [static]

static bool frv_in_small_data_p ( tree  decl  )  [static]

rtx frv_index_memory ( rtx  memref,
enum machine_mode  mode,
int  index 
)

Definition at line 2501 of file frv.c.

References base, change_address(), GET_CODE, GET_MODE_SIZE, plus_constant, and XEXP.

static void frv_init_builtins ( void   )  [static]

Definition at line 8347 of file frv.c.

References BINARY, build_function_type(), build_pointer_type(), build_type_variant, const_ptr_type_node, def_builtin, FRV_BUILTIN_ADDSS, FRV_BUILTIN_IACCreadl, FRV_BUILTIN_IACCreadll, FRV_BUILTIN_IACCsetl, FRV_BUILTIN_IACCsetll, FRV_BUILTIN_MABSHS, FRV_BUILTIN_MADDACCS, FRV_BUILTIN_MADDHSS, FRV_BUILTIN_MADDHUS, FRV_BUILTIN_MAND, FRV_BUILTIN_MASACCS, FRV_BUILTIN_MAVEH, FRV_BUILTIN_MBTOH, FRV_BUILTIN_MBTOHE, FRV_BUILTIN_MCLRACC, FRV_BUILTIN_MCLRACCA, FRV_BUILTIN_MCOP1, FRV_BUILTIN_MCOP2, FRV_BUILTIN_MCPLHI, FRV_BUILTIN_MCPLI, FRV_BUILTIN_MCPXIS, FRV_BUILTIN_MCPXIU, FRV_BUILTIN_MCPXRS, FRV_BUILTIN_MCPXRU, FRV_BUILTIN_MCUT, FRV_BUILTIN_MCUTSS, FRV_BUILTIN_MDADDACCS, FRV_BUILTIN_MDASACCS, FRV_BUILTIN_MDCUTSSI, FRV_BUILTIN_MDPACKH, FRV_BUILTIN_MDROTLI, FRV_BUILTIN_MDSUBACCS, FRV_BUILTIN_MDUNPACKH, FRV_BUILTIN_MEXPDHD, FRV_BUILTIN_MEXPDHW, FRV_BUILTIN_MHDSETH, FRV_BUILTIN_MHDSETS, FRV_BUILTIN_MHSETHIH, FRV_BUILTIN_MHSETHIS, FRV_BUILTIN_MHSETLOH, FRV_BUILTIN_MHSETLOS, FRV_BUILTIN_MHTOB, FRV_BUILTIN_MMACHS, FRV_BUILTIN_MMACHU, FRV_BUILTIN_MMRDHS, FRV_BUILTIN_MMRDHU, FRV_BUILTIN_MMULHS, FRV_BUILTIN_MMULHU, FRV_BUILTIN_MMULXHS, FRV_BUILTIN_MMULXHU, FRV_BUILTIN_MNOT, FRV_BUILTIN_MOR, FRV_BUILTIN_MPACKH, FRV_BUILTIN_MQADDHSS, FRV_BUILTIN_MQADDHUS, FRV_BUILTIN_MQCPXIS, FRV_BUILTIN_MQCPXIU, FRV_BUILTIN_MQCPXRS, FRV_BUILTIN_MQCPXRU, FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQMACHS, FRV_BUILTIN_MQMACHU, FRV_BUILTIN_MQMACXHS, FRV_BUILTIN_MQMULHS, FRV_BUILTIN_MQMULHU, FRV_BUILTIN_MQMULXHS, FRV_BUILTIN_MQMULXHU, FRV_BUILTIN_MQSATHS, FRV_BUILTIN_MQSLLHI, FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_MQSUBHSS, FRV_BUILTIN_MQSUBHUS, FRV_BUILTIN_MQXMACHS, FRV_BUILTIN_MQXMACXHS, FRV_BUILTIN_MRDACC, FRV_BUILTIN_MRDACCG, FRV_BUILTIN_MROTLI, FRV_BUILTIN_MROTRI, FRV_BUILTIN_MSATHS, FRV_BUILTIN_MSATHU, FRV_BUILTIN_MSLLHI, FRV_BUILTIN_MSRAHI, FRV_BUILTIN_MSRLHI, FRV_BUILTIN_MSUBACCS, FRV_BUILTIN_MSUBHSS, FRV_BUILTIN_MSUBHUS, FRV_BUILTIN_MTRAP, FRV_BUILTIN_MUNPACKH, FRV_BUILTIN_MWCUT, FRV_BUILTIN_MWTACC, FRV_BUILTIN_MWTACCG, FRV_BUILTIN_MXOR, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32, FRV_BUILTIN_READ64, FRV_BUILTIN_READ8, FRV_BUILTIN_SCAN, FRV_BUILTIN_SCUTSS, FRV_BUILTIN_SLASS, FRV_BUILTIN_SMASS, FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SMUL, FRV_BUILTIN_SUBSS, FRV_BUILTIN_UMUL, FRV_BUILTIN_WRITE16, FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64, FRV_BUILTIN_WRITE8, integer_type_node, long_integer_type_node, long_long_integer_type_node, long_long_unsigned_type_node, long_unsigned_type_node, QUAD, short_unsigned_type_node, TRINARY, UNARY, unsigned_char_type_node, void_list_node, and void_type_node.

void frv_init_cumulative_args ( CUMULATIVE_ARGS cum,
tree  fntype,
rtx  libname,
tree  fndecl,
int  incoming 
)

static void frv_init_libfuncs ( void   )  [static]

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

Definition at line 6948 of file frv.c.

References ggc_alloc_cleared.

int frv_initial_elimination_offset ( int  from,
int  to 
)

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

static void frv_insert_nop_in_packet ( rtx  insn  )  [static]

static unsigned int frv_insn_unit ( rtx  insn  )  [static]

static rtx frv_int_to_acc ( enum insn_code  icode,
int  opnum,
rtx  opval 
) [static]

Definition at line 8609 of file frv.c.

References ACC_FIRST, ACC_MASK, ACCG_FIRST, error(), gen_rtx_REG(), GET_CODE, global_regs, i, INTVAL, mode, NULL_RTX, and REGNO.

static rtx frv_io_address_cookie ( rtx  address  )  [static]

Definition at line 8672 of file frv.c.

References const0_rtx, GEN_INT, GET_CODE, and INTVAL.

Referenced by frv_expand_load_builtin(), and frv_expand_store_builtin().

static void frv_io_check_address ( rtx  x,
rtx pat  ATTRIBUTE_UNUSED,
void data 
) [static]

Definition at line 7756 of file frv.c.

References reg_overlap_mentioned_p(), and REG_P.

Referenced by frv_optimize_membar_local().

static bool frv_io_fixed_order_p ( const struct frv_io *  io1,
const struct frv_io *  io2 
) [static]

Definition at line 7710 of file frv.c.

References frv_same_doubleword_p().

Referenced by frv_optimize_membar_global(), and frv_optimize_membar_local().

static void frv_io_handle_set ( rtx  x,
rtx pat  ATTRIBUTE_UNUSED,
void data 
) [static]

Definition at line 7768 of file frv.c.

References CLEAR_HARD_REG_BIT, FOR_EACH_REGNO, HARD_REG_SET, and REG_P.

Referenced by frv_optimize_membar_local().

static void frv_io_handle_use ( rtx x,
void data 
) [static]

Definition at line 7798 of file frv.c.

References for_each_rtx(), and frv_io_handle_use_1().

Referenced by frv_optimize_membar_local().

static int frv_io_handle_use_1 ( rtx x,
void data 
) [static]

Definition at line 7782 of file frv.c.

References FOR_EACH_REGNO, HARD_REG_SET, REG_P, and SET_HARD_REG_BIT.

Referenced by frv_io_handle_use().

static void frv_io_union ( struct frv_io *  x,
const struct frv_io *  y 
) [static]

Definition at line 7729 of file frv.c.

References frv_same_doubleword_p().

Referenced by frv_optimize_membar_global().

int frv_issue_rate ( void   ) 

static bool frv_issues_to_branch_unit_p ( rtx  insn  )  [static]

Definition at line 7048 of file frv.c.

References frv_insn_unit(), frv_unit_groups, and GROUP_B.

int frv_legitimate_address_p ( enum machine_mode  mode,
rtx  x,
int  strict_p,
int  condexec_p,
int  allow_double_reg_p 
)

int frv_legitimate_constant_p ( rtx  x  ) 

int frv_legitimate_memory_operand ( rtx  op,
enum machine_mode  mode,
int  condexec_p 
)

rtx frv_legitimize_address ( rtx  x,
rtx oldx  ATTRIBUTE_UNUSED,
enum machine_mode mode  ATTRIBUTE_UNUSED 
)

Definition at line 3609 of file frv.c.

References frv_legitimize_tls_address(), GET_CODE, NULL_RTX, and SYMBOL_REF_TLS_MODEL.

static rtx frv_legitimize_argument ( enum insn_code  icode,
int  opnum,
rtx  arg 
) [static]

Definition at line 8774 of file frv.c.

References copy_to_mode_reg(), and mode.

static rtx frv_legitimize_target ( enum insn_code  icode,
rtx  target 
) [static]

Definition at line 8756 of file frv.c.

References gen_reg_rtx(), GET_MODE, and mode.

static rtx frv_legitimize_tls_address ( rtx  addr,
enum tls_model  model 
) [static]

static bool frv_local_funcdesc_p ( rtx  fnx  )  [static]

rtx frv_matching_accg_for_acc ( rtx  acc  ) 

Definition at line 8684 of file frv.c.

References ACC_FIRST, ACCG_FIRST, frv_matching_accg_mode(), gen_rtx_REG(), GET_MODE, and REGNO.

static enum machine_mode frv_matching_accg_mode ( enum machine_mode  mode  )  [static]

Definition at line 8649 of file frv.c.

References gcc_unreachable.

static bool frv_must_pass_in_stack ( enum machine_mode  mode,
tree  type 
) [static]

Definition at line 3116 of file frv.c.

References AGGREGATE_TYPE_P, and NULL.

void frv_optimization_options ( int  level,
int size  ATTRIBUTE_UNUSED 
)

Definition at line 819 of file frv.c.

References flag_schedule_insns_after_reload.

static void frv_optimize_membar ( void   )  [static]

static void frv_optimize_membar_global ( basic_block  bb,
struct frv_io *  first_io,
rtx  membar 
) [static]

static void frv_optimize_membar_local ( basic_block  bb,
struct frv_io *  next_io,
rtx last_membar 
) [static]

static void frv_output_const_unspec ( FILE stream,
const struct frv_unspec *  unspec 
) [static]

Definition at line 3712 of file frv.c.

References fprintf(), fputs(), output_addr_const(), plus_constant, and unspec_got_name().

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

Definition at line 381 of file frv.c.

void frv_override_options ( void   ) 

static bool frv_pack_insn_p ( rtx  insn  )  [static]

static void frv_pack_insns ( void   )  [static]

Definition at line 7658 of file frv.c.

References frv_for_each_packet(), and frv_reorder_packet().

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

void frv_print_operand_address ( FILE stream,
rtx  x 
)

static int frv_print_operand_jump_hint ( rtx  insn  )  [static]

static void frv_print_operand_memory_reference ( FILE stream,
rtx  x,
int  addr_offset 
) [static]

static void frv_print_operand_memory_reference_reg ( FILE stream,
rtx  x 
) [static]

Definition at line 2546 of file frv.c.

References fatal_insn, fputs(), GPR_P, reg_names, and true_regnum().

static rtx frv_read_argument ( tree arglistptr  )  [static]

Definition at line 8695 of file frv.c.

References expand_expr(), next, NULL_RTX, TREE_CHAIN, and TREE_VALUE.

static rtx frv_read_iacc_argument ( enum machine_mode  mode,
tree arglistptr 
) [static]

int frv_register_move_cost ( enum reg_class  from,
enum reg_class  to 
)

static void frv_register_nop ( rtx  nop  )  [static]

Definition at line 8115 of file frv.c.

References make_insn_raw(), NEXT_INSN, and PREV_INSN.

static bool frv_registers_conflict_p ( rtx  x  )  [static]

Definition at line 7197 of file frv.c.

References flags, for_each_rtx(), frv_cond_flags(), frv_registers_conflict_p_1(), GET_CODE, and XEXP.

static int frv_registers_conflict_p_1 ( rtx x,
void data 
) [static]

static void frv_registers_update ( rtx  x  )  [static]

static void frv_registers_update_1 ( rtx  x,
rtx pat  ATTRIBUTE_UNUSED,
void data 
) [static]

Definition at line 7218 of file frv.c.

References ARRAY_SIZE, FOR_EACH_REGNO, frv_packet, GET_CODE, MEM, and REG.

static void frv_registers_update_1 ( rtx  ,
rtx  ,
void  
) [static]

static FRV_INLINE int frv_regno_ok_for_base_p ( int  regno,
int  strict_p 
) [static]

Definition at line 3246 of file frv.c.

References ARG_POINTER_REGNUM, FIRST_PSEUDO_REGISTER, GPR_P, reg_renumber, and TRUE.

static bool frv_regstate_conflict_p ( regstate_t  cond1,
regstate_t  cond2 
) [static]

Definition at line 7121 of file frv.c.

References REGSTATE_CC_MASK, and REGSTATE_IF_EITHER.

static void frv_reorder_packet ( void   )  [static]

static void frv_reorg ( void   )  [static]

static void frv_reorg_packet ( void   )  [static]

Definition at line 8105 of file frv.c.

References frv_align_label(), frv_fill_unused_units(), GROUP_FM, and GROUP_I.

rtx frv_return_addr_rtx ( int  count,
rtx  frame 
)

Definition at line 2484 of file frv.c.

References cfun, const0_rtx, gen_rtx_MEM(), plus_constant, and Pmode.

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

Definition at line 9469 of file frv.c.

References AND, COMPARE, CONST, COSTS_N_INSNS, DIV, GET_MODE, IN_RANGE_P, INTVAL, MEM, MINUS, MOD, NOT, PLUS, and XOR.

static bool frv_rtx_costs ( rtx  ,
int  ,
int  ,
int *   
) [static]

static bool frv_same_doubleword_p ( const struct frv_io *  io1,
const struct frv_io *  io2 
) [static]

Definition at line 7695 of file frv.c.

References rtx_equal_p().

Referenced by frv_io_fixed_order_p(), and frv_io_union().

enum reg_class frv_secondary_reload_class ( enum reg_class  class,
enum machine_mode mode  ATTRIBUTE_UNUSED,
rtx  x,
int in_p  ATTRIBUTE_UNUSED 
)

enum machine_mode frv_select_cc_mode ( enum rtx_code  code,
rtx  x,
rtx  y 
)

Definition at line 6764 of file frv.c.

References const0_rtx, EQ, GE, GET_MODE, GET_MODE_CLASS, LT, MODE_FLOAT, and NE.

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

Definition at line 2159 of file frv.c.

References fprintf(), GET_MODE_NAME, and TARGET_DEBUG_ARG.

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

static FRV_INLINE bool frv_small_data_reloc_p ( rtx  symbol,
int  reloc 
) [static]

Definition at line 481 of file frv.c.

References flag_pic, GET_CODE, SYMBOL_REF_SMALL_P, and TARGET_FDPIC.

static void frv_sort_insn_group ( enum frv_insn_group  group  )  [static]

static bool frv_sort_insn_group_1 ( enum frv_insn_group  group,
unsigned int  lower_slot,
unsigned int  upper_slot,
unsigned int  issued,
unsigned int  num_insns,
state_t  state 
) [static]

rtx frv_split_abs ( rtx  operands[]  ) 

rtx frv_split_cond_move ( rtx  operands[]  ) 

void frv_split_double_load ( rtx  dest,
rtx  source 
)

void frv_split_double_store ( rtx  dest,
rtx  source 
)

static void frv_split_iacc_move ( rtx  dest,
rtx  src 
) [static]

Definition at line 9199 of file frv.c.

References emit_move_insn(), GET_MODE, GET_MODE_SIZE, i, and simplify_gen_subreg().

rtx frv_split_minmax ( rtx  operands[]  ) 

rtx frv_split_scc ( rtx  dest,
rtx  test,
rtx  cc_reg,
rtx  cr_reg,
HOST_WIDE_INT  value 
)

frv_stack_t* frv_stack_info ( void   ) 

static void frv_start_packet ( void   )  [static]

Definition at line 7259 of file frv.c.

References frv_packet, memset, and NUM_GROUPS.

static void frv_start_packet_block ( void   )  [static]

Definition at line 7274 of file frv.c.

References frv_packet, frv_start_packet(), and state_reset().

static int frv_string_begins_with ( tree  name,
const char *  prefix 
) [static]

Definition at line 836 of file frv.c.

References strlen(), strncmp(), TREE_STRING_LENGTH, and TREE_STRING_POINTER.

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

Definition at line 9575 of file frv.c.

References FRV_STRUCT_VALUE_REGNUM, gen_rtx_REG(), and Pmode.

static rtx frv_struct_value_rtx ( tree  ,
int   
) [static]

int frv_trampoline_size ( void   ) 

Definition at line 6251 of file frv.c.

References TARGET_FDPIC.

static rtx frv_volatile_memref ( enum machine_mode  mode,
rtx  arg 
) [static]

Definition at line 8787 of file frv.c.

References gen_rtx_MEM(), mem, MEM_VOLATILE_P, and memory_address().

Referenced by frv_expand_load_builtin(), and frv_expand_store_builtin().

static rtx gen_inlined_tls_plt ( rtx  addr  )  [static]

Definition at line 3451 of file frv.c.

References dest, emit_insn(), flag_pic, GEN_INT, gen_reg_rtx(), get_hard_reg_initial_val(), and Pmode.

static rtx gen_tlsmoff ( rtx  addr,
rtx  reg 
) [static]

Definition at line 3492 of file frv.c.

References dest, emit_insn(), GEN_INT, gen_reg_rtx(), gen_rtx_PLUS, Pmode, and TARGET_BIG_TLS.

static GTY ( ()   )  [static]

Definition at line 107 of file frv.c.

References HOST_WIDE_INT.

const char* output_condmove_single ( rtx  operands[],
rtx  insn 
)

Definition at line 4560 of file frv.c.

References dest, fatal_insn, FPR_P, GET_CODE, GET_MODE, GPR_P, MEM, mode, REG, REGNO, src, TARGET_HARD_FLOAT, and ZERO_P.

const char* output_move_double ( rtx  operands[],
rtx  insn 
)

const char* output_move_single ( rtx  operands[],
rtx  insn 
)

static rtx single_set_pattern ( rtx  pattern  )  [static]

Definition at line 5847 of file frv.c.

References COND_EXEC_CODE, GET_CODE, i, SET, sub, USE, XVECEXP, and XVECLEN.

static const char * unspec_got_name ( int  i  )  [static]

Definition at line 3674 of file frv.c.

References gcc_unreachable.


Variable Documentation

Initial value:

{
  { CODE_FOR_mnot, "__MNOT", FRV_BUILTIN_MNOT, 0, 0 },
  { CODE_FOR_munpackh, "__MUNPACKH", FRV_BUILTIN_MUNPACKH, 0, 0 },
  { CODE_FOR_mbtoh, "__MBTOH", FRV_BUILTIN_MBTOH, 0, 0 },
  { CODE_FOR_mhtob, "__MHTOB", FRV_BUILTIN_MHTOB, 0, 0 },
  { CODE_FOR_mabshs, "__MABSHS", FRV_BUILTIN_MABSHS, 0, 0 },
  { CODE_FOR_scutss, "__SCUTSS", FRV_BUILTIN_SCUTSS, 0, 0 }
}

Definition at line 8171 of file frv.c.

Initial value:

{
  { CODE_FOR_mand, "__MAND", FRV_BUILTIN_MAND, 0, 0 },
  { CODE_FOR_mor, "__MOR", FRV_BUILTIN_MOR, 0, 0 },
  { CODE_FOR_mxor, "__MXOR", FRV_BUILTIN_MXOR, 0, 0 },
  { CODE_FOR_maveh, "__MAVEH", FRV_BUILTIN_MAVEH, 0, 0 },
  { CODE_FOR_msaths, "__MSATHS", FRV_BUILTIN_MSATHS, 0, 0 },
  { CODE_FOR_msathu, "__MSATHU", FRV_BUILTIN_MSATHU, 0, 0 },
  { CODE_FOR_maddhss, "__MADDHSS", FRV_BUILTIN_MADDHSS, 0, 0 },
  { CODE_FOR_maddhus, "__MADDHUS", FRV_BUILTIN_MADDHUS, 0, 0 },
  { CODE_FOR_msubhss, "__MSUBHSS", FRV_BUILTIN_MSUBHSS, 0, 0 },
  { CODE_FOR_msubhus, "__MSUBHUS", FRV_BUILTIN_MSUBHUS, 0, 0 },
  { CODE_FOR_mqaddhss, "__MQADDHSS", FRV_BUILTIN_MQADDHSS, 0, 0 },
  { CODE_FOR_mqaddhus, "__MQADDHUS", FRV_BUILTIN_MQADDHUS, 0, 0 },
  { CODE_FOR_mqsubhss, "__MQSUBHSS", FRV_BUILTIN_MQSUBHSS, 0, 0 },
  { CODE_FOR_mqsubhus, "__MQSUBHUS", FRV_BUILTIN_MQSUBHUS, 0, 0 },
  { CODE_FOR_mpackh, "__MPACKH", FRV_BUILTIN_MPACKH, 0, 0 },
  { CODE_FOR_mcop1, "__Mcop1", FRV_BUILTIN_MCOP1, 0, 0 },
  { CODE_FOR_mcop2, "__Mcop2", FRV_BUILTIN_MCOP2, 0, 0 },
  { CODE_FOR_mwcut, "__MWCUT", FRV_BUILTIN_MWCUT, 0, 0 },
  { CODE_FOR_mqsaths, "__MQSATHS", FRV_BUILTIN_MQSATHS, 0, 0 },
  { CODE_FOR_mqlclrhs, "__MQLCLRHS", FRV_BUILTIN_MQLCLRHS, 0, 0 },
  { CODE_FOR_mqlmths, "__MQLMTHS", FRV_BUILTIN_MQLMTHS, 0, 0 },
  { CODE_FOR_smul, "__SMUL", FRV_BUILTIN_SMUL, 0, 0 },
  { CODE_FOR_umul, "__UMUL", FRV_BUILTIN_UMUL, 0, 0 },
  { CODE_FOR_addss, "__ADDSS", FRV_BUILTIN_ADDSS, 0, 0 },
  { CODE_FOR_subss, "__SUBSS", FRV_BUILTIN_SUBSS, 0, 0 },
  { CODE_FOR_slass, "__SLASS", FRV_BUILTIN_SLASS, 0, 0 },
  { CODE_FOR_scan, "__SCAN", FRV_BUILTIN_SCAN, 0, 0 }
}

Definition at line 8183 of file frv.c.

Initial value:

{
  { CODE_FOR_mrotli, "__MROTLI", FRV_BUILTIN_MROTLI, 0, 0 },
  { CODE_FOR_mrotri, "__MROTRI", FRV_BUILTIN_MROTRI, 0, 0 },
  { CODE_FOR_msllhi, "__MSLLHI", FRV_BUILTIN_MSLLHI, 0, 0 },
  { CODE_FOR_msrlhi, "__MSRLHI", FRV_BUILTIN_MSRLHI, 0, 0 },
  { CODE_FOR_msrahi, "__MSRAHI", FRV_BUILTIN_MSRAHI, 0, 0 },
  { CODE_FOR_mexpdhw, "__MEXPDHW", FRV_BUILTIN_MEXPDHW, 0, 0 },
  { CODE_FOR_mexpdhd, "__MEXPDHD", FRV_BUILTIN_MEXPDHD, 0, 0 },
  { CODE_FOR_mdrotli, "__MDROTLI", FRV_BUILTIN_MDROTLI, 0, 0 },
  { CODE_FOR_mcplhi, "__MCPLHI", FRV_BUILTIN_MCPLHI, 0, 0 },
  { CODE_FOR_mcpli, "__MCPLI", FRV_BUILTIN_MCPLI, 0, 0 },
  { CODE_FOR_mhsetlos, "__MHSETLOS", FRV_BUILTIN_MHSETLOS, 0, 0 },
  { CODE_FOR_mhsetloh, "__MHSETLOH", FRV_BUILTIN_MHSETLOH, 0, 0 },
  { CODE_FOR_mhsethis, "__MHSETHIS", FRV_BUILTIN_MHSETHIS, 0, 0 },
  { CODE_FOR_mhsethih, "__MHSETHIH", FRV_BUILTIN_MHSETHIH, 0, 0 },
  { CODE_FOR_mhdseth, "__MHDSETH", FRV_BUILTIN_MHDSETH, 0, 0 },
  { CODE_FOR_mqsllhi, "__MQSLLHI", FRV_BUILTIN_MQSLLHI, 0, 0 },
  { CODE_FOR_mqsrahi, "__MQSRAHI", FRV_BUILTIN_MQSRAHI, 0, 0 }
}

Definition at line 8240 of file frv.c.

Initial value:

{
  { CODE_FOR_mcut, "__MCUT", FRV_BUILTIN_MCUT, 0, 0 },
  { CODE_FOR_mcutss, "__MCUTSS", FRV_BUILTIN_MCUTSS, 0, 0 },
  { CODE_FOR_mdcutssi, "__MDCUTSSI", FRV_BUILTIN_MDCUTSSI, 0, 0 }
}

Definition at line 8231 of file frv.c.

Initial value:

{
  { CODE_FOR_smass, "__SMASS", FRV_BUILTIN_SMASS, 0, 0 },
  { CODE_FOR_smsss, "__SMSSS", FRV_BUILTIN_SMSSS, 0, 0 },
  { CODE_FOR_smu, "__SMU", FRV_BUILTIN_SMU, 0, 0 }
}

Definition at line 8216 of file frv.c.

Initial value:

{
  { CODE_FOR_optional_membar_qi, "__builtin_read8",
    FRV_BUILTIN_READ8, 0, 0 },
  { CODE_FOR_optional_membar_hi, "__builtin_read16",
    FRV_BUILTIN_READ16, 0, 0 },
  { CODE_FOR_optional_membar_si, "__builtin_read32",
    FRV_BUILTIN_READ32, 0, 0 },
  { CODE_FOR_optional_membar_di, "__builtin_read64",
    FRV_BUILTIN_READ64, 0, 0 }
}

Definition at line 8318 of file frv.c.

Initial value:

{
  { CODE_FOR_frv_prefetch0, "__data_prefetch0", FRV_BUILTIN_PREFETCH0, 0, 0 },
  { CODE_FOR_frv_prefetch, "__data_prefetch", FRV_BUILTIN_PREFETCH, 0, 0 }
}

Definition at line 8223 of file frv.c.

Initial value:

{
  { CODE_FOR_mhdsets, "__MHDSETS", FRV_BUILTIN_MHDSETS, 0, 0 }
}

Definition at line 8164 of file frv.c.

Initial value:

{
  { CODE_FOR_optional_membar_qi, "__builtin_write8",
    FRV_BUILTIN_WRITE8, 0, 0 },
  { CODE_FOR_optional_membar_hi, "__builtin_write16",
    FRV_BUILTIN_WRITE16, 0, 0 },
  { CODE_FOR_optional_membar_si, "__builtin_write32",
    FRV_BUILTIN_WRITE32, 0, 0 },
  { CODE_FOR_optional_membar_di, "__builtin_write64",
    FRV_BUILTIN_WRITE64, 0, 0 },
}

Definition at line 8332 of file frv.c.

Initial value:

{
  { CODE_FOR_mdunpackh, "__MDUNPACKH", FRV_BUILTIN_MDUNPACKH, 0, 0 },
  { CODE_FOR_mbtohe, "__MBTOHE", FRV_BUILTIN_MBTOHE, 0, 0 },
}

Definition at line 8264 of file frv.c.

Initial value:

{
  { CODE_FOR_mcpxrs, "__MCPXRS", FRV_BUILTIN_MCPXRS, 0, 0 },
  { CODE_FOR_mcpxru, "__MCPXRU", FRV_BUILTIN_MCPXRU, 0, 0 },
  { CODE_FOR_mcpxis, "__MCPXIS", FRV_BUILTIN_MCPXIS, 0, 0 },
  { CODE_FOR_mcpxiu, "__MCPXIU", FRV_BUILTIN_MCPXIU, 0, 0 },
  { CODE_FOR_mmulhs, "__MMULHS", FRV_BUILTIN_MMULHS, 0, 0 },
  { CODE_FOR_mmulhu, "__MMULHU", FRV_BUILTIN_MMULHU, 0, 0 },
  { CODE_FOR_mmulxhs, "__MMULXHS", FRV_BUILTIN_MMULXHS, 0, 0 },
  { CODE_FOR_mmulxhu, "__MMULXHU", FRV_BUILTIN_MMULXHU, 0, 0 },
  { CODE_FOR_mmachs, "__MMACHS", FRV_BUILTIN_MMACHS, 0, 0 },
  { CODE_FOR_mmachu, "__MMACHU", FRV_BUILTIN_MMACHU, 0, 0 },
  { CODE_FOR_mmrdhs, "__MMRDHS", FRV_BUILTIN_MMRDHS, 0, 0 },
  { CODE_FOR_mmrdhu, "__MMRDHU", FRV_BUILTIN_MMRDHU, 0, 0 },
  { CODE_FOR_mqcpxrs, "__MQCPXRS", FRV_BUILTIN_MQCPXRS, 0, 0 },
  { CODE_FOR_mqcpxru, "__MQCPXRU", FRV_BUILTIN_MQCPXRU, 0, 0 },
  { CODE_FOR_mqcpxis, "__MQCPXIS", FRV_BUILTIN_MQCPXIS, 0, 0 },
  { CODE_FOR_mqcpxiu, "__MQCPXIU", FRV_BUILTIN_MQCPXIU, 0, 0 },
  { CODE_FOR_mqmulhs, "__MQMULHS", FRV_BUILTIN_MQMULHS, 0, 0 },
  { CODE_FOR_mqmulhu, "__MQMULHU", FRV_BUILTIN_MQMULHU, 0, 0 },
  { CODE_FOR_mqmulxhs, "__MQMULXHS", FRV_BUILTIN_MQMULXHS, 0, 0 },
  { CODE_FOR_mqmulxhu, "__MQMULXHU", FRV_BUILTIN_MQMULXHU, 0, 0 },
  { CODE_FOR_mqmachs, "__MQMACHS", FRV_BUILTIN_MQMACHS, 0, 0 },
  { CODE_FOR_mqmachu, "__MQMACHU", FRV_BUILTIN_MQMACHU, 0, 0 },
  { CODE_FOR_mqxmachs, "__MQXMACHS", FRV_BUILTIN_MQXMACHS, 0, 0 },
  { CODE_FOR_mqxmacxhs, "__MQXMACXHS", FRV_BUILTIN_MQXMACXHS, 0, 0 },
  { CODE_FOR_mqmacxhs, "__MQMACXHS", FRV_BUILTIN_MQMACXHS, 0, 0 }
}

Definition at line 8273 of file frv.c.

Initial value:

{
  { CODE_FOR_maddaccs, "__MADDACCS", FRV_BUILTIN_MADDACCS, 0, 0 },
  { CODE_FOR_msubaccs, "__MSUBACCS", FRV_BUILTIN_MSUBACCS, 0, 0 },
  { CODE_FOR_masaccs, "__MASACCS", FRV_BUILTIN_MASACCS, 0, 0 },
  { CODE_FOR_mdaddaccs, "__MDADDACCS", FRV_BUILTIN_MDADDACCS, 0, 0 },
  { CODE_FOR_mdsubaccs, "__MDSUBACCS", FRV_BUILTIN_MDSUBACCS, 0, 0 },
  { CODE_FOR_mdasaccs, "__MDASACCS", FRV_BUILTIN_MDASACCS, 0, 0 }
}

Definition at line 8305 of file frv.c.

Definition at line 7067 of file frv.c.

Definition at line 7056 of file frv.c.

Definition at line 198 of file frv.c.

Definition at line 199 of file frv.c.

frv_cpu_t frv_cpu_type = CPU_TYPE

Definition at line 267 of file frv.c.

Definition at line 255 of file frv.c.

Definition at line 2397 of file frv.c.

int frv_insn_packing_flag [static]

Definition at line 1466 of file frv.c.

struct { ... } frv_packet [static]

unsigned int frv_packet_address [static]

Definition at line 8021 of file frv.c.

Definition at line 264 of file frv.c.

unsigned int frv_type_to_unit[TYPE_UNKNOWN+1] [static]

Definition at line 103 of file frv.c.

int frv_unit_codes[ARRAY_SIZE(frv_unit_names)] [static]

Definition at line 98 of file frv.c.

enum frv_insn_group frv_unit_groups[ARRAY_SIZE(frv_unit_names)] [static]

Initial value:

{
  GROUP_C,
  GROUP_I, GROUP_FM,
  GROUP_I, GROUP_FM,
  GROUP_I, GROUP_FM,
  GROUP_I, GROUP_FM,
  GROUP_B, GROUP_B
}

Definition at line 79 of file frv.c.

const char* const frv_unit_names[] [static]

Initial value:

{
  "c",
  "i0", "f0",
  "i1", "f1",
  "i2", "f2",
  "i3", "f3",
  "b0", "b1"
}

Definition at line 68 of file frv.c.

struct { ... } frv_packet_group groups[NUM_GROUPS]

rtx insns[ARRAY_SIZE(frv_unit_codes)]

Definition at line 7084 of file frv.c.

unsigned int issue_rate

Definition at line 7075 of file frv.c.

rtx mem

Definition at line 7066 of file frv.c.

struct { ... } mems[2]

Definition at line 7092 of file frv.c.

unsigned int num_insns

Definition at line 7080 of file frv.c.

unsigned int num_mems

Definition at line 7072 of file frv.c.

Definition at line 261 of file frv.c.

enum reg_class regno_reg_class[FIRST_PSEUDO_REGISTER]

Definition at line 258 of file frv.c.

regstate_t regstate[FIRST_PSEUDO_REGISTER]

Definition at line 7060 of file frv.c.

rtx sorted[ARRAY_SIZE(frv_unit_codes)]

Definition at line 7089 of file frv.c.


Generated on Wed Apr 8 14:20:12 2009 for Open64 by  doxygen 1.5.6