#include "config.h"#include "system.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 "gt-optabs.h"

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) |
| static int | expand_cmplxdiv_straight (rtx real0, rtx real1, rtx imag0, rtx imag1, rtx realr, rtx imagr, enum machine_mode submode, int unsignedp, enum optab_methods methods, enum mode_class class, optab binoptab) |
| static int | expand_cmplxdiv_wide (rtx real0, rtx real1, rtx imag0, rtx imag1, rtx realr, rtx imagr, enum machine_mode submode, int unsignedp, enum optab_methods methods, enum mode_class class, optab binoptab) |
| 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) |
| static rtx | expand_vector_binop (enum machine_mode mode, optab binoptab, rtx op0, rtx op1, rtx target, int unsignedp, enum optab_methods methods) |
| static rtx | expand_vector_unop (enum machine_mode mode, optab unoptab, rtx op0, rtx target, int unsignedp) |
| 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_binop (optab binoptab, rtx op0, rtx op1, rtx targ0, rtx targ1, int unsignedp) |
| rtx | expand_simple_unop (enum machine_mode mode, enum rtx_code code, rtx op0, rtx target, int unsignedp) |
| rtx | expand_unop (enum machine_mode mode, optab unoptab, rtx op0, rtx target, int unsignedp) |
| rtx | expand_abs (enum machine_mode mode, rtx op0, rtx target, int result_unsignedp, int safe) |
| rtx | expand_complex_abs (enum machine_mode mode, rtx op0, rtx target, int unsignedp) |
| 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) |
| void | emit_clr_insn (rtx x) |
| void | emit_0_to_1_insn (rtx x) |
| 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) |
| 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 | 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) |
| static rtx | ftruncify (rtx x) |
| 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 () |
| static optab | init_optab (enum rtx_code code) |
| static optab | init_optabv (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) |
| rtx | init_one_libfunc (char *name) const |
| void | init_optabs () |
| rtx | gen_cond_trap (code, rtx op1, op2, tcode) |
Variables | |
| optab | optab_table [OTI_MAX] |
| rtx | libfunc_table [LTI_MAX] |
| enum insn_code | extendtab [MAX_MACHINE_MODE][MAX_MACHINE_MODE][2] |
| enum insn_code | fixtab [NUM_MACHINE_MODES][NUM_MACHINE_MODES][2] |
| enum insn_code | fixtrunctab [NUM_MACHINE_MODES][NUM_MACHINE_MODES][2] |
| enum insn_code | floattab [NUM_MACHINE_MODES][NUM_MACHINE_MODES][2] |
| optab | code_to_optab [NUM_RTX_CODE+1] |
| rtxfun | bcc_gen_fctn [NUM_RTX_CODE] |
| enum insn_code | setcc_gen_code [NUM_RTX_CODE] |
Referenced by gen_cond_trap(), gen_conditional_trap(), and s390_emit_prologue().
| #define HAVE_conditional_trap 0 |
| int can_compare_p | ( | enum rtx_code | code, | |
| enum machine_mode | mode, | |||
| enum can_compare_purpose | purpose | |||
| ) |
Definition at line 3309 of file optabs.c.
Referenced by do_cmp_and_jump(), do_compare_rtx_and_jump(), do_jump(), do_store_flag(), expand_abs(), expand_expr(), expand_expr_real_1(), and prepare_cmp_insn().
| enum insn_code can_extend_p | ( | enum machine_mode | to_mode, | |
| enum machine_mode | from_mode, | |||
| int | unsignedp | |||
| ) |
Definition at line 4452 of file optabs.c.
Referenced by compress_float_constant(), convert_move(), gen_extend_insn(), and init_expr_once().
| static enum insn_code can_fix_p | ( | enum machine_mode | fixmode, | |
| enum machine_mode | fltmode, | |||
| int | unsignedp, | |||
| int * | truncp_ptr | |||
| ) | [static] |
Definition at line 4486 of file optabs.c.
References CODE_FOR_nothing, fixtab, fixtrunctab, and ftrunc_optab.
Referenced by expand_fix().
| static enum insn_code can_float_p | ( | enum machine_mode | fltmode, | |
| enum machine_mode | fixmode, | |||
| int | unsignedp | |||
| ) | [static] |
Definition at line 3294 of file optabs.c.
References const1_rtx, and emit_move_insn().
Referenced by expand_expr().
Definition at line 3284 of file optabs.c.
References const0_rtx, and emit_move_insn().
Referenced by expand_expr().
| 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] |
Definition at line 3588 of file optabs.c.
References abort, bcc_gen_fctn, cbranch_optab, cmp_optab, CODE_FOR_nothing, CONST0_RTX, emit_insn(), emit_jump_insn(), GEN_FCN, gen_rtx_fmt_ee(), GET_MODE_CLASS, GET_MODE_WIDER_MODE, MODE_COMPLEX_FLOAT, MODE_FLOAT, MODE_INT, prepare_operand(), PUT_MODE, and tst_optab.
Referenced by emit_cmp_and_jump_insns().
| void emit_cmp_and_jump_insns | ( | rtx | x, | |
| rtx | y, | |||
| enum rtx_code | comparison, | |||
| rtx | size, | |||
| enum machine_mode | mode, | |||
| int | unsignedp, | |||
| rtx | label | |||
| ) |
Definition at line 3672 of file optabs.c.
Referenced by allocate_dynamic_stack_space(), alpha_emit_floatuns(), build_post_landing_pads(), check_dbra_loop(), clipper_va_arg(), d30v_expand_builtin_va_arg(), do_cmp_and_jump(), do_compare_rtx_and_jump(), do_jump_if_equal(), do_tablejump(), emit_block_move_via_loop(), emit_case_bit_tests(), emit_case_nodes(), emit_cmp_insn(), expand_a_rotate(), expand_builtin_mathfn(), expand_cmplxdiv_wide(), expand_copysign_absneg(), expand_errno_check(), expand_expr(), expand_expr_real_1(), expand_expr_stmt(), expand_expr_stmt_value(), expand_fix(), expand_float(), gen_ffssi2(), i860_va_arg(), ia64_expand_atomic_op(), ia64_expand_fetch_and_op(), ia64_expand_op_and_fetch(), ix86_expand_aligntest(), ix86_expand_clrmem(), ix86_expand_clrstr(), ix86_expand_movmem(), ix86_expand_movstr(), ix86_expand_strlensi_unroll_1(), ix86_va_arg(), mips_va_arg(), probe_stack_range(), rs6000_va_arg(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_movmem(), s390_expand_setmem(), s390_va_arg(), sh_va_arg(), simplify_cmp_and_jump_insns(), sjlj_emit_dispatch_table(), sjlj_emit_function_enter(), sparc_emit_fixunsdi(), sparc_emit_floatunsdi(), sparc_expand_compare_and_swap_12(), sparc_struct_value_rtx(), stack_protect_epilogue(), store_expr(), try_casesi(), x86_emit_floatuns(), xstormy16_expand_builtin_va_arg(), xstormy16_expand_casesi(), and xtensa_va_arg().
| void emit_cmp_insn | ( | rtx | x, | |
| rtx | y, | |||
| enum rtx_code | comparison, | |||
| rtx | size, | |||
| enum machine_mode | mode, | |||
| int | unsignedp | |||
| ) |
Definition at line 3714 of file optabs.c.
Referenced by compare_from_rtx(), convert_move(), expand_bool_compare_and_swap(), expand_compare_and_swap_loop(), return_addr_rtx(), and sparc_emit_float_lib_cmp().
Definition at line 4074 of file optabs.c.
Referenced by expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_computed_goto(), expand_expr(), expand_goto(), fix_crossing_unconditional_branches(), and gen_builtin_longjmp().
Definition at line 3137 of file optabs.c.
Referenced by alpha_emit_xfloating_libcall(), alpha_legitimize_address(), c4x_emit_libcall(), c4x_emit_libcall_mulhi(), convert_move(), emit_library_call_value_1(), expand_binop(), expand_call(), expand_complex_abs(), expand_fix(), expand_float(), expand_twoval_binop_libfunc(), expand_unop(), ia64_expand_move(), ia64_expand_tls_address(), legitimize_tls_address(), m68hc11_emit_libcall(), mips_legitimize_tls_address(), prepare_float_lib_cmp(), and rs6000_legitimize_tls_address().
Definition at line 2996 of file optabs.c.
Referenced by alpha_expand_block_move(), convert_move(), expand_absneg_bit(), expand_binop(), expand_copysign_bit(), expand_expr(), and expand_unop().
Definition at line 2927 of file optabs.c.
Referenced by compress_float_constant(), convert_move(), expand_fix(), and expand_float().
| rtx expand_abs | ( | enum machine_mode | mode, | |
| rtx | op0, | |||
| rtx | target, | |||
| int | result_unsignedp, | |||
| int | safe | |||
| ) |
Definition at line 2625 of file optabs.c.
Referenced by expand_builtin_fabs(), expand_cmplxdiv_wide(), expand_divmod(), expand_expr(), and expand_expr_real_1().
| rtx expand_binop | ( | enum machine_mode | mode, | |
| optab | binoptab, | |||
| rtx | op0, | |||
| rtx | op1, | |||
| rtx | target, | |||
| int | unsignedp, | |||
| enum optab_methods | methods | |||
| ) |
Definition at line 680 of file optabs.c.
Referenced by adjust_stack(), allocate_dynamic_stack_space(), alpha_emit_set_const_1(), alpha_expand_block_clear(), alpha_expand_block_move(), alpha_expand_unaligned_load(), alpha_expand_unaligned_load_words(), alpha_expand_unaligned_store(), alpha_expand_unaligned_store_words(), alpha_initialize_trampoline(), anti_adjust_stack(), cris_expand_pic_call_address(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_zero_rtx(), do_store_flag(), emit_case_bit_tests(), emit_group_load(), emit_group_store(), emit_move_insn_1(), emit_push_insn(), emit_store_flag(), expand_abs(), expand_abs_nojump(), expand_absneg_bit(), expand_and(), expand_binop(), expand_builtin_mathfn_2(), expand_builtin_next_arg(), expand_builtin_signbit(), expand_cmplxdiv_straight(), expand_cmplxdiv_wide(), expand_complex_abs(), expand_copysign(), expand_copysign_absneg(), expand_copysign_bit(), expand_dec(), expand_divmod(), expand_doubleword_mult(), expand_expr(), expand_expr_real_1(), expand_fix(), expand_float(), expand_inc(), expand_increment(), expand_mult(), expand_mult_highpart(), expand_mult_highpart_optab(), expand_parity(), expand_powi(), expand_sdiv_pow2(), expand_shift(), expand_simple_binop(), expand_smod_pow2(), expand_subword_shift(), expand_unop(), expand_vector_binop(), expand_vector_unop(), extract_fixed_bit_field(), extract_split_bit_field(), gen_conditional_move(), hppa_builtin_saveregs(), ia64_expand_fetch_and_op(), ia64_expand_op_and_fetch(), ix86_expand_branch(), ix86_expand_int_movcc(), ix86_expand_strlensi_unroll_1(), mips_zero_if_equal(), mn10300_builtin_saveregs(), noce_emit_move_insn(), noce_try_sign_mask(), optimize_bitfield_assignment_op(), prepare_move_operands(), probe_stack_range(), push_block(), round_push(), rs6000_emit_sync(), rs6000_expand_compare_and_swapqhi(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_movmem(), s390_expand_setmem(), sign_expand_binop(), simplify_expand_binop(), sparc_initialize_trampoline(), store_expr(), store_fixed_bit_field(), widen_clz(), x86_initialize_trampoline(), and xstormy16_expand_casesi().
| static int expand_cmplxdiv_straight | ( | rtx | real0, | |
| rtx | real1, | |||
| rtx | imag0, | |||
| rtx | imag1, | |||
| rtx | realr, | |||
| rtx | imagr, | |||
| enum machine_mode | submode, | |||
| int | unsignedp, | |||
| enum optab_methods | methods, | |||
| enum mode_class | class, | |||
| optab | binoptab | |||
| ) | [static] |
Definition at line 257 of file optabs.c.
References add_optab, addv_optab, emit_move_insn(), expand_binop(), expand_divmod(), expand_unop(), force_reg(), MODE_COMPLEX_FLOAT, neg_optab, negv_optab, NULL_RTX, sdivv_optab, smul_optab, smulv_optab, sub_optab, and subv_optab.
Referenced by expand_binop().
| static int expand_cmplxdiv_wide | ( | rtx | real0, | |
| rtx | real1, | |||
| rtx | imag0, | |||
| rtx | imag1, | |||
| rtx | realr, | |||
| rtx | imagr, | |||
| enum machine_mode | submode, | |||
| int | unsignedp, | |||
| enum optab_methods | methods, | |||
| enum mode_class | class, | |||
| optab | binoptab | |||
| ) | [static] |
Definition at line 389 of file optabs.c.
References add_optab, addv_optab, emit_barrier(), emit_cmp_and_jump_insns(), emit_jump_insn(), emit_label(), emit_move_insn(), expand_abs(), expand_binop(), expand_divmod(), expand_unop(), force_reg(), gen_jump(), gen_label_rtx(), GET_MODE, LT, mode, MODE_COMPLEX_FLOAT, neg_optab, negv_optab, NULL_RTX, is::ratio, sdivv_optab, smul_optab, smulv_optab, sub_optab, and subv_optab.
Referenced by expand_binop().
| rtx expand_complex_abs | ( | enum machine_mode | mode, | |
| rtx | op0, | |||
| rtx | target, | |||
| int | unsignedp | |||
| ) |
Definition at line 2727 of file optabs.c.
References abort, abs_optab, absv_optab, add_optab, CODE_FOR_nothing, convert_modes(), convert_move(), convert_to_mode(), copy_to_mode_reg(), delete_insns_since(), emit_insn(), emit_libcall_block(), emit_library_call_value(), end_sequence(), expand_binop(), expand_mult(), expand_unop(), flag_force_mem, flag_trapv, force_not_mem(), GEN_FCN, gen_imagpart(), gen_lowpart, gen_realpart(), gen_reg_rtx(), gen_rtx_fmt_e(), get_insns(), get_last_insn(), GET_MODE, GET_MODE_CLASS, GET_MODE_INNER, GET_MODE_WIDER_MODE, INSN_P, insns, last, LCT_CONST, MODE_COMPLEX_INT, MODE_INT, NEXT_INSN, NULL_RTX, OPTAB_LIB_WIDEN, protect_from_queue(), sqrt_optab, and start_sequence().
Referenced by expand_complex_abs(), and expand_expr().
Definition at line 4788 of file optabs.c.
Referenced by expand_builtin_int_roundingfn(), expand_expr(), expand_expr_real_1(), expand_fix(), and force_operand().
Definition at line 4519 of file optabs.c.
Referenced by expand_expr(), expand_expr_real_1(), expand_float(), force_operand(), gen_divdi3(), gen_divsi3(), gen_udivdi3(), gen_udivsi3(), and x86_emit_floatuns().
| 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 653 of file optabs.c.
Referenced by alpha_expand_compare_and_swap_12(), alpha_expand_lock_test_and_set_12(), alpha_expand_unaligned_load(), alpha_expand_unaligned_store(), alpha_legitimize_address(), emit_block_move_via_loop(), emit_case_nodes(), emit_move_resolve_push(), emit_unrolled_add(), expand_builtin_apply(), expand_expr_addr_expr_1(), expand_main_function(), expand_sync_fetch_operation(), expand_sync_operation(), extract_force_align_mem_bit_field(), final_giv_value(), force_operand(), gen_edge_profiler(), gen_mod_pow2(), gen_mod_subtract(), gen_tablejump(), get_unaligned_offset(), ia64_expand_atomic_op(), ia64_expand_move(), ia64_expand_tls_address(), init_alignment_context(), instantiate_virtual_regs_in_insn(), ix86_expand_int_movcc(), ix86_expand_move(), ix86_expand_push(), ix86_expand_vector_init_duplicate(), ix86_expand_vector_init_general(), ix86_expand_vector_init_one_var(), legitimize_pic_address(), m32c_expand_neg_mulpsi3(), mdx_block_move_loop(), mips_block_move_loop(), move_movables(), noce_try_addcc(), noce_try_minmax(), noce_try_store_flag_constants(), noce_try_store_flag_inc(), noce_try_store_flag_mask(), romp_initialize_trampoline(), round_trampoline_addr(), rtl_gen_const_delta_profiler(), rtl_gen_edge_profiler(), rtl_gen_interval_profiler(), rtl_gen_one_value_profiler_no_edge_manipulation(), rtl_gen_pow2_profiler(), s390_expand_addcc(), s390_expand_atomic(), s390_expand_cs_hqi(), s390_expand_mask_and_shift(), score_add_offset(), unroll_loop_runtime_iterations(), and x86_emit_floatuns().
| rtx expand_simple_unop | ( | enum machine_mode | mode, | |
| enum rtx_code | code, | |||
| rtx | op0, | |||
| rtx | target, | |||
| int | unsignedp | |||
| ) |
Definition at line 2323 of file optabs.c.
Referenced by expand_sync_fetch_operation(), expand_sync_operation(), force_operand(), ia64_expand_atomic_op(), init_alignment_context(), ix86_expand_int_movcc(), and noce_try_abs().
| rtx expand_unop | ( | enum machine_mode | mode, | |
| optab | unoptab, | |||
| rtx | op0, | |||
| rtx | target, | |||
| int | unsignedp | |||
| ) |
Definition at line 2349 of file optabs.c.
Referenced by alpha_emit_set_const_1(), emit_store_flag(), expand_abs(), expand_abs_nojump(), expand_binop(), expand_builtin_ffs(), expand_builtin_int_roundingfn(), expand_builtin_mathfn(), expand_builtin_mathfn_3(), expand_builtin_unop(), expand_cmplxdiv_straight(), expand_cmplxdiv_wide(), expand_complex_abs(), expand_copysign_absneg(), expand_divmod(), expand_expr(), expand_expr_real_1(), expand_fix(), expand_mult(), expand_mult_const(), expand_parity(), expand_simple_unop(), expand_unop(), expand_vector_unop(), ftruncify(), gen_moddi3(), gen_modsi3(), gen_umoddi3(), gen_umodsi3(), ia64_expand_fetch_and_op(), ia64_expand_op_and_fetch(), negate_rtx(), noce_emit_move_insn(), and widen_clz().
| static rtx expand_vector_binop | ( | enum machine_mode | mode, | |
| optab | binoptab, | |||
| rtx | op0, | |||
| rtx | op1, | |||
| rtx | target, | |||
| int | unsignedp, | |||
| enum optab_methods | methods | |||
| ) | [static] |
Definition at line 1898 of file optabs.c.
References a, abort, AND, b, BYTES_BIG_ENDIAN, CODE_FOR_nothing, CONSTANT_P, copy_to_mode_reg(), DIV, emit_insn(), emit_move_insn(), end_sequence(), expand_binop(), expand_divmod(), extract_bit_field(), gen_reg_rtx(), GET_CLASS_NARROWEST_MODE, GET_CODE, get_insns(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_INNER, GET_MODE_SIZE, GET_MODE_UNIT_SIZE, GET_MODE_WIDER_MODE, i, int_mode_for_mode(), MINUS, MODE_VECTOR_FLOAT, NULL_RTX, OPTAB_DIRECT, PLUS, REG, simplify_gen_subreg(), size, start_sequence(), store_bit_field(), UNITS_PER_WORD, and XOR.
Referenced by expand_binop().
| static rtx expand_vector_unop | ( | enum machine_mode | mode, | |
| optab | unoptab, | |||
| rtx | op0, | |||
| rtx | target, | |||
| int | unsignedp | |||
| ) | [static] |
Definition at line 2025 of file optabs.c.
References a, BYTES_BIG_ENDIAN, CODE_FOR_nothing, CONST0_RTX, CONSTANT_P, copy_to_mode_reg(), emit_insn(), emit_move_insn(), end_sequence(), expand_binop(), expand_unop(), extract_bit_field(), gen_reg_rtx(), GET_CLASS_NARROWEST_MODE, GET_CODE, get_insns(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_INNER, GET_MODE_SIZE, GET_MODE_WIDER_MODE, i, int_mode_for_mode(), MODE_INT, neg_optab, NULL_RTX, one_cmpl_optab, OPTAB_DIRECT, REG, simplify_gen_subreg(), size, start_sequence(), store_bit_field(), sub_optab, and UNITS_PER_WORD.
Referenced by expand_unop().
Definition at line 4780 of file optabs.c.
References expand_unop(), ftrunc_optab, gen_reg_rtx(), and GET_MODE.
Referenced by expand_fix().
Definition at line 4245 of file optabs.c.
Referenced by gen_reload(), inc_for_reload(), move_by_pieces(), move_by_pieces_1(), reload_cse_move2add(), s390_emit_epilogue(), s390_emit_prologue(), sh_output_mi_thunk(), sparc_output_mi_thunk(), store_by_pieces(), and store_by_pieces_2().
Definition at line 4264 of file optabs.c.
Referenced by check_dbra_loop(), discover_flags_reg(), fixup_match_2(), mdx_epilogue(), mdx_prologue(), mips_expand_epilogue(), mips_expand_prologue(), mips_legitimize_tls_address(), mips_output_mi_thunk(), sparc_struct_value_rtx(), and th_output_mi_thunk().
Definition at line 5512 of file optabs.c.
References cmp_optab, CODE_FOR_nothing, emit_insn(), end_sequence(), gen_conditional_trap, GEN_FCN, get_insns(), GET_MODE, HAVE_conditional_trap, prepare_operand(), PUT_CODE, and start_sequence().
Referenced by find_cond_trap(), and rs6000_emit_allocate_stack().
| rtx gen_extend_insn | ( | rtx | x, | |
| rtx | y, | |||
| enum machine_mode | mto, | |||
| enum machine_mode | mfrom, | |||
| int | unsignedp | |||
| ) |
Definition at line 4468 of file optabs.c.
Referenced by alpha_expand_unaligned_load(), and ia64_expand_atomic_op().
Definition at line 4374 of file optabs.c.
Referenced by check_dbra_loop(), cse_set_around_loop(), eliminate_partially_redundant_load(), emit_stack_restore(), emit_stack_save(), erase_matching_seqs(), expand_block_move(), expand_increment(), find_splittable_givs(), find_splittable_regs(), fixup_var_refs_1(), fixup_var_refs_insn(), force_into(), gcse_emit_move_after(), gen_reload(), inc_for_reload(), insert_store(), instantiate_virtual_regs_1(), load_mems(), loop_givs_rescan(), maybe_eliminate_biv_1(), mdx_call(), mdx_call_value(), move_btr_def(), move_invariant_reg(), move_movables(), pre_insert_copy_insn(), protect_from_queue(), ra_emit_move_insn(), replace_store_insn(), s390_emit_prologue(), scan_one_insn(), sh_expand_t_scc(), split_pattern_seq(), and update_ld_motion_stores().
Definition at line 4328 of file optabs.c.
Referenced by check_dbra_loop(), mdx_prologue(), mips_expand_prologue(), and sparc_struct_value_rtx().
| static GTY | ( | () | ) | [static] |
Definition at line 96 of file optabs.c.
References abort, copy_rtx(), gen_rtx_fmt_e(), gen_rtx_fmt_ee(), GET_CODE, GET_MODE, GET_RTX_CLASS, insn, INSN_P, last_insn, NEXT_INSN, NULL_RTX, PREV_INSN, REG_EQUAL, reg_overlap_mentioned_p(), reg_set_p(), rtx_equal_p(), SET_DEST, set_unique_reg_note(), single_set, SUBREG_REG, and XEXP.
| int have_insn_for | ( | enum rtx_code | code, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 5009 of file optabs.c.
Referenced by analyze_insn_to_expand_var(), apply_args_size(), apply_result_size(), default_min_divisions_for_recip_mul(), expand_case(), expand_end_case_type(), force_to_mode(), make_compound_operation(), make_extraction(), reload_cse_move2add(), simplify_comparison(), and simplify_subreg().
| static void init_libfuncs | ( | optab | optable, | |
| int | first_mode, | |||
| int | last_mode, | |||
| const char * | opname, | |||
| int | suffix | |||
| ) | [static] |
Definition at line 5074 of file optabs.c.
References alloca, gen_rtx_SYMBOL_REF, GET_MODE_NAME, ggc_alloc_string(), p, Pmode, q, strlen(), and TOLOWER.
Referenced by init_floating_libfuncs(), and init_integral_libfuncs().
| rtx init_one_libfunc | ( | char * | name | ) | const |
Definition at line 5138 of file optabs.c.
References build_decl, build_function_type(), DECL_ARTIFICIAL, DECL_EXTERNAL, DECL_RTL, get_identifier(), integer_type_node, NULL_TREE, TREE_PUBLIC, and XEXP.
Referenced by alpha_initialize_trampoline(), alpha_lookup_xfloating_lib_func(), c4x_init_libfuncs(), c_maybe_initialize_eh(), choose_personality_routine(), default_init_unwind_resume_libfunc(), expand_main_function(), finish_decl(), GTY(), ia64_hpux_init_libfuncs(), init_exception_processing(), init_interclass_conv_libfuncs(), init_intraclass_conv_libfuncs(), init_libfuncs(), init_optabs(), java_init_decl_processing(), m68hc11_init_libfuncs(), output_profile_hook(), set_conv_libfunc(), and set_optab_libfunc().
Definition at line 5036 of file optabs.c.
References code_to_optab, and new_optab().
Referenced by init_optabs().
Definition at line 5020 of file optabs.c.
References CODE_FOR_nothing, ggc_alloc, i, and NUM_MACHINE_MODES.
Referenced by init_optab(), and init_optabv().
| 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] |
Definition at line 3360 of file optabs.c.
References abort, ATTRIBUTE_UNUSED, bcmp_libfunc, BITS_PER_UNIT, can_compare_p(), cmp_optab, CODE_FOR_cmpstrsi, COMPARE, const0_rtx, const1_rtx, CONSTANT_P, convert_to_mode(), COSTS_N_INSNS, emit_insn(), emit_library_call_value(), emit_queue(), flag_force_mem, force_not_mem(), force_reg(), gen_cmpstrsi(), GEN_INT, gen_reg_rtx(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, HAVE_cmpstrsi, integer_type_node, INTVAL, LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK, MEM_ALIGN, memcmp_libfunc, MIN, mode, MODE_FLOAT, NULL_RTX, Pmode, prepare_float_lib_cmp(), preserve_subexpressions_p(), protect_from_queue(), result, rtx_cost(), sizetype, TREE_UNSIGNED, TYPE_MODE, ucmp_optab, word_mode, x, XEXP, and is::y.
Referenced by emit_cmp_and_jump_insns().
| static void prepare_float_lib_cmp | ( | rtx * | px, | |
| rtx * | py, | |||
| enum rtx_code * | pcomparison, | |||
| enum machine_mode * | pmode, | |||
| int * | punsignedp | |||
| ) | [static] |
Definition at line 3728 of file optabs.c.
References abort, cmp_optab, CODE_FOR_nothing, const0_rtx, convert_to_mode(), emit_library_call_value(), EQ, eqdf2_libfunc, eqhf2_libfunc, eqsf2_libfunc, eqtf2_libfunc, eqxf2_libfunc, FLOAT_LIB_COMPARE_RETURNS_BOOL, GE, gedf2_libfunc, gehf2_libfunc, gesf2_libfunc, GET_MODE, GET_MODE_WIDER_MODE, getf2_libfunc, gexf2_libfunc, GT, gtdf2_libfunc, gthf2_libfunc, gtsf2_libfunc, gttf2_libfunc, gtxf2_libfunc, LCT_CONST_MAKE_BLOCK, LE, ledf2_libfunc, lehf2_libfunc, lesf2_libfunc, letf2_libfunc, lexf2_libfunc, LT, ltdf2_libfunc, lthf2_libfunc, ltsf2_libfunc, lttf2_libfunc, ltxf2_libfunc, mode, NE, nedf2_libfunc, nehf2_libfunc, nesf2_libfunc, netf2_libfunc, nexf2_libfunc, NULL_RTX, protect_from_queue(), result, tmp, unorddf2_libfunc, unordhf2_libfunc, unordsf2_libfunc, unordtf2_libfunc, unordxf2_libfunc, word_mode, x, and is::y.
Referenced by prepare_cmp_insn(), and prepare_float_lib_cmp().
| rtx prepare_operand | ( | int | icode, | |
| rtx | x, | |||
| int | opnum, | |||
| enum machine_mode | mode, | |||
| enum machine_mode | wider_mode, | |||
| int | unsignedp | |||
| ) |
Definition at line 3559 of file optabs.c.
References convert_modes(), copy_to_mode_reg(), no_new_pseudos, NULL_RTX, and protect_from_queue().
Referenced by emit_cmp_and_jump_insn_1(), and gen_cond_trap().
| rtx sign_expand_binop | ( | enum machine_mode | mode, | |
| optab | uoptab, | |||
| optab | soptab, | |||
| rtx | op0, | |||
| rtx | op1, | |||
| rtx | target, | |||
| int | unsignedp, | |||
| enum optab_methods | methods | |||
| ) |
| static rtx widen_operand | ( | rtx | op, | |
| enum machine_mode | mode, | |||
| enum machine_mode | oldmode, | |||
| int | unsignedp, | |||
| int | no_extend | |||
| ) | [static] |
Definition at line 220 of file optabs.c.
References convert_modes(), emit_insn(), emit_move_insn(), force_reg(), gen_lowpart, gen_reg_rtx(), gen_rtx_CLOBBER, gen_rtx_SUBREG(), GET_CODE, GET_MODE, GET_MODE_SIZE, result, SUBREG_PROMOTED_UNSIGNED_P, SUBREG_PROMOTED_VAR_P, and UNITS_PER_WORD.
Referenced by expand_binop(), expand_parity(), expand_unop(), and widen_clz().
| rtxfun bcc_gen_fctn[NUM_RTX_CODE] |
Definition at line 76 of file optabs.c.
Referenced by can_compare_p(), do_store_flag(), emit_cmp_and_jump_insn_1(), expand_bool_compare_and_swap(), expand_compare_and_swap_loop(), and init_all_optabs().
| optab code_to_optab[NUM_RTX_CODE+1] |
Definition at line 71 of file optabs.c.
Referenced by expand_simple_binop(), expand_simple_unop(), have_insn_for(), init_optab(), noce_emit_move_insn(), pj_output_rval(), and prepare_float_lib_cmp().
Definition at line 63 of file optabs.c.
Referenced by can_extend_p(), gen_extend_insn(), init_all_optabs(), init_optabs(), and pj_output_rval().
| enum insn_code fixtrunctab[NUM_MACHINE_MODES][NUM_MACHINE_MODES][2] |
Definition at line 67 of file optabs.c.
Referenced by can_fix_p(), init_all_optabs(), init_optabs(), and pj_output_rval().
Definition at line 68 of file optabs.c.
Referenced by can_float_p(), init_all_optabs(), init_optabs(), and pj_output_rval().
| rtx libfunc_table[LTI_MAX] |
| optab optab_table[OTI_MAX] |
| enum insn_code setcc_gen_code[NUM_RTX_CODE] |
Definition at line 82 of file optabs.c.
Referenced by can_compare_p(), do_store_flag(), emit_store_flag(), expand_bool_compare_and_swap(), init_all_optabs(), init_optabs(), and m32c_init_libfuncs().
1.5.6