osprey-gcc/gcc/optabs.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "toplev.h"
#include "insn-config.h"
#include "rtl.h"
#include "tree.h"
#include "tm_p.h"
#include "flags.h"
#include "function.h"
#include "except.h"
#include "expr.h"
#include "optabs.h"
#include "libfuncs.h"
#include "recog.h"
#include "reload.h"
#include "ggc.h"
#include "real.h"
#include "basic-block.h"
#include "target.h"
#include "gt-optabs.h"

Include dependency graph for optabs.c:

Go to the source code of this file.

Defines

#define HAVE_conditional_trap   0
#define gen_conditional_trap(a, b)   (abort (), NULL_RTX)

Functions/Subroutines

static GTY (())
static rtx widen_operand (rtx op, enum machine_mode mode, enum machine_mode oldmode, int unsignedp, int no_extend)
optab optab_for_tree_code (enum tree_code code, tree type)
rtx expand_ternary_op (enum machine_mode mode, optab ternary_optab, rtx op0, rtx op1, rtx op2, rtx target, int unsignedp)
static rtx simplify_expand_binop (enum machine_mode mode, optab binoptab, rtx op0, rtx op1, rtx target, int unsignedp, enum optab_methods methods)
bool force_expand_binop (enum machine_mode mode, optab binoptab, rtx op0, rtx op1, rtx target, int unsignedp, enum optab_methods methods)
static bool expand_superword_shift (optab binoptab, rtx outof_input, rtx superword_op1, rtx outof_target, rtx into_target, int unsignedp, enum optab_methods methods)
static bool expand_subword_shift (enum machine_mode op1_mode, optab binoptab, rtx outof_input, rtx into_input, rtx op1, rtx outof_target, rtx into_target, int unsignedp, enum optab_methods methods, unsigned HOST_WIDE_INT shift_mask)
static bool expand_doubleword_shift (enum machine_mode op1_mode, optab binoptab, rtx outof_input, rtx into_input, rtx op1, rtx outof_target, rtx into_target, int unsignedp, enum optab_methods methods, unsigned HOST_WIDE_INT shift_mask)
rtx expand_simple_binop (enum machine_mode mode, enum rtx_code code, rtx op0, rtx op1, rtx target, int unsignedp, enum optab_methods methods)
rtx expand_binop (enum machine_mode mode, optab binoptab, rtx op0, rtx op1, rtx target, int unsignedp, enum optab_methods methods)
rtx sign_expand_binop (enum machine_mode mode, optab uoptab, optab soptab, rtx op0, rtx op1, rtx target, int unsignedp, enum optab_methods methods)
int expand_twoval_unop (optab unoptab, rtx op0, rtx targ0, rtx targ1, int unsignedp)
int expand_twoval_binop (optab binoptab, rtx op0, rtx op1, rtx targ0, rtx targ1, int unsignedp)
bool expand_twoval_binop_libfunc (optab binoptab, rtx op0, rtx op1, rtx targ0, rtx targ1, enum rtx_code code)
rtx expand_simple_unop (enum machine_mode mode, enum rtx_code code, rtx op0, rtx target, int unsignedp)
static rtx widen_clz (enum machine_mode mode, rtx op0, rtx target)
static rtx expand_parity (enum machine_mode mode, rtx op0, rtx target)
static rtx lowpart_subreg_maybe_copy (enum machine_mode omode, rtx val, enum machine_mode imode)
static rtx expand_absneg_bit (enum rtx_code code, enum machine_mode mode, rtx op0, rtx target)
rtx expand_unop (enum machine_mode mode, optab unoptab, rtx op0, rtx target, int unsignedp)
rtx expand_abs_nojump (enum machine_mode mode, rtx op0, rtx target, int result_unsignedp)
rtx expand_abs (enum machine_mode mode, rtx op0, rtx target, int result_unsignedp, int safe)
rtx expand_copysign_absneg (enum machine_mode mode, rtx op0, rtx op1, rtx target, int bitpos, bool op0_is_abs)
static rtx expand_copysign_bit (enum machine_mode mode, rtx op0, rtx op1, rtx target, int bitpos, bool op0_is_abs)
rtx expand_copysign (rtx op0, rtx op1, rtx target)
void emit_unop_insn (int icode, rtx target, rtx op0, enum rtx_code code)
rtx emit_no_conflict_block (rtx insns, rtx target, rtx op0, rtx op1, rtx equiv)
void emit_libcall_block (rtx insns, rtx target, rtx result, rtx equiv)
int can_compare_p (enum rtx_code code, enum machine_mode mode, enum can_compare_purpose purpose)
static void prepare_cmp_insn (rtx *px, rtx *py, enum rtx_code *pcomparison, rtx size, enum machine_mode *pmode, int *punsignedp, enum can_compare_purpose purpose)
static rtx prepare_operand (int icode, rtx x, int opnum, enum machine_mode mode, enum machine_mode wider_mode, int unsignedp)
static void emit_cmp_and_jump_insn_1 (rtx x, rtx y, enum machine_mode mode, enum rtx_code comparison, int unsignedp, rtx label)
void emit_cmp_and_jump_insns (rtx x, rtx y, enum rtx_code comparison, rtx size, enum machine_mode mode, int unsignedp, rtx label)
void emit_cmp_insn (rtx x, rtx y, enum rtx_code comparison, rtx size, enum machine_mode mode, int unsignedp)
static void prepare_float_lib_cmp (rtx *px, rtx *py, enum rtx_code *pcomparison, enum machine_mode *pmode, int *punsignedp)
void emit_indirect_jump (rtx loc)
rtx emit_conditional_add (rtx target, enum rtx_code code, rtx op0, rtx op1, enum machine_mode cmode, rtx op2, rtx op3, enum machine_mode mode, int unsignedp)
rtx gen_add2_insn (rtx x, rtx y)
rtx gen_add3_insn (rtx r0, rtx r1, rtx c)
int have_add2_insn (rtx x, rtx y)
rtx gen_sub2_insn (rtx x, rtx y)
rtx gen_sub3_insn (rtx r0, rtx r1, rtx c)
int have_sub2_insn (rtx x, rtx y)
rtx gen_move_insn (rtx x, rtx y)
enum insn_code can_extend_p (enum machine_mode to_mode, enum machine_mode from_mode, int unsignedp)
rtx gen_extend_insn (rtx x, rtx y, enum machine_mode mto, enum machine_mode mfrom, int unsignedp)
static enum insn_code can_fix_p (enum machine_mode fixmode, enum machine_mode fltmode, int unsignedp, int *truncp_ptr)
static enum insn_code can_float_p (enum machine_mode fltmode, enum machine_mode fixmode, int unsignedp)
void expand_float (rtx to, rtx from, int unsignedp)
void expand_fix (rtx to, rtx from, int unsignedp)
int have_insn_for (enum rtx_code code, enum machine_mode mode)
static optab new_optab (void)
static convert_optab new_convert_optab (void)
static optab init_optab (enum rtx_code code)
static optab init_optabv (enum rtx_code code)
static convert_optab init_convert_optab (enum rtx_code code)
static void init_libfuncs (optab optable, int first_mode, int last_mode, const char *opname, int suffix)
static void init_integral_libfuncs (optab optable, const char *opname, int suffix)
static void init_floating_libfuncs (optab optable, const char *opname, int suffix)
static void init_interclass_conv_libfuncs (convert_optab tab, const char *opname, enum mode_class from_class, enum mode_class to_class)
static void init_intraclass_conv_libfuncs (convert_optab tab, const char *opname, enum mode_class class, bool widening)
rtx init_one_libfunc (const char *name)
void set_optab_libfunc (optab optable, enum machine_mode mode, const char *name)
void set_conv_libfunc (convert_optab optable, enum machine_mode tmode, enum machine_mode fmode, const char *name)
void init_optabs (void)
rtx gen_cond_trap (enum rtx_code code ATTRIBUTE_UNUSED, rtx op1, rtx op2 ATTRIBUTE_UNUSED, rtx tcode ATTRIBUTE_UNUSED)
static enum rtx_code get_rtx_code (enum tree_code tcode, bool unsignedp)
static rtx vector_compare_rtx (tree cond, bool unsignedp, enum insn_code icode)
static enum insn_code get_vcond_icode (tree expr, enum machine_mode mode)
bool expand_vec_cond_expr_p (tree expr, enum machine_mode vmode)
rtx expand_vec_cond_expr (tree vec_cond_expr, rtx target)

Variables

optab optab_table [OTI_MAX]
rtx libfunc_table [LTI_MAX]
convert_optab convert_optab_table [CTI_MAX]
optab code_to_optab [NUM_RTX_CODE+1]
rtxfun bcc_gen_fctn [NUM_RTX_CODE]
enum insn_code setcc_gen_code [NUM_RTX_CODE]
enum insn_code vcond_gen_code [NUM_MACHINE_MODES]
enum insn_code vcondu_gen_code [NUM_MACHINE_MODES]


Define Documentation

#define gen_conditional_trap ( a,
b   )     (abort (), NULL_RTX)

#define HAVE_conditional_trap   0


Function Documentation

int can_compare_p ( enum rtx_code  code,
enum machine_mode  mode,
enum can_compare_purpose  purpose 
)

enum insn_code can_extend_p ( enum machine_mode  to_mode,
enum machine_mode  from_mode,
int  unsignedp 
)

Definition at line 4160 of file optabs.c.

References CODE_FOR_ptr_extend, sext_optab, tab, and zext_optab.

static enum insn_code can_fix_p ( enum machine_mode  fixmode,
enum machine_mode  fltmode,
int  unsignedp,
int *  truncp_ptr 
) [static]

static enum insn_code can_float_p ( enum machine_mode  fltmode,
enum machine_mode  fixmode,
int  unsignedp 
) [static]

Definition at line 4225 of file optabs.c.

References sfloat_optab, tab, and ufloat_optab.

static void emit_cmp_and_jump_insn_1 ( rtx  x,
rtx  y,
enum machine_mode  mode,
enum rtx_code  comparison,
int  unsignedp,
rtx  label 
) [static]

void emit_cmp_and_jump_insns ( rtx  x,
rtx  y,
enum rtx_code  comparison,
rtx  size,
enum machine_mode  mode,
int  unsignedp,
rtx  label 
)

void emit_cmp_insn ( rtx  x,
rtx  y,
enum rtx_code  comparison,
rtx  size,
enum machine_mode  mode,
int  unsignedp 
)

Definition at line 3618 of file optabs.c.

References emit_cmp_and_jump_insns().

rtx emit_conditional_add ( rtx  target,
enum rtx_code  code,
rtx  op0,
rtx  op1,
enum machine_mode  cmode,
rtx  op2,
rtx  op3,
enum machine_mode  mode,
int  unsignedp 
)

Definition at line 3914 of file optabs.c.

void emit_indirect_jump ( rtx  loc  ) 

void emit_libcall_block ( rtx  insns,
rtx  target,
rtx  result,
rtx  equiv 
)

rtx emit_no_conflict_block ( rtx  insns,
rtx  target,
rtx  op0,
rtx  op1,
rtx  equiv 
)

void emit_unop_insn ( int  icode,
rtx  target,
rtx  op0,
enum rtx_code  code 
)

rtx expand_abs ( enum machine_mode  mode,
rtx  op0,
rtx  target,
int  result_unsignedp,
int  safe 
)

rtx expand_abs_nojump ( enum machine_mode  mode,
rtx  op0,
rtx  target,
int  result_unsignedp 
)

Definition at line 2547 of file optabs.c.

Referenced by expand_abs(), and noce_try_abs().

static rtx expand_absneg_bit ( enum rtx_code  code,
enum machine_mode  mode,
rtx  op0,
rtx  target 
) [static]

rtx expand_binop ( enum machine_mode  mode,
optab  binoptab,
rtx  op0,
rtx  op1,
rtx  target,
int  unsignedp,
enum optab_methods  methods 
)

Definition at line 786 of file optabs.c.

References add_optab, and_optab, ashl_optab, ashr_optab, BITS_PER_WORD, CODE_FOR_nothing, CONST0_RTX, const0_rtx, CONSTANT_P, convert_modes(), convert_move(), convert_to_mode(), copy_rtx(), copy_to_mode_reg(), COSTS_N_INSNS, delete_insns_since(), emit_insn(), emit_libcall_block(), emit_library_call_value(), emit_move_insn(), emit_no_conflict_block(), emit_store_flag_force(), end_sequence(), expand_binop(), expand_doubleword_shift(), flag_force_mem, force_not_mem(), force_reg(), GEN_FCN, GEN_INT, gen_lowpart, gen_reg_rtx(), gen_rtx_CLOBBER, gen_rtx_fmt_ee(), GET_CODE, get_insns(), get_last_insn(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_WIDER_MODE, GET_RTX_CLASS, GT, high, HOST_WIDE_INT, i, index(), INSN_P, insns, INTVAL, ior_optab, last, LCT_CONST, low, lshr_optab, LT, MODE_COMPLEX_FLOAT, MODE_FLOAT, MODE_INT, mov_optab, negate_rtx(), NEXT_INSN, NULL_RTX, operand_subword(), operand_subword_force(), OPTAB_DIRECT, OPTAB_LIB, OPTAB_LIB_WIDEN, OPTAB_MUST_WIDEN, OPTAB_WIDEN, optimize, optimize_size, REG_EQUAL, REG_P, ROTATE, rotl_optab, rotr_optab, RTX_COMM_ARITH, rtx_cost(), rtx_equal_p(), set_unique_reg_note(), shift_count, shift_op(), gcc_target::shift_truncation_mask, smul_highpart_optab, smul_optab, smul_widen_optab, start_sequence(), STORE_FLAG_VALUE, sub_optab, targetm, tmp, umul_highpart_optab, umul_widen_optab, UNITS_PER_WORD, UNKNOWN, volatile_refs_p(), widen_operand(), word_mode, WORDS_BIG_ENDIAN, x, and xor_optab.

rtx expand_copysign ( rtx  op0,
rtx  op1,
rtx  target 
)

Definition at line 2848 of file optabs.c.

Referenced by expand_builtin_copysign().

rtx expand_copysign_absneg ( enum machine_mode  mode,
rtx  op0,
rtx  op1,
rtx  target,
int  bitpos,
bool  op0_is_abs 
)

static rtx expand_copysign_bit ( enum machine_mode  mode,
rtx  op0,
rtx  op1,
rtx  target,
int  bitpos,
bool  op0_is_abs 
) [static]

static bool expand_doubleword_shift ( enum machine_mode  op1_mode,
optab  binoptab,
rtx  outof_input,
rtx  into_input,
rtx  op1,
rtx  outof_target,
rtx  into_target,
int  unsignedp,
enum optab_methods  methods,
unsigned HOST_WIDE_INT  shift_mask 
) [static]

void expand_fix ( rtx  to,
rtx  from,
int  unsignedp 
)

void expand_float ( rtx  to,
rtx  from,
int  unsignedp 
)

static rtx expand_parity ( enum machine_mode  mode,
rtx  op0,
rtx  target 
) [static]

rtx expand_simple_binop ( enum machine_mode  mode,
enum rtx_code  code,
rtx  op0,
rtx  op1,
rtx  target,
int  unsignedp,
enum optab_methods  methods 
)

Definition at line 763 of file optabs.c.

References abort, code_to_optab, and expand_binop().

rtx expand_simple_unop ( enum machine_mode  mode,
enum rtx_code  code,
rtx  op0,
rtx  target,
int  unsignedp 
)

Definition at line 2044 of file optabs.c.

References abort, code_to_optab, and expand_unop().

static bool expand_subword_shift ( enum machine_mode  op1_mode,
optab  binoptab,
rtx  outof_input,
rtx  into_input,
rtx  op1,
rtx  outof_target,
rtx  into_target,
int  unsignedp,
enum optab_methods  methods,
unsigned HOST_WIDE_INT  shift_mask 
) [static]

static bool expand_superword_shift ( optab  binoptab,
rtx  outof_input,
rtx  superword_op1,
rtx  outof_target,
rtx  into_target,
int  unsignedp,
enum optab_methods  methods 
) [static]

rtx expand_ternary_op ( enum machine_mode  mode,
optab  ternary_optab,
rtx  op0,
rtx  op1,
rtx  op2,
rtx  target,
int  unsignedp 
)

Definition at line 340 of file optabs.c.

Referenced by expand_expr_real_1().

int expand_twoval_binop ( optab  binoptab,
rtx  op0,
rtx  op1,
rtx  targ0,
rtx  targ1,
int  unsignedp 
)

bool expand_twoval_binop_libfunc ( optab  binoptab,
rtx  op0,
rtx  op1,
rtx  targ0,
rtx  targ1,
enum rtx_code  code 
)

Definition at line 2001 of file optabs.c.

Referenced by expand_divmod().

int expand_twoval_unop ( optab  unoptab,
rtx  op0,
rtx  targ0,
rtx  targ1,
int  unsignedp 
)

Definition at line 1777 of file optabs.c.

Referenced by expand_builtin_mathfn_3(), expand_builtin_sincos(), and expand_twoval_unop().

rtx expand_unop ( enum machine_mode  mode,
optab  unoptab,
rtx  op0,
rtx  target,
int  unsignedp 
)

rtx expand_vec_cond_expr ( tree  vec_cond_expr,
rtx  target 
)

Definition at line 5428 of file optabs.c.

Referenced by expand_expr_real_1().

bool expand_vec_cond_expr_p ( tree  expr,
enum machine_mode  vmode 
)

Definition at line 5418 of file optabs.c.

Referenced by vectorizable_condition().

bool force_expand_binop ( enum machine_mode  mode,
optab  binoptab,
rtx  op0,
rtx  op1,
rtx  target,
int  unsignedp,
enum optab_methods  methods 
)

rtx gen_add2_insn ( rtx  x,
rtx  y 
)

Definition at line 4021 of file optabs.c.

References abort, add_optab, GEN_FCN, and GET_MODE.

rtx gen_add3_insn ( rtx  r0,
rtx  r1,
rtx  c 
)

Definition at line 4039 of file optabs.c.

References add_optab, CODE_FOR_nothing, GEN_FCN, GET_MODE, and NULL_RTX.

rtx gen_cond_trap ( enum rtx_code code  ATTRIBUTE_UNUSED,
rtx  op1,
rtx op2  ATTRIBUTE_UNUSED,
rtx tcode  ATTRIBUTE_UNUSED 
)

rtx gen_extend_insn ( rtx  x,
rtx  y,
enum machine_mode  mto,
enum machine_mode  mfrom,
int  unsignedp 
)

Definition at line 4177 of file optabs.c.

References can_extend_p(), and GEN_FCN.

rtx gen_move_insn ( rtx  x,
rtx  y 
)

Definition at line 4144 of file optabs.c.

References emit_move_insn_1(), end_sequence(), get_insns(), and start_sequence().

rtx gen_sub2_insn ( rtx  x,
rtx  y 
)

Definition at line 4082 of file optabs.c.

References abort, GEN_FCN, GET_MODE, and sub_optab.

rtx gen_sub3_insn ( rtx  r0,
rtx  r1,
rtx  c 
)

Definition at line 4100 of file optabs.c.

References CODE_FOR_nothing, GEN_FCN, GET_MODE, NULL_RTX, and sub_optab.

static enum rtx_code get_rtx_code ( enum tree_code  tcode,
bool  unsignedp 
) [static]

Definition at line 5306 of file optabs.c.

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

Referenced by vector_compare_rtx().

static enum insn_code get_vcond_icode ( tree  expr,
enum machine_mode  mode 
) [inline, static]

static GTY ( ()   )  [static]

int have_add2_insn ( rtx  x,
rtx  y 
)

Definition at line 4056 of file optabs.c.

References abort, add_optab, CODE_FOR_nothing, and GET_MODE.

int have_insn_for ( enum rtx_code  code,
enum machine_mode  mode 
)

Definition at line 4625 of file optabs.c.

References CODE_FOR_nothing, and code_to_optab.

int have_sub2_insn ( rtx  x,
rtx  y 
)

Definition at line 4117 of file optabs.c.

References abort, CODE_FOR_nothing, GET_MODE, and sub_optab.

static convert_optab init_convert_optab ( enum rtx_code  code  )  [inline, static]

Definition at line 4684 of file optabs.c.

References new_convert_optab().

Referenced by init_optabs().

static void init_floating_libfuncs ( optab  optable,
const char *  opname,
int  suffix 
) [static]

Definition at line 4761 of file optabs.c.

References init_libfuncs().

static void init_integral_libfuncs ( optab  optable,
const char *  opname,
int  suffix 
) [static]

static void init_interclass_conv_libfuncs ( convert_optab  tab,
const char *  opname,
enum mode_class  from_class,
enum mode_class  to_class 
) [static]

static void init_intraclass_conv_libfuncs ( convert_optab  tab,
const char *  opname,
enum mode_class  class,
bool  widening 
) [static]

static void init_libfuncs ( optab  optable,
int  first_mode,
int  last_mode,
const char *  opname,
int  suffix 
) [static]

Definition at line 4709 of file optabs.c.

References alloca, GET_MODE_NAME, ggc_alloc_string(), init_one_libfunc(), p, q, strlen(), and TOLOWER.

rtx init_one_libfunc ( const char *  name  ) 

Definition at line 4880 of file optabs.c.

static optab init_optab ( enum rtx_code  code  )  [inline, static]

Definition at line 4664 of file optabs.c.

References code_to_optab, and new_optab().

void init_optabs ( void   ) 

Definition at line 4931 of file optabs.c.

References abort_libfunc, ABS, abs_optab, absv_optab, acos_optab, add_optab, addcc_optab, addv_optab, AND, and_optab, ashl_optab, ashr_optab, asin_optab, atan2_optab, atan_optab, btrunc_optab, cbranch_optab, ceil_optab, clrmem_optab, clz_optab, cmov_optab, cmp_optab, cmpmem_optab, cmpstr_optab, CODE_FOR_nothing, COMPARE, complex_double_type_node, copysign_optab, cos_optab, cstore_optab, ctz_optab, DIV, drem_optab, EQ, eq_optab, exp10_optab, exp2_optab, exp_optab, expm1_optab, ffs_optab, FIX, FLOAT, floor_optab, fmod_optab, ftrunc_optab, gcov_flush_libfunc, GE, ge_optab, gen_rtx_fmt_ee(), GT, gt_optab, HAVE_conditional_trap, i, ilogb_optab, init_all_optabs(), init_convert_optab(), init_floating_libfuncs(), init_integral_libfuncs(), init_interclass_conv_libfuncs(), init_intraclass_conv_libfuncs(), gcc_target::init_libfuncs, init_one_libfunc(), init_optab(), init_optabv(), INT_TYPE_SIZE, ior_optab, ldexp_optab, LE, le_optab, log10_optab, log1p_optab, log2_optab, log_optab, logb_optab, longjmp_libfunc, lshr_optab, LT, lt_optab, memcmp_libfunc, memcpy_libfunc, memmove_libfunc, memset_libfunc, MINUS, MOD, MODE_FLOAT, mode_for_size(), MODE_INT, mov_optab, movmem_optab, movmisalign_optab, movstrict_optab, NE, ne_optab, nearbyint_optab, neg_optab, negv_optab, NOT, NULL_RTX, NUM_MACHINE_MODES, NUM_RTX_CODE, one_cmpl_optab, parity_optab, PLUS, popcount_optab, pow_optab, powi_optab, profile_function_entry_libfunc, profile_function_exit_libfunc, push_optab, reload_in_optab, reload_out_optab, rint_optab, ROTATE, rotl_optab, rotr_optab, round_optab, sdiv_optab, sdivmod_optab, sdivv_optab, SET, setbits_libfunc, setcc_gen_code, setjmp_libfunc, sext_optab, sfix_optab, sfixtrunc_optab, sfloat_optab, SIGN_EXTEND, sin_optab, sincos_optab, smax_optab, smin_optab, smod_optab, smul_highpart_optab, smul_optab, smul_widen_optab, smulv_optab, sqrt_optab, strlen_optab, sub_optab, subv_optab, tan_optab, targetm, trunc_optab, TRUNCATE, tst_optab, TYPE_MODE, ucmp_optab, udiv_optab, udivmod_optab, ufix_optab, ufixtrunc_optab, ufloat_optab, umax_optab, umin_optab, umod_optab, umul_highpart_optab, umul_widen_optab, UNKNOWN, unord_optab, unwind_resume_libfunc, unwind_sjlj_register_libfunc, unwind_sjlj_unregister_libfunc, USING_SJLJ_EXCEPTIONS, vcond_gen_code, vcondu_gen_code, vec_extract_optab, vec_init_optab, vec_realign_load_optab, vec_set_optab, XOR, xor_optab, and zext_optab.

static optab init_optabv ( enum rtx_code  code  )  [inline, static]

Definition at line 4675 of file optabs.c.

References new_optab().

static rtx lowpart_subreg_maybe_copy ( enum machine_mode  omode,
rtx  val,
enum machine_mode  imode 
) [static]

Definition at line 2137 of file optabs.c.

References force_reg(), gcc_assert, lowpart_subreg(), NULL, and ret.

Referenced by expand_absneg_bit(), and expand_copysign_bit().

static convert_optab new_convert_optab ( void   )  [static]

Definition at line 4648 of file optabs.c.

References CODE_FOR_nothing, ggc_alloc, i, and NUM_MACHINE_MODES.

Referenced by init_convert_optab().

static optab new_optab ( void   )  [static]

Definition at line 4634 of file optabs.c.

References CODE_FOR_nothing, ggc_alloc, i, and NUM_MACHINE_MODES.

optab optab_for_tree_code ( enum tree_code  code,
tree  type 
)

static void prepare_cmp_insn ( rtx px,
rtx py,
enum rtx_code pcomparison,
rtx  size,
enum machine_mode pmode,
int *  punsignedp,
enum can_compare_purpose  purpose 
) [static]

static void prepare_float_lib_cmp ( rtx px,
rtx py,
enum rtx_code pcomparison,
enum machine_mode pmode,
int *  punsignedp 
) [static]

static rtx prepare_operand ( int  icode,
rtx  x,
int  opnum,
enum machine_mode  mode,
enum machine_mode  wider_mode,
int  unsignedp 
) [static]

Definition at line 3479 of file optabs.c.

References convert_modes(), copy_to_mode_reg(), no_new_pseudos, and NULL_RTX.

void set_conv_libfunc ( convert_optab  optable,
enum machine_mode  tmode,
enum machine_mode  fmode,
const char *  name 
)

void set_optab_libfunc ( optab  optable,
enum machine_mode  mode,
const char *  name 
)

rtx sign_expand_binop ( enum machine_mode  mode,
optab  uoptab,
optab  soptab,
rtx  op0,
rtx  op1,
rtx  target,
int  unsignedp,
enum optab_methods  methods 
)

Definition at line 1719 of file optabs.c.

References CODE_FOR_nothing, expand_binop(), OPTAB_DIRECT, OPTAB_LIB, and OPTAB_WIDEN.

static rtx simplify_expand_binop ( enum machine_mode  mode,
optab  binoptab,
rtx  op0,
rtx  op1,
rtx  target,
int  unsignedp,
enum optab_methods  methods 
) [static]

static rtx vector_compare_rtx ( tree  cond,
bool  unsignedp,
enum insn_code  icode 
) [static]

static rtx widen_clz ( enum machine_mode  mode,
rtx  op0,
rtx  target 
) [static]

static rtx widen_operand ( rtx  op,
enum machine_mode  mode,
enum machine_mode  oldmode,
int  unsignedp,
int  no_extend 
) [static]


Variable Documentation

rtxfun bcc_gen_fctn[NUM_RTX_CODE]

Definition at line 70 of file optabs.c.

optab code_to_optab[NUM_RTX_CODE+1]

Definition at line 65 of file optabs.c.

Definition at line 62 of file optabs.c.

rtx libfunc_table[LTI_MAX]

Definition at line 59 of file optabs.c.

optab optab_table[OTI_MAX]

Definition at line 57 of file optabs.c.

enum insn_code setcc_gen_code[NUM_RTX_CODE]

Definition at line 76 of file optabs.c.

enum insn_code vcond_gen_code[NUM_MACHINE_MODES]

Definition at line 90 of file optabs.c.

Referenced by get_vcond_icode(), and init_optabs().

enum insn_code vcondu_gen_code[NUM_MACHINE_MODES]

Definition at line 91 of file optabs.c.

Referenced by get_vcond_icode(), and init_optabs().


Generated on Wed Apr 8 15:41:20 2009 for Open64 by  doxygen 1.5.6