osprey/kgccfe/gnu/config/dsp16xx/dsp16xx.c File Reference

#include "config.h"
#include "system.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "real.h"
#include "insn-config.h"
#include "conditions.h"
#include "output.h"
#include "insn-attr.h"
#include "tree.h"
#include "expr.h"
#include "function.h"
#include "flags.h"
#include "ggc.h"
#include "toplev.h"
#include "recog.h"
#include "tm_p.h"
#include "target.h"
#include "target-def.h"

Include dependency graph for dsp16xx.c:

Go to the source code of this file.

Defines

#define SHIFT_INDEX_1   0
#define SHIFT_INDEX_4   1
#define SHIFT_INDEX_8   2
#define SHIFT_INDEX_16   3
#define TARGET_ASM_BYTE_OP   "\tint\t"
#define TARGET_ASM_ALIGNED_HI_OP   NULL
#define TARGET_ASM_ALIGNED_SI_OP   NULL
#define TARGET_ASM_FUNCTION_PROLOGUE   dsp16xx_output_function_prologue
#define TARGET_ASM_FUNCTION_EPILOGUE   dsp16xx_output_function_epilogue

Functions/Subroutines

rtx dsp16xx_compare_gen PARAMS (())
static int reg_save_size PARAMS ((void))
static void
dsp16xx_output_function_prologue 
PARAMS ((FILE *, HOST_WIDE_INT))
int hard_regno_mode_ok (int regno, enum machine_mode mode)
enum reg_class dsp16xx_reg_class_from_letter (int c)
int regno_reg_class (int regno)
int class_max_nregs (class, enum machine_mode mode)
enum reg_class limit_reload_class (mode, enum reg_class class)
int dsp16xx_register_move_cost (enum reg_class from, enum reg_class to)
enum reg_class preferred_reload_class (rtx x, enum reg_class class)
enum reg_class secondary_reload_class (enum reg_class class, enum machine_mode mode, rtx in)
int symbolic_address_operand (rtx op, mode)
int symbolic_address_p (rtx op)
int Y_address_operand (rtx op, enum machine_mode mode)
int sp_operand (rtx op, mode)
int sp_operand2 (rtx op, mode)
int nonmemory_arith_operand (rtx op, enum machine_mode mode)
int arith_reg_operand (rtx op, enum machine_mode mode)
int call_address_operand (rtx op, mode)
int dsp16xx_comparison_operator (rtx op, enum machine_mode mode)
void notice_update_cc (rtx exp)
int dsp16xx_makes_calls ()
long compute_frame_size (int size)
int dsp16xx_call_saved_register (int regno)
int ybase_regs_ever_used ()
static void dsp16xx_output_function_prologue (FILE *file, HOST_WIDE_INT size)
void init_emulation_routines ()
static void dsp16xx_output_function_epilogue (FILE *file, size)
int emit_move_sequence (rtx *operands, enum machine_mode mode)
void double_reg_from_memory (operands)
void double_reg_to_memory (operands)
void override_options ()
int next_cc_user_unsigned (rtx insn)
enum rtx_code next_cc_user_code (rtx insn)
void print_operand (FILE *file, rtx op, int letter)
void print_operand_address (FILE *file, rtx addr)
void output_dsp16xx_float_const (rtx *operands)
static int reg_save_size ()
int initial_frame_pointer_offset ()
void emit_1600_core_shift (enum rtx_code shift_op, rtx *operands, int shift_amount)
int num_1600_core_shifts (int shift_amount)
void asm_output_common (FILE *file, const char *name, size, int rounded)
void asm_output_local (FILE *file, const char *name, size, int rounded)
int dsp16xx_address_cost (rtx addr)
struct rtx_def * dsp16xx_function_arg (CUMULATIVE_ARGS args_so_far, enum machine_mode mode, tree type, int named)
void dsp16xx_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type, named)
void coff_dsp16xx_file_start (FILE *file)
void luxworks_dsp16xx_file_start (FILE *file)
rtx gen_tst_reg (rtx x)
rtx gen_compare_reg (enum rtx_code code, rtx x, rtx y)
const char * output_block_move (operands)
int uns_comparison_operator (rtx op, enum machine_mode mode)
int signed_comparison_operator (rtx op, enum machine_mode mode)

Variables

const char * text_seg_name
const char * rsect_text
const char * data_seg_name
const char * rsect_data
const char * bss_seg_name
const char * rsect_bss
const char * const_seg_name
const char * rsect_const
const char * chip_name
const char * save_chip_name
rtx dsp16xx_compare_op0
rtx dsp16xx_compare_op1
static const char * fp
static const char * sp
static const char * rr
static const char * a1h
struct dsp16xx_frame_info current_frame_info
struct dsp16xx_frame_info zero_frame_info
rtx dsp16xx_addhf3_libcall = (rtx) 0
rtx dsp16xx_subhf3_libcall = (rtx) 0
rtx dsp16xx_mulhf3_libcall = (rtx) 0
rtx dsp16xx_divhf3_libcall = (rtx) 0
rtx dsp16xx_cmphf3_libcall = (rtx) 0
rtx dsp16xx_fixhfhi2_libcall = (rtx) 0
rtx dsp16xx_floathihf2_libcall = (rtx) 0
rtx dsp16xx_neghf2_libcall = (rtx) 0
rtx dsp16xx_mulhi3_libcall = (rtx) 0
rtx dsp16xx_udivqi3_libcall = (rtx) 0
rtx dsp16xx_udivhi3_libcall = (rtx) 0
rtx dsp16xx_divqi3_libcall = (rtx) 0
rtx dsp16xx_divhi3_libcall = (rtx) 0
rtx dsp16xx_modqi3_libcall = (rtx) 0
rtx dsp16xx_modhi3_libcall = (rtx) 0
rtx dsp16xx_umodqi3_libcall = (rtx) 0
rtx dsp16xx_umodhi3_libcall = (rtx) 0
rtx dsp16xx_ashrhi3_libcall = (rtx) 0
rtx dsp16xx_ashlhi3_libcall = (rtx) 0
rtx dsp16xx_ucmphi2_libcall = (rtx) 0
rtx dsp16xx_lshrhi3_libcall = (rtx) 0
static const char *const himode_reg_name [] = HIMODE_REGISTER_NAMES
static const char *const ashift_right_asm []
static const char *const ashift_right_asm_first []
static const char *const ashift_left_asm []
static const char *const ashift_left_asm_first []
static const char *const lshift_right_asm []
static const char *const lshift_right_asm_first []
struct gcc_target targetm = TARGET_INITIALIZER


Define Documentation

#define SHIFT_INDEX_1   0

Definition at line 96 of file dsp16xx.c.

#define SHIFT_INDEX_16   3

Definition at line 99 of file dsp16xx.c.

#define SHIFT_INDEX_4   1

Definition at line 97 of file dsp16xx.c.

#define SHIFT_INDEX_8   2

Definition at line 98 of file dsp16xx.c.

#define TARGET_ASM_ALIGNED_HI_OP   NULL

Definition at line 157 of file dsp16xx.c.

#define TARGET_ASM_ALIGNED_SI_OP   NULL

Definition at line 159 of file dsp16xx.c.

#define TARGET_ASM_BYTE_OP   "\tint\t"

Definition at line 155 of file dsp16xx.c.

#define TARGET_ASM_FUNCTION_EPILOGUE   dsp16xx_output_function_epilogue

Definition at line 164 of file dsp16xx.c.

#define TARGET_ASM_FUNCTION_PROLOGUE   dsp16xx_output_function_prologue

Definition at line 162 of file dsp16xx.c.


Function Documentation

int arith_reg_operand ( rtx  op,
enum machine_mode  mode 
)

void asm_output_common ( FILE file,
const char *  name,
size  ,
int  rounded 
)

Definition at line 2235 of file dsp16xx.c.

References ASM_GLOBALIZE_LABEL, assemble_name(), fprintf(), and fputs().

void asm_output_local ( FILE file,
const char *  name,
size  ,
int  rounded 
)

Definition at line 2252 of file dsp16xx.c.

References assemble_name(), fprintf(), and fputs().

int call_address_operand ( rtx  op,
mode   
)

Definition at line 1190 of file dsp16xx.c.

References REG_P, and symbolic_address_p().

int class_max_nregs ( class  ,
enum machine_mode  mode 
)

Definition at line 372 of file dsp16xx.c.

References GET_MODE_SIZE.

void coff_dsp16xx_file_start ( FILE file  ) 

Definition at line 2408 of file dsp16xx.c.

References fprintf(), and save_chip_name.

long compute_frame_size ( int  size  ) 

void double_reg_from_memory ( operands   ) 

Definition at line 1594 of file dsp16xx.c.

References addr(), asm_out_file, fprintf(), GET_CODE, INTVAL, offset, output_asm_insn(), PLUS, reg_names, REGNO, and XEXP.

void double_reg_to_memory ( operands   ) 

int dsp16xx_address_cost ( rtx  addr  ) 

int dsp16xx_call_saved_register ( int  regno  ) 

int dsp16xx_comparison_operator ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1203 of file dsp16xx.c.

References GE, GET_CODE, GET_MODE, GET_RTX_CLASS, and LT.

struct rtx_def* dsp16xx_function_arg ( CUMULATIVE_ARGS  args_so_far,
enum machine_mode  mode,
tree  type,
int  named 
) [read]

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

Definition at line 2388 of file dsp16xx.c.

References GET_MODE_CLASS, GET_MODE_SIZE, int_size_in_bytes(), MODE_FLOAT, and TARGET_REGPARM.

int dsp16xx_makes_calls (  ) 

Definition at line 1320 of file dsp16xx.c.

References GET_CODE, get_insns(), insn, and next_insn().

static void dsp16xx_output_function_epilogue ( FILE file,
size   
) [static]

static void dsp16xx_output_function_prologue ( FILE file,
HOST_WIDE_INT  size 
) [static]

enum reg_class dsp16xx_reg_class_from_letter ( int  c  ) 

int dsp16xx_register_move_cost ( enum reg_class  from,
enum reg_class  to 
)

void emit_1600_core_shift ( enum rtx_code  shift_op,
rtx operands,
int  shift_amount 
)

int emit_move_sequence ( rtx operands,
enum machine_mode  mode 
)

Definition at line 1578 of file dsp16xx.c.

References force_reg(), GET_CODE, MEM, and REG.

rtx gen_compare_reg ( enum rtx_code  code,
rtx  x,
rtx  y 
) [read]

rtx gen_tst_reg ( rtx  x  ) 

int hard_regno_mode_ok ( int  regno,
enum machine_mode  mode 
)

Definition at line 169 of file dsp16xx.c.

References IS_YBASE_REGISTER_WINDOW, REG_A0, REG_A1, REG_C0, REG_C1, REG_C2, REG_PROD, and REG_Y.

void init_emulation_routines (  ) 

int initial_frame_pointer_offset (  ) 

Definition at line 2031 of file dsp16xx.c.

References compute_frame_size(), get_frame_size(), and offset.

enum reg_class limit_reload_class ( mode  ,
enum reg_class  class 
)

Definition at line 380 of file dsp16xx.c.

void luxworks_dsp16xx_file_start ( FILE file  ) 

enum rtx_code next_cc_user_code ( rtx  insn  ) 

Definition at line 1770 of file dsp16xx.c.

References abort, comparison_operator(), GET_CODE, next_cc0_user(), PATTERN, SET, SET_SRC, and XEXP.

int next_cc_user_unsigned ( rtx  insn  ) 

Definition at line 1754 of file dsp16xx.c.

References next_cc_user_code().

int nonmemory_arith_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1170 of file dsp16xx.c.

References arith_reg_operand(), and immediate_operand().

void notice_update_cc ( rtx  exp  ) 

int num_1600_core_shifts ( int  shift_amount  ) 

Definition at line 2185 of file dsp16xx.c.

const char* output_block_move ( operands   ) 

Definition at line 2547 of file dsp16xx.c.

References asm_out_file, fprintf(), INTVAL, loop_count, and output_asm_insn().

void output_dsp16xx_float_const ( rtx operands  ) 

void override_options ( void   ) 

static void dsp16xx_output_function_prologue PARAMS ( (FILE *, HOST_WIDE_INT)   )  [static]

static int reg_save_size PARAMS ( (void  )  [static, read]

Definition at line 77 of file cplus-dem.c.

rtx dsp16xx_compare_gen PARAMS ( ()   ) 

enum reg_class preferred_reload_class ( rtx ,
enum reg_class  class 
)

void print_operand ( FILE file,
rtx  op,
int  letter 
)

void print_operand_address ( FILE file,
rtx  addr 
)

static int reg_save_size (  )  [static]

int regno_reg_class ( int  regno  ) 

enum reg_class secondary_reload_class ( enum reg_class  class,
enum machine_mode mode  ,
rtx  in 
)

int signed_comparison_operator ( rtx  op,
enum machine_mode mode   
)

Definition at line 2590 of file dsp16xx.c.

References GET_CODE, and GET_MODE.

int sp_operand ( rtx  op,
mode   
)

Definition at line 1138 of file dsp16xx.c.

References frame_pointer_rtx, GET_CODE, PLUS, stack_pointer_rtx, and XEXP.

int sp_operand2 ( rtx  op,
mode   
)

Definition at line 1149 of file dsp16xx.c.

References frame_pointer_rtx, GET_CODE, IS_ADDRESS_REGISTER, PLUS, REG_P, REGNO, stack_pointer_rtx, and XEXP.

int symbolic_address_operand ( rtx  op,
mode   
)

Definition at line 1096 of file dsp16xx.c.

References symbolic_address_p().

int symbolic_address_p ( rtx  op  ) 

Definition at line 1104 of file dsp16xx.c.

References CONST, GET_CODE, INTVAL, and XEXP.

int uns_comparison_operator ( rtx  op,
enum machine_mode  mode 
)

Definition at line 2567 of file dsp16xx.c.

References GET_CODE, and GET_MODE.

int Y_address_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1130 of file dsp16xx.c.

References memory_address_p(), and symbolic_address_p().

int ybase_regs_ever_used (  ) 

Definition at line 1385 of file dsp16xx.c.

References REG_YBASE0, REG_YBASE31, and regs_ever_live.


Variable Documentation

const char* a1h [static]

Definition at line 66 of file dsp16xx.c.

const char* const ashift_left_asm[] [static]

Initial value:

 
{
  "%0=%0<<1",
  "%0=%0<<4",
  "%0=%0<<8",
  "%0=%0<<16"
}

Definition at line 117 of file dsp16xx.c.

const char* const ashift_left_asm_first[] [static]

Initial value:

 
{
  "%0=%1<<1",
  "%0=%1<<4",
  "%0=%1<<8",
  "%0=%1<<16"
}

Definition at line 125 of file dsp16xx.c.

const char* const ashift_right_asm[] [static]

Initial value:

 
{
  "%0=%0>>1",
  "%0=%0>>4",
  "%0=%0>>8",
  "%0=%0>>16"
}

Definition at line 101 of file dsp16xx.c.

const char* const ashift_right_asm_first[] [static]

Initial value:

 
{
  "%0=%1>>1",
  "%0=%1>>4",
  "%0=%1>>8",
  "%0=%1>>16"
}

Definition at line 109 of file dsp16xx.c.

const char* bss_seg_name

Definition at line 48 of file dsp16xx.c.

const char* chip_name

Definition at line 53 of file dsp16xx.c.

const char* const_seg_name

Definition at line 50 of file dsp16xx.c.

Definition at line 68 of file dsp16xx.c.

const char* data_seg_name

Definition at line 46 of file dsp16xx.c.

Definition at line 71 of file dsp16xx.c.

Definition at line 90 of file dsp16xx.c.

Definition at line 89 of file dsp16xx.c.

Definition at line 75 of file dsp16xx.c.

Definition at line 59 of file dsp16xx.c.

Definition at line 60 of file dsp16xx.c.

Definition at line 74 of file dsp16xx.c.

Definition at line 84 of file dsp16xx.c.

Definition at line 83 of file dsp16xx.c.

Definition at line 76 of file dsp16xx.c.

Definition at line 77 of file dsp16xx.c.

Definition at line 92 of file dsp16xx.c.

Definition at line 86 of file dsp16xx.c.

Definition at line 85 of file dsp16xx.c.

Definition at line 73 of file dsp16xx.c.

Definition at line 80 of file dsp16xx.c.

Definition at line 78 of file dsp16xx.c.

Definition at line 72 of file dsp16xx.c.

Definition at line 91 of file dsp16xx.c.

Definition at line 82 of file dsp16xx.c.

Definition at line 81 of file dsp16xx.c.

Definition at line 88 of file dsp16xx.c.

Definition at line 87 of file dsp16xx.c.

const char* fp [static]

Definition at line 63 of file dsp16xx.c.

const char* const himode_reg_name[] = HIMODE_REGISTER_NAMES [static]

Definition at line 94 of file dsp16xx.c.

const char* const lshift_right_asm[] [static]

Initial value:

 
{
  "%0=%0>>1\n\t%0=%b0&0x7fff",
  "%0=%0>>4\n\t%0=%b0&0x0fff",
  "%0=%0>>8\n\t%0=%b0&0x00ff",
  "%0=%0>>16\n\t%0=%b0&0x0000"
}

Definition at line 133 of file dsp16xx.c.

const char* const lshift_right_asm_first[] [static]

Initial value:

 
{
  "%0=%1>>1\n\t%0=%b0&0x7fff",
  "%0=%1>>4\n\t%0=%b0&0x0fff",
  "%0=%1>>8\n\t%0=%b0&0x00ff",
  "%0=%1>>16\n\t%0=%b0&0x0000"
}

Definition at line 141 of file dsp16xx.c.

const char* rr [static]

Definition at line 65 of file dsp16xx.c.

const char* rsect_bss

Definition at line 49 of file dsp16xx.c.

const char* rsect_const

Definition at line 51 of file dsp16xx.c.

const char* rsect_data

Definition at line 47 of file dsp16xx.c.

const char* rsect_text

Definition at line 45 of file dsp16xx.c.

const char* save_chip_name

Definition at line 54 of file dsp16xx.c.

const char* sp [static]

Definition at line 64 of file dsp16xx.c.

struct gcc_target targetm = TARGET_INITIALIZER

Definition at line 166 of file dsp16xx.c.

const char* text_seg_name

Definition at line 44 of file dsp16xx.c.

Definition at line 69 of file dsp16xx.c.


Generated on Wed Apr 8 15:19:13 2009 for Open64 by  doxygen 1.5.6