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

#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-flags.h"
#include "output.h"
#include "insn-attr.h"
#include "flags.h"
#include "recog.h"
#include "reload.h"
#include "toplev.h"
#include "obstack.h"
#include "tree.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
#include "function.h"
#include "ggc.h"
#include "target.h"
#include "target-def.h"
#include "tm_p.h"
#include "langhooks.h"
#include "tree-gimple.h"
#include "gt-m32c.h"

Include dependency graph for m32c.c:

Go to the source code of this file.

Defines

#define streq(a, b)   (strcmp ((a), (b)) == 0)
#define DEBUG0   0
#define DEBUG1   1
#define RTX_IS(x)   (streq (pattern, x))
#define IS_MEM_REGNO(regno)   ((regno) >= MEM0_REGNO && (regno) <= MEM7_REGNO)
#define IS_MEM_REG(rtx)   (GET_CODE (rtx) == REG && IS_MEM_REGNO (REGNO (rtx)))
#define IS_CR_REGNO(regno)   ((regno) >= SB_REGNO && (regno) <= PC_REGNO)
#define IS_CR_REG(rtx)   (GET_CODE (rtx) == REG && IS_CR_REGNO (REGNO (rtx)))
#define TARGET_HANDLE_OPTION   m32c_handle_option
#define TARGET_PROMOTE_FUNCTION_RETURN   m32c_promote_function_return
#define DEBUG_RELOAD   0
#define IS_REG(rtx, regno)
#define IS_PSEUDO(rtx, strict)
#define PUSHM_N   (sizeof(pushm_info)/sizeof(pushm_info[0]))
#define TARGET_PROMOTE_PROTOTYPES   m32c_promote_prototypes
#define TARGET_PASS_BY_REFERENCE   m32c_pass_by_reference
#define TARGET_VALID_POINTER_MODE   m32c_valid_pointer_mode
#define TARGET_STRUCT_VALUE_RTX   m32c_struct_value_rtx
#define TARGET_STRICT_ARGUMENT_NAMING   m32c_strict_argument_naming
#define A0(m, i)   gen_rtx_MEM (m, plus_constant (tramp, i))
#define TARGET_INIT_LIBFUNCS   m32c_init_libfuncs
#define BIG_FB_ADJ   0
#define TARGET_FIXED_CONDITION_CODE_REGS   m32c_fixed_condition_code_regs
#define TARGET_RTX_COSTS   m32c_rtx_costs
#define TARGET_ADDRESS_COST   m32c_address_cost
#define TARGET_HAVE_NAMED_SECTIONS   true
#define TARGET_ASM_INTEGER   m32c_asm_integer
#define M32C_ATTRIBUTES(decl)
#define TARGET_ATTRIBUTE_TABLE   m32c_attribute_table
#define TARGET_COMP_TYPE_ATTRIBUTES   m32c_comp_type_attributes
#define TARGET_INSERT_ATTRIBUTES   m32c_insert_attributes
#define DEBUG_MOV_OK   0
#define DEBUG_SPLIT   0
#define GFF(m, c, f)   if (mode == m && code == c) return f
#define DEBUG_CMP   0

Typedefs

typedef rtx(* shift_gen_func )(rtx, rtx, rtx)

Enumerations

enum  Push_Pop_Type { PP_pushm, PP_popm, PP_justcount }

Functions/Subroutines

static tree interrupt_handler (tree *, tree, tree, int, bool *)
static int interrupt_p (tree node)
static bool m32c_asm_integer (rtx, unsigned int, int)
static int m32c_comp_type_attributes (tree, tree)
static bool m32c_fixed_condition_code_regs (unsigned int *, unsigned int *)
static struct machine_functionm32c_init_machine_status (void)
static void m32c_insert_attributes (tree, tree *)
static bool m32c_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode, tree, bool)
static bool m32c_promote_prototypes (tree)
static int m32c_pushm_popm (Push_Pop_Type)
static bool m32c_strict_argument_naming (CUMULATIVE_ARGS *)
static rtx m32c_struct_value_rtx (tree, int)
static rtx m32c_subreg (enum machine_mode, rtx, enum machine_mode, int)
static int need_to_save (int)
static GTY (())
static void encode_pattern (rtx x)
static const char * reg_name_with_mode (int regno, enum machine_mode mode)
static int reg_push_size (int regno)
static int reduce_class (int original_class, int limiting_class, int returned_if_empty)
static int classes_intersect (int class1, int class2)
static int class_can_hold_mode (int class, enum machine_mode mode)
static bool m32c_handle_option (size_t code, const char *arg ATTRIBUTE_UNUSED, int value ATTRIBUTE_UNUSED)
void m32c_override_options (void)
void m32c_init_expanders (void)
bool m32c_promote_function_return (tree fntype ATTRIBUTE_UNUSED)
void m32c_conditional_register_usage (void)
int m32c_hard_regno_nregs (int regno, enum machine_mode mode)
int m32c_hard_regno_ok (int regno, enum machine_mode mode)
int m32c_modes_tieable_p (enum machine_mode m1, enum machine_mode m2)
enum machine_mode m32c_regno_reg_class (int regno)
int m32c_reg_class_from_constraint (char c ATTRIBUTE_UNUSED, const char *s)
int m32c_regno_ok_for_base_p (int regno)
int m32c_preferred_reload_class (rtx x, int rclass)
int m32c_preferred_output_reload_class (rtx x, int rclass)
int m32c_limit_reload_class (enum machine_mode mode, int rclass)
int m32c_secondary_reload_class (int rclass, enum machine_mode mode, rtx x)
int m32c_class_likely_spilled_p (int regclass)
int m32c_class_max_nregs (int regclass, enum machine_mode mode)
int m32c_cannot_change_mode_class (enum machine_mode from, enum machine_mode to, int rclass)
int m32c_const_ok_for_constraint_p (HOST_WIDE_INT value, char c ATTRIBUTE_UNUSED, const char *str)
int m32c_extra_constraint_p2 (rtx value, char c ATTRIBUTE_UNUSED, const char *str)
int m32c_extra_constraint_p (rtx value, char c, const char *str)
int m32c_extra_memory_constraint (char c, const char *str ATTRIBUTE_UNUSED)
int m32c_extra_address_constraint (char c, const char *str ATTRIBUTE_UNUSED)
rtx m32c_return_addr_rtx (int count)
rtx m32c_incoming_return_addr_rtx (void)
int m32c_eh_return_data_regno (int n)
rtx m32c_eh_return_stackadj_rtx (void)
unsigned int m32c_dwarf_frame_regnum (int n)
int m32c_initial_elimination_offset (int from, int to)
static bool m32c_promote_prototypes (tree fntype ATTRIBUTE_UNUSED)
int m32c_push_rounding (int n)
rtx m32c_function_arg (CUMULATIVE_ARGS *ca, enum machine_mode mode, tree type, int named)
static bool m32c_pass_by_reference (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, tree type ATTRIBUTE_UNUSED, bool named ATTRIBUTE_UNUSED)
void m32c_init_cumulative_args (CUMULATIVE_ARGS *ca, tree fntype, rtx libname ATTRIBUTE_UNUSED, tree fndecl, int n_named_args ATTRIBUTE_UNUSED)
void m32c_function_arg_advance (CUMULATIVE_ARGS *ca, enum machine_mode mode ATTRIBUTE_UNUSED, tree type ATTRIBUTE_UNUSED, int named ATTRIBUTE_UNUSED)
int m32c_function_arg_regno_p (int r)
static bool m32c_valid_pointer_mode (enum machine_mode mode)
rtx m32c_libcall_value (enum machine_mode mode)
rtx m32c_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
static rtx m32c_struct_value_rtx (tree fndecl ATTRIBUTE_UNUSED, int incoming ATTRIBUTE_UNUSED)
int m32c_epilogue_uses (int regno ATTRIBUTE_UNUSED)
static bool m32c_strict_argument_naming (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED)
int m32c_trampoline_size (void)
int m32c_trampoline_alignment (void)
void m32c_initialize_trampoline (rtx tramp, rtx function, rtx chainval)
static void m32c_init_libfuncs (void)
int m32c_legitimate_address_p (enum machine_mode mode, rtx x, int strict)
int m32c_reg_ok_for_base_p (rtx x, int strict)
int m32c_legitimize_address (rtx *x ATTRIBUTE_UNUSED, rtx oldx ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED)
int m32c_legitimize_reload_address (rtx *x, enum machine_mode mode, int opnum, int type, int ind_levels ATTRIBUTE_UNUSED)
int m32c_mode_dependent_address (rtx addr)
int m32c_legitimate_constant_p (rtx x ATTRIBUTE_UNUSED)
int m32c_register_move_cost (enum machine_mode mode, int from, int to)
int m32c_memory_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED, int reg_class ATTRIBUTE_UNUSED, int in ATTRIBUTE_UNUSED)
static bool m32c_rtx_costs (rtx x, int code, int outer_code, int *total)
static int m32c_address_cost (rtx addr)
void m32c_print_operand (FILE *file, rtx x, int code)
int m32c_print_operand_punct_valid_p (int c)
void m32c_print_operand_address (FILE *stream, rtx address)
void m32c_output_reg_push (FILE *s, int regno)
void m32c_output_reg_pop (FILE *s, int regno)
static tree interrupt_handler (tree *node ATTRIBUTE_UNUSED, tree name ATTRIBUTE_UNUSED, tree args ATTRIBUTE_UNUSED, int flags ATTRIBUTE_UNUSED, bool *no_add_attrs ATTRIBUTE_UNUSED)
static int m32c_comp_type_attributes (tree type1 ATTRIBUTE_UNUSED, tree type2 ATTRIBUTE_UNUSED)
static void m32c_insert_attributes (tree node ATTRIBUTE_UNUSED, tree *attr_ptr ATTRIBUTE_UNUSED)
bool m32c_mov_ok (rtx *operands, enum machine_mode mode ATTRIBUTE_UNUSED)
bool m32c_immd_dbl_mov (rtx *operands, enum machine_mode mode ATTRIBUTE_UNUSED)
int m32c_prepare_move (rtx *operands, enum machine_mode mode)
int m32c_split_psi_p (rtx *operands)
int m32c_split_move (rtx *operands, enum machine_mode mode, int split_all)
int m32c_expand_setmemhi (rtx *operands)
int m32c_expand_movmemhi (rtx *operands)
int m32c_expand_movstr (rtx *operands)
int m32c_expand_cmpstr (rtx *operands)
static shift_gen_func shift_gen_func_for (int mode, int code)
int m32c_prepare_shift (rtx *operands, int scale, int shift_code)
void m32c_expand_neg_mulpsi3 (rtx *operands)
void m32c_pend_compare (rtx *operands)
void m32c_unpend_compare (void)
void m32c_expand_scc (int code, rtx *operands)
rtx m32c_cmp_flg_0 (rtx cmp)
int m32c_expand_movcc (rtx *operands)
int m32c_expand_insv (rtx *operands)
const char * m32c_scc_pattern (rtx *operands, RTX_CODE code)
static int m32c_leaf_function_p (void)
static bool m32c_function_needs_enter (void)
static rtx m32c_all_frame_related (rtx par)
void m32c_emit_prologue (void)
void m32c_emit_epilogue (void)
void m32c_emit_eh_epilogue (rtx ret_addr)
static int flags_needed_for_conditional (rtx cond)
static bool m32c_compare_redundant (rtx cmp, rtx *operands)
char * m32c_output_compare (rtx insn, rtx *operands)

Variables

static int class_contents [LIM_REG_CLASSES][1] = REG_CLASS_CONTENTS
static char pattern [30]
static char * patternp
static int * class_sizes = 0
int target_memregs = 16
static bool target_memregs_set = FALSE
int ok_to_change_target_memregs = TRUE
type {
   char   qi_regs
   char   hi_regs
   char   pi_regs
   char   si_regs
   char   di_regs
nregs_table [FIRST_PSEUDO_REGISTER]
type {
   char   code
   char const *   pattern
   char const *   format
conversions []
static char const * pushm_regs []
static struct attribute_spec m32c_attribute_table []
static rtx compare_op0
static rtx compare_op1
struct gcc_target targetm = TARGET_INITIALIZER


Define Documentation

#define A0 ( m,
i   )     gen_rtx_MEM (m, plus_constant (tramp, i))

#define BIG_FB_ADJ   0

Definition at line 1922 of file m32c.c.

Referenced by m32c_legitimize_reload_address().

#define DEBUG0   0

Definition at line 86 of file m32c.c.

#define DEBUG1   1

Definition at line 87 of file m32c.c.

#define DEBUG_CMP   0

Definition at line 3885 of file m32c.c.

#define DEBUG_MOV_OK   0

#define DEBUG_RELOAD   0

Definition at line 704 of file m32c.c.

#define DEBUG_SPLIT   0

Definition at line 2991 of file m32c.c.

#define GFF ( m,
c,
f   )     if (mode == m && code == c) return f

Referenced by shift_gen_func_for().

#define IS_CR_REG ( rtx   )     (GET_CODE (rtx) == REG && IS_CR_REGNO (REGNO (rtx)))

#define IS_CR_REGNO ( regno   )     ((regno) >= SB_REGNO && (regno) <= PC_REGNO)

#define IS_MEM_REG ( rtx   )     (GET_CODE (rtx) == REG && IS_MEM_REGNO (REGNO (rtx)))

#define IS_MEM_REGNO ( regno   )     ((regno) >= MEM0_REGNO && (regno) <= MEM7_REGNO)

#define IS_PSEUDO ( rtx,
strict   ) 

Value:

(!strict && GET_CODE (rtx) == REG \
             && (REGNO (rtx) == AP_REGNO \
           || REGNO (rtx) >= FIRST_PSEUDO_REGISTER))

Definition at line 873 of file m32c.c.

Referenced by m32c_legitimate_address_p(), and m32c_reg_ok_for_base_p().

#define IS_REG ( rtx,
regno   ) 

Value:

(GET_CODE (rtx) == REG \
         && REGNO (rtx) == regno)

Definition at line 868 of file m32c.c.

#define M32C_ATTRIBUTES ( decl   ) 

Value:

Definition at line 2695 of file m32c.c.

Referenced by interrupt_p().

#define PUSHM_N   (sizeof(pushm_info)/sizeof(pushm_info[0]))

Definition at line 1218 of file m32c.c.

Referenced by m32c_pushm_popm().

#define RTX_IS (  )     (streq (pattern, x))

#define streq ( a,
b   )     (strcmp ((a), (b)) == 0)

Definition at line 79 of file m32c.c.

#define TARGET_ADDRESS_COST   m32c_address_cost

Definition at line 2185 of file m32c.c.

#define TARGET_ASM_INTEGER   m32c_asm_integer

Definition at line 2216 of file m32c.c.

#define TARGET_ATTRIBUTE_TABLE   m32c_attribute_table

Definition at line 2726 of file m32c.c.

#define TARGET_COMP_TYPE_ATTRIBUTES   m32c_comp_type_attributes

Definition at line 2733 of file m32c.c.

#define TARGET_FIXED_CONDITION_CODE_REGS   m32c_fixed_condition_code_regs

Definition at line 2042 of file m32c.c.

#define TARGET_HANDLE_OPTION   m32c_handle_option

Definition at line 390 of file m32c.c.

#define TARGET_HAVE_NAMED_SECTIONS   true

Definition at line 2209 of file m32c.c.

#define TARGET_INIT_LIBFUNCS   m32c_init_libfuncs

Definition at line 1733 of file m32c.c.

#define TARGET_INSERT_ATTRIBUTES   m32c_insert_attributes

Definition at line 2743 of file m32c.c.

#define TARGET_PASS_BY_REFERENCE   m32c_pass_by_reference

Definition at line 1501 of file m32c.c.

#define TARGET_PROMOTE_FUNCTION_RETURN   m32c_promote_function_return

Definition at line 442 of file m32c.c.

#define TARGET_PROMOTE_PROTOTYPES   m32c_promote_prototypes

Definition at line 1416 of file m32c.c.

#define TARGET_RTX_COSTS   m32c_rtx_costs

Definition at line 2106 of file m32c.c.

#define TARGET_STRICT_ARGUMENT_NAMING   m32c_strict_argument_naming

Definition at line 1664 of file m32c.c.

#define TARGET_STRUCT_VALUE_RTX   m32c_struct_value_rtx

Definition at line 1642 of file m32c.c.

#define TARGET_VALID_POINTER_MODE   m32c_valid_pointer_mode

Definition at line 1555 of file m32c.c.


Typedef Documentation

typedef rtx(* shift_gen_func)(rtx, rtx, rtx)

Definition at line 3334 of file m32c.c.


Enumeration Type Documentation

Enumerator:
PP_pushm 
PP_popm 
PP_justcount 

Definition at line 56 of file m32c.c.


Function Documentation

static int class_can_hold_mode ( int  class,
enum machine_mode  mode 
) [static]

static int classes_intersect ( int  class1,
int  class2 
) [static]

static void encode_pattern ( rtx  x  )  [static]

Definition at line 218 of file m32c.c.

References pattern, and patternp.

Referenced by m32c_extra_constraint_p2(), m32c_legitimate_address_p(), and m32c_print_operand().

static int flags_needed_for_conditional ( rtx  cond  )  [static]

Definition at line 3861 of file m32c.c.

References EQ, GE, GET_CODE, GT, LE, LT, and NE.

Referenced by m32c_compare_redundant().

static GTY ( ()   )  [static]

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

Definition at line 2716 of file m32c.c.

References NULL_TREE.

static tree interrupt_handler ( tree ,
tree  ,
tree  ,
int  ,
bool  
) [static]

static int interrupt_p ( tree node  ATTRIBUTE_UNUSED  )  [static]

static int m32c_address_cost ( rtx  addr  )  [static]

Definition at line 2187 of file m32c.c.

References COSTS_N_INSNS, GET_CODE, and REG.

static rtx m32c_all_frame_related ( rtx  par  )  [static]

Definition at line 3743 of file m32c.c.

References F, i, len, XVECEXP, and XVECLEN.

Referenced by m32c_emit_prologue().

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

int m32c_cannot_change_mode_class ( enum machine_mode  from,
enum machine_mode  to,
int  rclass 
)

Definition at line 846 of file m32c.c.

References class_contents, class_names, fprintf(), GET_MODE_SIZE, and mode_name.

int m32c_class_likely_spilled_p ( int  regclass  ) 

Definition at line 816 of file m32c.c.

References A_REGS, and reg_class_size.

int m32c_class_max_nregs ( int  regclass,
enum machine_mode  mode 
)

Definition at line 827 of file m32c.c.

References class_contents, FIRST_PSEUDO_REGISTER, m32c_hard_regno_nregs(), max, and n.

rtx m32c_cmp_flg_0 ( rtx  cmp  ) 

Definition at line 3534 of file m32c.c.

References GEN_INT, gen_rtx_fmt_ee(), gen_rtx_REG(), GET_CODE, and GET_MODE.

static int m32c_comp_type_attributes ( tree type1  ATTRIBUTE_UNUSED,
tree type2  ATTRIBUTE_UNUSED 
) [static]

Definition at line 2735 of file m32c.c.

static int m32c_comp_type_attributes ( tree  ,
tree   
) [static]

static bool m32c_compare_redundant ( rtx  cmp,
rtx operands 
) [static]

void m32c_conditional_register_usage ( void   ) 

int m32c_const_ok_for_constraint_p ( HOST_WIDE_INT  value,
char c  ATTRIBUTE_UNUSED,
const char *  str 
)

Definition at line 881 of file m32c.c.

References b, exact_log2, and memcmp.

unsigned int m32c_dwarf_frame_regnum ( int  n  ) 

Definition at line 1147 of file m32c.c.

References DWARF_FRAME_REGISTERS, PC_REGNO, R0_REGNO, R1_REGNO, R2_REGNO, R3_REGNO, and SP_REGNO.

int m32c_eh_return_data_regno ( int  n  ) 

Definition at line 1111 of file m32c.c.

References INVALID_REGNUM.

rtx m32c_eh_return_stackadj_rtx ( void   ) 

Definition at line 1127 of file m32c.c.

References cfun, gen_reg_rtx(), and Pmode.

void m32c_emit_eh_epilogue ( rtx  ret_addr  ) 

Definition at line 3848 of file m32c.c.

References cfun, emit_barrier(), emit_jump_insn(), and gen_eh_epilogue().

void m32c_emit_epilogue ( void   ) 

void m32c_emit_prologue ( void   ) 

int m32c_epilogue_uses ( int regno  ATTRIBUTE_UNUSED  ) 

Definition at line 1654 of file m32c.c.

References cfun.

int m32c_expand_cmpstr ( rtx operands  ) 

Definition at line 3312 of file m32c.c.

References copy_to_mode_reg(), emit_insn(), FIRST_PSEUDO_REGISTER, GET_CODE, Pmode, REG, REGNO, and XEXP.

int m32c_expand_insv ( rtx operands  ) 

int m32c_expand_movcc ( rtx operands  ) 

int m32c_expand_movmemhi ( rtx operands  ) 

int m32c_expand_movstr ( rtx operands  ) 

void m32c_expand_neg_mulpsi3 ( rtx operands  ) 

void m32c_expand_scc ( int  code,
rtx operands 
)

Definition at line 3517 of file m32c.c.

References emit_insn(), gen_rtx_fmt_ee(), gen_rtx_SET, mode, and TARGET_A16.

int m32c_expand_setmemhi ( rtx operands  ) 

int m32c_extra_address_constraint ( char  c,
const char *str  ATTRIBUTE_UNUSED 
)

Definition at line 1057 of file m32c.c.

int m32c_extra_constraint_p ( rtx  value,
char  c,
const char *  str 
)

Definition at line 1035 of file m32c.c.

References CONSTRAINT_LEN, debug_rtx(), fprintf(), and m32c_extra_constraint_p2().

Referenced by m32c_split_move().

int m32c_extra_constraint_p2 ( rtx  value,
char c  ATTRIBUTE_UNUSED,
const char *  str 
)

int m32c_extra_memory_constraint ( char  c,
const char *str  ATTRIBUTE_UNUSED 
)

Definition at line 1049 of file m32c.c.

static bool m32c_fixed_condition_code_regs ( unsigned int *  p1,
unsigned int *  p2 
) [static]

Definition at line 2044 of file m32c.c.

References INVALID_REGNUM.

rtx m32c_function_arg ( CUMULATIVE_ARGS ca,
enum machine_mode  mode,
tree  type,
int  named 
)

void m32c_function_arg_advance ( CUMULATIVE_ARGS ca,
enum machine_mode mode  ATTRIBUTE_UNUSED,
tree type  ATTRIBUTE_UNUSED,
int named  ATTRIBUTE_UNUSED 
)

Definition at line 1531 of file m32c.c.

int m32c_function_arg_regno_p ( int  r  ) 

Definition at line 1544 of file m32c.c.

References R0_REGNO, R1_REGNO, R2_REGNO, and TARGET_A24.

static bool m32c_function_needs_enter ( void   )  [static]

Definition at line 3712 of file m32c.c.

References cfun, gen_rtx_REG(), get_insns(), insn, NEXT_INSN, Pmode, reg_mentioned_p(), sequence_stack, sp, and SP_REGNO.

Referenced by m32c_emit_prologue().

rtx m32c_function_value ( tree  valtype,
tree func  ATTRIBUTE_UNUSED 
)

Definition at line 1630 of file m32c.c.

References m32c_libcall_value(), mode, and TYPE_MODE.

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

Definition at line 392 of file m32c.c.

References atoi(), and TRUE.

int m32c_hard_regno_nregs ( int  regno,
enum machine_mode  mode 
)

int m32c_hard_regno_ok ( int  regno,
enum machine_mode  mode 
)

Definition at line 551 of file m32c.c.

References m32c_hard_regno_nregs().

bool m32c_immd_dbl_mov ( rtx operands,
enum machine_mode mode  ATTRIBUTE_UNUSED 
)

rtx m32c_incoming_return_addr_rtx ( void   ) 

Definition at line 1100 of file m32c.c.

References gen_rtx_MEM(), gen_rtx_REG(), and SP_REGNO.

void m32c_init_cumulative_args ( CUMULATIVE_ARGS ca,
tree  fntype,
rtx libname  ATTRIBUTE_UNUSED,
tree  fndecl,
int n_named_args  ATTRIBUTE_UNUSED 
)

Definition at line 1513 of file m32c.c.

References aggregate_value_p(), and TREE_TYPE.

void m32c_init_expanders ( void   ) 

Definition at line 434 of file m32c.c.

References init_machine_status, and m32c_init_machine_status().

static void m32c_init_libfuncs ( void   )  [static]

Definition at line 1735 of file m32c.c.

References EQ, GE, GT, LE, LT, NE, setcc_gen_code, and TARGET_A24.

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

Definition at line 422 of file m32c.c.

References ggc_alloc_cleared, and machine.

Referenced by m32c_init_expanders().

int m32c_initial_elimination_offset ( int  from,
int  to 
)

void m32c_initialize_trampoline ( rtx  tramp,
rtx  function,
rtx  chainval 
)

Definition at line 1702 of file m32c.c.

References A0, emit_move_insn(), GEN_INT, and TARGET_A16.

static void m32c_insert_attributes ( tree node  ATTRIBUTE_UNUSED,
tree *attr_ptr  ATTRIBUTE_UNUSED 
) [static]

Definition at line 2745 of file m32c.c.

static void m32c_insert_attributes ( tree  ,
tree  
) [static]

static int m32c_leaf_function_p ( void   )  [static]

Definition at line 3685 of file m32c.c.

References cfun, leaf_function_p(), and sequence_stack.

Referenced by m32c_emit_prologue().

int m32c_legitimate_address_p ( enum machine_mode  mode,
rtx  x,
int  strict 
)

int m32c_legitimate_constant_p ( rtx ATTRIBUTE_UNUSED  ) 

Definition at line 2033 of file m32c.c.

int m32c_legitimize_address ( rtx *x  ATTRIBUTE_UNUSED,
rtx oldx  ATTRIBUTE_UNUSED,
enum machine_mode mode  ATTRIBUTE_UNUSED 
)

int m32c_legitimize_reload_address ( rtx x,
enum machine_mode  mode,
int  opnum,
int  type,
int ind_levels  ATTRIBUTE_UNUSED 
)

rtx m32c_libcall_value ( enum machine_mode  mode  ) 

int m32c_limit_reload_class ( enum machine_mode  mode,
int  rclass 
)

Definition at line 767 of file m32c.c.

References A_REGS, class_names, DI_REGS, fprintf(), HI_REGS, HL_REGS, mode_name, reduce_class(), and SI_REGS.

int m32c_memory_move_cost ( enum machine_mode mode  ATTRIBUTE_UNUSED,
int reg_class  ATTRIBUTE_UNUSED,
int in  ATTRIBUTE_UNUSED 
)

Definition at line 2095 of file m32c.c.

References COSTS_N_INSNS.

int m32c_mode_dependent_address ( rtx  addr  ) 

Definition at line 2023 of file m32c.c.

References GET_CODE.

int m32c_modes_tieable_p ( enum machine_mode  m1,
enum machine_mode  m2 
)

Definition at line 561 of file m32c.c.

References GET_MODE_SIZE.

bool m32c_mov_ok ( rtx operands,
enum machine_mode mode  ATTRIBUTE_UNUSED 
)

Definition at line 2759 of file m32c.c.

References debug_rtx(), fprintf(), GET_CODE, MEM, mode, mode_name, reload_completed, TARGET_A24, and XEXP.

char* m32c_output_compare ( rtx  insn,
rtx operands 
)

Definition at line 4072 of file m32c.c.

References fprintf(), GET_MODE, GET_MODE_SIZE, and m32c_compare_redundant().

void m32c_output_reg_pop ( FILE s,
int  regno 
)

Definition at line 2682 of file m32c.c.

References fprintf(), reg_names, and reg_push_size().

void m32c_output_reg_push ( FILE s,
int  regno 
)

Definition at line 2671 of file m32c.c.

References fprintf(), reg_names, and reg_push_size().

void m32c_override_options ( void   ) 

Definition at line 407 of file m32c.c.

References error().

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

Definition at line 1503 of file m32c.c.

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

void m32c_pend_compare ( rtx operands  ) 

Definition at line 3496 of file m32c.c.

int m32c_preferred_output_reload_class ( rtx  x,
int  rclass 
)

Definition at line 758 of file m32c.c.

References m32c_preferred_reload_class().

int m32c_preferred_reload_class ( rtx  x,
int  rclass 
)

int m32c_prepare_move ( rtx operands,
enum machine_mode  mode 
)

int m32c_prepare_shift ( rtx operands,
int  scale,
int  shift_code 
)

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

void m32c_print_operand_address ( FILE stream,
rtx  address 
)

Definition at line 2662 of file m32c.c.

References gcc_assert, GET_CODE, m32c_print_operand(), MEM, and XEXP.

int m32c_print_operand_punct_valid_p ( int  c  ) 

Definition at line 2653 of file m32c.c.

bool m32c_promote_function_return ( tree fntype  ATTRIBUTE_UNUSED  ) 

Definition at line 444 of file m32c.c.

static bool m32c_promote_prototypes ( tree fntype  ATTRIBUTE_UNUSED  )  [static]

Definition at line 1418 of file m32c.c.

static bool m32c_promote_prototypes ( tree   )  [static]

int m32c_push_rounding ( int  n  ) 

Definition at line 1426 of file m32c.c.

References TARGET_M16C, and TARGET_R8C.

static int m32c_pushm_popm ( Push_Pop_Type  ppt  )  [static]

int m32c_reg_class_from_constraint ( char c  ATTRIBUTE_UNUSED,
const char *  s 
)

int m32c_reg_ok_for_base_p ( rtx  x,
int  strict 
)

Definition at line 1880 of file m32c.c.

References GET_CODE, IS_PSEUDO, REG, REGNO, and SP_REGNO.

int m32c_register_move_cost ( enum machine_mode  mode,
int  from,
int  to 
)

int m32c_regno_ok_for_base_p ( int  regno  ) 

Definition at line 696 of file m32c.c.

References FIRST_PSEUDO_REGISTER.

enum machine_mode m32c_regno_reg_class ( int  regno  ) 

rtx m32c_return_addr_rtx ( int  count  ) 

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

Definition at line 2108 of file m32c.c.

References addr(), COSTS_N_INSNS, dest, EQ, GE, GET_CODE, GET_MODE, GT, INTVAL, LE, LT, NE, REG, REGNO, SET, TARGET_A16, and XEXP.

const char* m32c_scc_pattern ( rtx operands,
RTX_CODE  code 
)

Definition at line 3664 of file m32c.c.

References buf, EQ, GET_CODE, GET_RTX_NAME, NE, R0_REGNO, REG, REGNO, and sprintf().

int m32c_secondary_reload_class ( int  rclass,
enum machine_mode  mode,
rtx  x 
)

int m32c_split_move ( rtx operands,
enum machine_mode  mode,
int  split_all 
)

int m32c_split_psi_p ( rtx operands  ) 

Definition at line 2997 of file m32c.c.

References debug_rtx(), fprintf(), GET_CODE, MEM, TARGET_A16, and XEXP.

static bool m32c_strict_argument_naming ( CUMULATIVE_ARGS *ca  ATTRIBUTE_UNUSED  )  [static]

Definition at line 1666 of file m32c.c.

static bool m32c_strict_argument_naming ( CUMULATIVE_ARGS  )  [static]

static rtx m32c_struct_value_rtx ( tree fndecl  ATTRIBUTE_UNUSED,
int incoming  ATTRIBUTE_UNUSED 
) [static]

Definition at line 1644 of file m32c.c.

static rtx m32c_struct_value_rtx ( tree  ,
int   
) [static]

static rtx m32c_subreg ( enum machine_mode  outer,
rtx  x,
enum machine_mode  inner,
int  byte 
) [static]

int m32c_trampoline_alignment ( void   ) 

Definition at line 1695 of file m32c.c.

int m32c_trampoline_size ( void   ) 

Definition at line 1685 of file m32c.c.

References TARGET_A16.

void m32c_unpend_compare ( void   ) 

Definition at line 3503 of file m32c.c.

References emit_insn(), and GET_MODE.

static bool m32c_valid_pointer_mode ( enum machine_mode  mode  )  [static]

Definition at line 1557 of file m32c.c.

static int need_to_save ( int  regno  )  [static]

Definition at line 1228 of file m32c.c.

References call_used_regs, cfun, fixed_regs, FP_REGNO, and regs_ever_live.

Referenced by m32c_pushm_popm().

static int reduce_class ( int  original_class,
int  limiting_class,
int  returned_if_empty 
) [static]

static const char* reg_name_with_mode ( int  regno,
enum machine_mode  mode 
) [static]

Definition at line 230 of file m32c.c.

References GET_MODE_SIZE, R0_REGNO, R1_REGNO, reg_names, and TARGET_A16.

Referenced by m32c_print_operand().

static int reg_push_size ( int  regno  )  [static]

Definition at line 257 of file m32c.c.

References gcc_unreachable, R0_REGNO, R1_REGNO, R2_REGNO, R3_REGNO, SP_REGNO, and TARGET_A16.

Referenced by m32c_output_reg_pop(), and m32c_output_reg_push().

static shift_gen_func shift_gen_func_for ( int  mode,
int  code 
) [static]

Definition at line 3337 of file m32c.c.

References gcc_unreachable, GFF, and TARGET_A16.

Referenced by m32c_prepare_shift().


Variable Documentation

int class_contents[LIM_REG_CLASSES][1] = REG_CLASS_CONTENTS [static]

int* class_sizes = 0 [static]

Definition at line 282 of file m32c.c.

char code

Definition at line 2246 of file m32c.c.

rtx compare_op0 [static]

Definition at line 3493 of file m32c.c.

rtx compare_op1 [static]

Definition at line 3493 of file m32c.c.

struct { ... } conversions[] [static]

char di_regs

Definition at line 461 of file m32c.c.

char const* format

char hi_regs

Definition at line 458 of file m32c.c.

Initial value:

 {
  {"interrupt", 0, 0, false, false, false, interrupt_handler},
  {0, 0, 0, 0, 0, 0, 0}
}

Definition at line 2727 of file m32c.c.

struct { ... } nregs_table[FIRST_PSEUDO_REGISTER] [static]

Referenced by m32c_hard_regno_nregs().

Definition at line 387 of file m32c.c.

Referenced by m32c_pragma_memregs().

char const* pattern [static]

char * patternp [static]

Definition at line 97 of file m32c.c.

Referenced by encode_pattern(), and GTY().

char pi_regs

Definition at line 459 of file m32c.c.

char const* pushm_regs[] [static]

Initial value:

 {
  "fb", "sb", "a1", "a0", "r3", "r2", "r1", "r0"
}

Definition at line 2292 of file m32c.c.

char qi_regs

Definition at line 457 of file m32c.c.

char si_regs

Definition at line 460 of file m32c.c.

int target_memregs = 16

Definition at line 385 of file m32c.c.

Referenced by m32c_pragma_memregs().

bool target_memregs_set = FALSE [static]

Definition at line 386 of file m32c.c.

struct gcc_target targetm = TARGET_INITIALIZER

Definition at line 4094 of file m32c.c.


Generated on Wed Apr 8 14:18:19 2009 for Open64 by  doxygen 1.5.6