osprey/kg++fe/gnu/explow.c File Reference

#include "config.h"
#include "system.h"
#include "toplev.h"
#include "rtl.h"
#include "tree.h"
#include "tm_p.h"
#include "flags.h"
#include "function.h"
#include "expr.h"
#include "optabs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
#include "ggc.h"
#include "recog.h"
#include "langhooks.h"
#include "gt-explow.h"

Include dependency graph for explow.c:

Go to the source code of this file.

Defines

#define MUST_ALIGN   (PREFERRED_STACK_BOUNDARY < BIGGEST_ALIGNMENT)
#define STACK_GROW_OP   PLUS
#define CMP_OPCODE   LTU

Functions/Subroutines

static rtx break_out_memory_refs PARAMS ((rtx))
HOST_WIDE_INT trunc_int_for_mode (HOST_WIDE_INT c, enum machine_mode mode)
rtx plus_constant_wide (rtx x, HOST_WIDE_INT c)
rtx eliminate_constant_term (rtx x, rtx *constptr)
rtx find_next_ref (rtx reg, rtx insn)
rtx expr_size (tree exp)
HOST_WIDE_INT int_expr_size (tree exp)
static rtx break_out_memory_refs (rtx x)
rtx copy_all_regs (rtx x)
rtx memory_address (enum machine_mode mode, rtx x)
rtx memory_address_noforce (enum machine_mode mode, rtx x)
rtx validize_mem (rtx ref)
void maybe_set_unchanging (rtx ref, tree t)
rtx stabilize (rtx x)
rtx copy_to_reg (rtx x)
rtx copy_addr_to_reg (rtx x)
rtx copy_to_mode_reg (enum machine_mode mode, rtx x)
rtx force_reg (enum machine_mode mode, rtx x)
rtx force_not_mem (rtx x)
rtx copy_to_suggested_reg (rtx x, rtx target, enum machine_mode mode)
enum machine_mode promote_mode (tree type, enum machine_mode mode, int *punsignedp, for_call)
void adjust_stack (rtx adjust)
void anti_adjust_stack (rtx adjust)
rtx round_push (rtx size)
void emit_stack_save (enum save_level save_level, rtx *psave, rtx after)
void emit_stack_restore (enum save_level save_level, rtx sa, rtx after)
rtx allocate_dynamic_stack_space (rtx size, rtx target, int known_align)
static GTY (())
static void emit_stack_probe (rtx address)
void probe_stack_range (HOST_WIDE_INT first, rtx size)
rtx hard_function_value (tree valtype, func, outgoing)
rtx hard_libcall_value (enum machine_mode mode)
int rtx_to_tree_code (enum rtx_code code)


Define Documentation

#define CMP_OPCODE   LTU

Referenced by probe_stack_range().

#define MUST_ALIGN   (PREFERRED_STACK_BOUNDARY < BIGGEST_ALIGNMENT)

#define STACK_GROW_OP   PLUS

Definition at line 1506 of file explow.c.

Referenced by probe_stack_range().


Function Documentation

void adjust_stack ( rtx  adjust  ) 

Definition at line 888 of file explow.c.

Referenced by do_pending_stack_adjust(), and emit_call_1().

rtx allocate_dynamic_stack_space ( rtx  size,
rtx  target,
int  known_align 
)

void anti_adjust_stack ( rtx  adjust  ) 

static rtx break_out_memory_refs ( rtx  x  )  [static]

rtx copy_addr_to_reg ( rtx  x  ) 

rtx copy_all_regs ( rtx  x  ) 

rtx copy_to_mode_reg ( enum machine_mode  mode,
rtx  x 
)

Definition at line 736 of file explow.c.

Referenced by allocate_dynamic_stack_space(), alpha_expand_builtin(), altivec_expand_abs_builtin(), altivec_expand_binop_builtin(), altivec_expand_builtin(), altivec_expand_dst_builtin(), altivec_expand_ld_builtin(), altivec_expand_lv_builtin(), altivec_expand_predicate_builtin(), altivec_expand_st_builtin(), altivec_expand_stv_builtin(), altivec_expand_ternop_builtin(), altivec_expand_unop_builtin(), arm_expand_binop_builtin(), arm_expand_builtin(), arm_expand_unop_builtin(), arm_gen_movmemqi(), arm_gen_movstrqi(), bfin_expand_binop_builtin(), bfin_expand_builtin(), bfin_expand_call(), bfin_expand_movmem(), bfin_expand_strmov(), bfin_expand_unop_builtin(), clear_storage_via_clrmem(), clear_storage_via_clrstr(), clear_storage_via_libcall(), copy_addr_to_reg(), crx_expand_movmem(), do_tablejump(), emit_block_move_via_libcall(), emit_block_move_via_movmem(), emit_block_move_via_movstr(), emit_conditional_add(), emit_indirect_jump(), emit_move_sequence(), emit_unop_insn(), expand_ashiftrt(), expand_binop(), expand_block_move(), expand_builtin_frame_address(), expand_builtin_signbit(), expand_builtin_strlen(), expand_complex_abs(), expand_computed_goto(), expand_divmod(), expand_expr(), expand_expr_real_1(), expand_inline_function(), expand_mult(), expand_mult_const(), expand_one_builtin(), expand_sdiv_pow2(), expand_ternary_op(), expand_twoval_binop(), expand_twoval_unop(), expand_unop(), expand_vector_binop(), expand_vector_unop(), expand_widen_pattern_expr(), extract_bit_field(), fix_bit_operand(), frv_emit_move(), frv_emit_movsi(), frv_expand_voidbinop_builtin(), frv_legitimize_argument(), gen_allocate_stack(), gen_call(), gen_call_value(), gen_cmpstrsi(), gen_divdi3(), gen_divmoddi4(), gen_divmodsi4(), gen_divsi3(), gen_indirect_jump(), gen_moddi3(), gen_modsi3(), h8sx_emit_movmd(), ia64_expand_compare_and_swap(), ia64_expand_lock_test_and_set(), ix86_expand_binop_builtin(), ix86_expand_builtin(), ix86_expand_call(), ix86_expand_clrmem(), ix86_expand_clrstr(), ix86_expand_move(), ix86_expand_movmem(), ix86_expand_movstr(), ix86_expand_sse_comi(), ix86_expand_sse_compare(), ix86_expand_store_builtin(), ix86_expand_unop1_builtin(), ix86_expand_unop_builtin(), ix86_zero_extend_to_Pmode(), legitimize_address(), m32c_expand_cmpstr(), m32c_expand_movmemhi(), m32c_expand_movstr(), m32c_expand_neg_mulpsi3(), m32c_expand_setmemhi(), m32c_prepare_move(), m32c_return_addr_rtx(), mcore_expand_insv(), mips_legitimize_address(), mips_prepare_builtin_arg(), mt_emit_cbranch(), precompute_register_parameters(), prepare_move_operands(), prepare_operand(), probe_stack_range(), process_reg_param(), push_block(), rs6000_expand_binop_builtin(), rs6000_expand_ternop_builtin(), rs6000_expand_unop_builtin(), s390_expand_builtin(), score_legitimize_address(), set_storage_via_setmem(), sh_expand_builtin(), shmedia_prepare_call_address(), sparc_expand_builtin(), spe_expand_builtin(), spe_expand_evsel_builtin(), spe_expand_predicate_builtin(), spe_expand_stv_builtin(), store_bit_field(), thumb_expand_movmemqi(), thumb_expand_movstrqi(), try_casesi(), x86_initialize_trampoline(), xstormy16_expand_andqi3(), xstormy16_expand_builtin(), xstormy16_expand_iorqi3(), and xstormy16_expand_move().

rtx copy_to_reg ( rtx  x  ) 

Definition at line 706 of file explow.c.

Referenced by alpha_va_arg(), arc_va_arg(), arm_gen_movmemqi(), assign_parms(), c_expand_expr(), convert_move(), copy_all_regs(), cris_expand_builtin_va_arg(), default_internal_arg_pointer(), do_jump(), emit_group_move_into_temps(), emit_push_insn(), expand_builtin_apply_args_1(), expand_builtin_eh_return(), expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_builtin_return_addr(), expand_builtin_setjmp_receiver(), expand_call(), expand_case(), expand_copysign_absneg(), expand_end_case_type(), expand_expr(), expand_expr_real_1(), expand_expr_stmt(), expand_expr_stmt_value(), expand_function_start(), expand_goto(), expand_increment(), expand_nl_goto_receiver(), extract_bit_field(), fix_lexical_addr(), fixup_stack_1(), fr30_pass_by_value(), gen_lowpart(), gen_lowpart_general(), gen_nonlocal_goto(), gen_restore_stack_nonlocal(), hppa_builtin_saveregs(), i860_saveregs(), ia64_initialize_trampoline(), initialize_trampoline(), ix86_expand_builtin(), ix86_expand_vector_set(), ix86_internal_arg_pointer(), java_stack_swap(), legitimize_address(), m32r_va_arg(), m68hc11_va_arg(), m88k_va_arg(), memory_address(), mmix_expand_builtin_va_arg(), mn10300_builtin_saveregs(), operand_subword_force(), pj_expand_builtin_va_arg(), protect_from_queue(), return_addr_rtx(), rs6000_return_addr(), sjlj_emit_dispatch_table(), spill_tfmode_operand(), std_expand_builtin_va_arg(), store_bit_field(), store_expr(), store_field(), store_split_bit_field(), tail_recursion_args(), and xtensa_va_arg().

rtx copy_to_suggested_reg ( rtx  x,
rtx  target,
enum machine_mode  mode 
)

Definition at line 823 of file explow.c.

Referenced by alpha_emit_set_const_1(), and legitimize_address().

rtx eliminate_constant_term ( rtx  x,
rtx constptr 
)

static void emit_stack_probe ( rtx  address  )  [static]

void emit_stack_restore ( enum save_level save_level  ,
rtx  sa,
rtx  after 
)

void emit_stack_save ( enum save_level save_level  ,
rtx psave,
rtx  after 
)

rtx expr_size ( tree  exp  ) 

rtx find_next_ref ( rtx  reg,
rtx  insn 
)

rtx force_not_mem ( rtx  x  ) 

rtx force_reg ( enum machine_mode  mode,
rtx  x 
)

Definition at line 763 of file explow.c.

Referenced by allocate_dynamic_stack_space(), alpha_emit_conditional_branch(), alpha_emit_conditional_move(), alpha_emit_floatuns(), alpha_emit_setcc(), alpha_expand_block_clear(), alpha_expand_compare_and_swap_12(), alpha_expand_lock_test_and_set_12(), alpha_expand_mov(), alpha_expand_mov_nobwx(), alpha_expand_movmisalign(), alpha_expand_unaligned_load(), alpha_expand_unaligned_load_words(), alpha_expand_unaligned_store(), alpha_expand_unaligned_store_words(), alpha_initialize_trampoline(), alpha_legitimize_address(), alpha_va_arg(), altivec_expand_vec_ext_builtin(), altivec_expand_vec_set_builtin(), arm_expand_builtin(), arm_legitimize_address(), bfin_expand_call(), block_move_sequence(), break_out_memory_refs(), builtin_memset_gen_str(), c4x_emit_move_sequence(), compress_float_constant(), convert_move(), copy_rtx_and_substitute(), cris_expand_pic_call_address(), d30v_build_long_insn(), emit_bcnd(), emit_cmp_and_jump_insns(), emit_group_load_into_temps(), emit_hard_tfmode_operation(), emit_library_call_value_1(), emit_move_sequence(), emit_pic_move(), emit_prefetch_instructions(), emit_symbolic_move(), expand_a_shift(), expand_ashiftrt(), expand_asm_operands(), expand_binop(), expand_bool_compare_and_swap(), expand_builtin_expect(), expand_builtin_frob_return_addr(), expand_builtin_lock_release(), expand_builtin_longjmp(), expand_builtin_memset(), expand_builtin_pow(), expand_builtin_powi(), expand_builtin_prefetch(), expand_builtin_setjmp_setup(), expand_builtin_signbit(), expand_call(), expand_cmplxdiv_straight(), expand_cmplxdiv_wide(), expand_divmod(), expand_expr(), expand_expr_real_1(), expand_increment(), expand_inline_function(), expand_main_function(), expand_move(), expand_movstr(), expand_mult(), expand_mult_const(), expand_mult_highpart(), expand_sdiv_pow2(), expand_shift(), expand_smod_pow2(), expand_sync_fetch_operation(), expand_sync_lock_test_and_set(), expand_sync_operation(), expand_twoval_binop(), expand_val_compare_and_swap_1(), expand_vec_cond_expr(), expand_vec_shift_expr(), extract_bit_field(), extract_fixed_bit_field(), extract_force_align_mem_bit_field(), fix_bit_operand(), force_operand(), from_compare(), frv_emit_comparison(), frv_emit_cond_move(), frv_emit_movsi(), frv_expand_builtin(), frv_expand_fdpic_call(), frv_expand_prefetches(), frv_expand_store_builtin(), frv_initialize_trampoline(), gen_absdf2(), gen_abssf2(), gen_adddi3(), gen_addsi3(), gen_anddi3(), gen_andsi3(), gen_cmpdi(), gen_cmphi(), gen_cmpqi(), gen_cmpsi(), gen_compare(), gen_compare_reg(), gen_conditional_branch(), gen_conditional_move(), gen_divdi3(), gen_divsi3(), gen_edge_profiler(), gen_extenddftf2(), gen_extenddfxf2(), gen_extendsfdf2(), gen_extendsftf2(), gen_extendsfxf2(), gen_insv(), gen_int_relational(), gen_iorsi3(), gen_lowpart(), gen_lowpart_general(), gen_movdf(), gen_movdi(), gen_movhi(), gen_movqi(), gen_movsf(), gen_movsi(), gen_movstricthi(), gen_movstrictqi(), gen_movtf(), gen_negdf2(), gen_negsf2(), gen_prefetch(), gen_seq(), gen_sgt(), gen_sgtu(), gen_sle(), gen_sleu(), gen_sne(), gen_sqrtdf2(), gen_sqrtsf2(), gen_subsi3(), gen_udivdi3(), gen_udivsi3(), gen_zero_extendhidi2(), gen_zero_extendhisi2(), gen_zero_extendqidi2(), gen_zero_extendqihi2(), gen_zero_extendqisi2(), hppa_legitimize_address(), hppa_profile_hook(), ia64_expand_compare_and_swap(), ia64_expand_fetch_and_op(), ia64_expand_lock_release(), ia64_expand_lock_test_and_set(), ia64_expand_move(), ia64_expand_movxf_movrf(), ia64_expand_op_and_fetch(), ia64_expand_vecint_compare(), ia64_va_arg(), init_alignment_context(), instantiate_virtual_regs_in_insn(), ix86_build_signbit_mask(), ix86_expand_binary_operator(), ix86_expand_binop_builtin(), ix86_expand_builtin(), ix86_expand_carry_flag_compare(), ix86_expand_copysign(), ix86_expand_fp_absneg_operator(), ix86_expand_fp_movcc(), ix86_expand_int_movcc(), ix86_expand_int_vcond(), ix86_expand_move(), ix86_expand_sse_cmp(), ix86_expand_sse_fp_minmax(), ix86_expand_sse_movcc(), ix86_expand_strlen(), ix86_expand_unary_operator(), ix86_expand_vec_ext_builtin(), ix86_expand_vec_set_builtin(), ix86_expand_vector_init_duplicate(), ix86_expand_vector_init_general(), ix86_expand_vector_init_low_nonzero(), ix86_expand_vector_init_one_nonzero(), ix86_expand_vector_move(), ix86_fixup_binary_operands(), ix86_prepare_fp_compare_args(), ix86_split_ashldi(), ix86_split_lshrdi(), ix86_zero_extend_to_Pmode(), legitimize_address(), legitimize_operand(), legitimize_operands(), legitimize_pic_address(), legitimize_tls_address(), lowpart_subreg_maybe_copy(), m32c_split_move(), m32r_legitimize_pic_address(), machopic_indirect_data_reference(), machopic_legitimize_pic_address(), mcore_expand_insv(), mcore_gen_compare_reg(), memory_address(), mips_canonicalize_comparison(), mips_emit_compare(), mips_emit_int_relational(), mips_force_temporary(), mips_gen_conditional_trap(), mips_legitimize_move(), mips_move_integer(), mips_va_arg(), mmix_gen_compare_reg(), mn10200_va_arg(), mt_generate_compare(), offset_address(), operand_subword_force(), output_func_start_profiler(), precompute_register_parameters(), prepare_call_address(), prepare_cmp_insn(), prepare_move_operands(), prepare_scc_operands(), probe_stack_range(), romp_initialize_trampoline(), rs6000_emit_move(), rs6000_emit_swdivdf(), rs6000_emit_swdivsf(), rs6000_emit_sync(), rs6000_expand_compare_and_swapqhi(), rs6000_expand_vector_set(), rs6000_initialize_trampoline(), rs6000_legitimize_address(), rs6000_longcall_ref(), rtl_gen_interval_profiler(), rtl_gen_pow2_profiler(), s390_emit_call(), s390_expand_addcc(), s390_expand_atomic(), s390_expand_cs_hqi(), s390_expand_logical_operator(), score_force_temporary(), sh_initialize_trampoline(), sparc_emit_fixunsdi(), sparc_emit_floatunsdi(), sparc_expand_compare_and_swap_12(), sparc_expand_move(), sparc_va_arg(), stabilize(), store_bit_field(), store_fixed_bit_field(), store_split_bit_field(), thumb_legitimize_address(), unroll_loop(), use_anchored_address(), v850_va_arg(), vector_compare_rtx(), widen_operand(), x86_emit_floatuns(), xstormy16_expand_call(), xtensa_emit_move_sequence(), xtensa_expand_block_move(), xtensa_expand_nonlocal_goto(), and xtensa_load_constant().

static GTY ( ()   )  [static]

Definition at line 1472 of file explow.c.

rtx hard_function_value ( tree  valtype,
func  ,
outgoing   
)

rtx hard_libcall_value ( enum machine_mode  mode  ) 

Definition at line 1690 of file explow.c.

Referenced by emit_library_call_value_1(), expand_unop(), and sparc_emit_float_lib_cmp().

HOST_WIDE_INT int_expr_size ( tree  exp  ) 

Definition at line 314 of file explow.c.

Referenced by expand_expr(), and expand_expr_real_1().

void maybe_set_unchanging ( rtx  ref,
tree  t 
)

rtx memory_address ( enum machine_mode  mode,
rtx  x 
)

rtx memory_address_noforce ( enum machine_mode  mode,
rtx  x 
)

Definition at line 624 of file explow.c.

Referenced by do_tablejump().

static rtx break_out_memory_refs PARAMS ( (rtx  )  [static]

rtx plus_constant_wide ( rtx  x,
HOST_WIDE_INT  c 
)

void probe_stack_range ( HOST_WIDE_INT  first,
rtx  size 
)

Definition at line 1510 of file explow.c.

Referenced by allocate_dynamic_stack_space().

enum machine_mode promote_mode ( tree  type,
enum machine_mode  mode,
int *  punsignedp,
for_call   
)

rtx round_push ( rtx  size  ) 

int rtx_to_tree_code ( enum rtx_code  code  ) 

Definition at line 1702 of file explow.c.

Referenced by simplify_binary_operation(), and simplify_const_binary_operation().

rtx stabilize ( rtx  x  ) 

Definition at line 691 of file explow.c.

References copy_all_regs(), force_reg(), GET_CODE, MEM, Pmode, replace_equiv_address(), rtx_unstable_p(), and XEXP.

Referenced by expand_increment().

HOST_WIDE_INT trunc_int_for_mode ( HOST_WIDE_INT  c,
enum machine_mode  mode 
)

rtx validize_mem ( rtx  ref  ) 


Generated on Wed Apr 8 15:32:01 2009 for Open64 by  doxygen 1.5.6