#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.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"

Go to the source code of this file.
| #define CMP_OPCODE LTU |
| #define MUST_ALIGN (PREFERRED_STACK_BOUNDARY < BIGGEST_ALIGNMENT) |
Definition at line 767 of file explow.c.
References add_optab, const0_rtx, emit_move_insn(), expand_binop(), GET_CODE, INTVAL, OPTAB_LIB_WIDEN, Pmode, STACK_GROWS_DOWNWARD, stack_pointer_delta, stack_pointer_rtx, and sub_optab.
Definition at line 1109 of file explow.c.
References add_optab, align, anti_adjust_stack(), BIGGEST_ALIGNMENT, BITS_PER_UNIT, cfun, CODE_FOR_allocate_stack, const0_rtx, convert_to_mode(), copy_to_mode_reg(), current_function_calls_alloca, current_function_calls_setjmp, current_function_limit_stack, do_pending_stack_adjust(), dynamic_offset, emit_barrier(), emit_cmp_and_jump_insns(), emit_insn(), emit_label(), emit_move_insn(), error(), expand_binop(), expand_divmod(), expand_mult(), FIRST_PSEUDO_REGISTER, flag_stack_check, force_operand(), force_reg(), gcc_assert, gen_allocate_stack(), GEN_INT, gen_label_rtx(), gen_reg_rtx(), gen_rtx_EXPR_LIST, gen_trap(), GET_CODE, get_last_insn(), GET_MODE, HAVE_allocate_stack, HAVE_trap, HOST_WIDE_INT, int, INTVAL, mark_reg_pointer(), mode, MUST_ALIGN, NULL_RTX, OPTAB_LIB_WIDEN, OPTAB_WIDEN, plus_constant, Pmode, PREFERRED_STACK_BOUNDARY, probe_stack_range(), REG_NOTES, REG_P, REG_SAVE_AREA, register_operand(), REGNO, round_push(), STACK_CHECK_BUILTIN, STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_PROTECT, stack_limit_rtx, stack_pointer_delta, stack_pointer_rtx, STACK_SIZE_MODE, sub_optab, update_nonlocal_goto_save_area(), and virtual_stack_dynamic_rtx.
Definition at line 796 of file explow.c.
References add_optab, const0_rtx, emit_move_insn(), expand_binop(), GET_CODE, INTVAL, OPTAB_LIB_WIDEN, Pmode, STACK_GROWS_DOWNWARD, stack_pointer_delta, stack_pointer_rtx, and sub_optab.
Definition at line 286 of file explow.c.
References break_out_memory_refs(), CONSTANT_ADDRESS_P, CONSTANT_P, force_reg(), gen_rtx_fmt_ee(), GET_CODE, GET_MODE, MEM_P, MINUS, PLUS, Pmode, and XEXP.
| rtx convert_memory_address | ( | enum machine_mode to_mode | ATTRIBUTE_UNUSED, | |
| rtx | x | |||
| ) |
Definition at line 312 of file explow.c.
References CONST, convert_modes(), gen_rtx_CONST, gen_rtx_fmt_ee(), gen_rtx_LABEL_REF, GET_CODE, GET_MODE, GET_MODE_SIZE, LABEL_REF_NONLOCAL_P, PLUS, Pmode, POINTERS_EXTEND_UNSIGNED, ptr_mode, PUT_MODE, REG_POINTER, shallow_copy_rtx, SIGN_EXTEND, simplify_unary_operation(), SUBREG_PROMOTED_VAR_P, SUBREG_REG, TRUNCATE, and XEXP.
Referenced by alpha_initialize_trampoline(), assign_parms(), convert_memory_address(), copy_rtx_and_substitute(), emit_block_move_via_libcall(), expand_assignment(), expand_builtin_alloca(), expand_builtin_apply(), expand_builtin_eh_return(), expand_builtin_extract_return_addr(), expand_builtin_frob_return_addr(), expand_builtin_longjmp(), expand_builtin_memcpy(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_nonlocal_goto(), expand_builtin_prefetch(), expand_builtin_return(), expand_builtin_setjmp_setup(), expand_builtin_strncpy(), expand_builtin_va_arg(), expand_builtin_va_copy(), expand_call(), expand_computed_goto(), expand_expr(), expand_expr_addr_expr(), expand_expr_addr_expr_1(), expand_function_start(), find_base_term(), find_base_value(), get_memory_rtx(), ia64_expand_builtin(), ia64_expand_call(), ia64_expand_fetch_and_op(), ia64_expand_load_address(), ia64_expand_op_and_fetch(), ia64_initialize_trampoline(), make_tree(), memory_address(), prepare_call_address(), probe_stack_range(), simplify_unary_operation(), simplify_unary_operation_1(), and sjlj_emit_dispatch_table().
| rtx copy_to_mode_reg | ( | enum machine_mode | mode, | |
| rtx | x | |||
| ) |
Definition at line 572 of file explow.c.
References emit_move_insn(), force_operand(), gcc_assert, gen_reg_rtx(), general_operand(), and GET_MODE.
Definition at line 544 of file explow.c.
References emit_move_insn(), force_operand(), gen_reg_rtx(), general_operand(), and GET_MODE.
| rtx copy_to_suggested_reg | ( | rtx | x, | |
| rtx | target, | |||
| enum machine_mode | mode | |||
| ) |
Definition at line 202 of file explow.c.
References const0_rtx, eliminate_constant_term(), gen_rtx_PLUS, GET_CODE, GET_MODE, PLUS, simplify_binary_operation(), x0, x1, and XEXP.
Definition at line 1361 of file explow.c.
References const0_rtx, emit_move_insn(), gen_reg_rtx(), gen_rtx_MEM(), MEM_VOLATILE_P, STACK_CHECK_PROBE_LOAD, and word_mode.
| void emit_stack_restore | ( | enum save_level save_level | , | |
| rtx | sa, | |||
| rtx | after | |||
| ) |
Definition at line 940 of file explow.c.
References discard_pending_stack_adjust(), emit_insn(), emit_insn_after(), end_sequence(), gen_move_insn(), gen_restore_stack_nonlocal(), gen_rtx_CLOBBER, gen_rtx_MEM(), gen_rtx_SCRATCH, get_insns(), HAVE_restore_stack_nonlocal, SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL, stack_pointer_rtx, start_sequence(), and validize_mem().
| void emit_stack_save | ( | enum save_level save_level | , | |
| rtx * | psave, | |||
| rtx | after | |||
| ) |
Definition at line 863 of file explow.c.
References assign_stack_local(), do_pending_stack_adjust(), emit_insn(), emit_insn_after(), end_sequence(), gen_move_insn(), gen_reg_rtx(), gen_save_stack_nonlocal(), get_insns(), GET_MODE_SIZE, HAVE_save_stack_nonlocal, mode, SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL, stack_pointer_rtx, STACK_SAVEAREA_MODE, start_sequence(), and validize_mem().
Definition at line 238 of file explow.c.
References expand_expr(), NULL_RTX, size, sizetype, SUBSTITUTE_PLACEHOLDER_IN_EXPR, TREE_CODE, TREE_OPERAND, and TYPE_MODE.
Definition at line 671 of file explow.c.
References emit_move_insn(), gen_reg_rtx(), GET_MODE, MEM_P, MEM_POINTER, and REG_POINTER.
| rtx force_reg | ( | enum machine_mode | mode, | |
| rtx | x | |||
| ) |
Definition at line 596 of file explow.c.
References align, BITS_PER_UNIT, c, CONST, CONSTANT_P, DECL_ALIGN, DECL_P, emit_move_insn(), exact_log2, force_operand(), gen_reg_rtx(), general_operand(), GET_CODE, get_last_insn(), insn, INTVAL, mark_reg_pointer(), MIN, NULL_RTX, PLUS, REG_EQUAL, REG_P, rtx_equal_p(), s, SET_DEST, SET_SRC, set_unique_reg_note(), single_set, SYMBOL_REF_DECL, and XEXP.
Definition at line 1509 of file explow.c.
References bytes, func, FUNCTION_OUTGOING_VALUE, FUNCTION_VALUE, gcc_assert, GET_CLASS_NARROWEST_MODE, GET_MODE, GET_MODE_SIZE, GET_MODE_WIDER_MODE, HOST_WIDE_INT, int_size_in_bytes(), MODE_INT, PUT_MODE, REG_P, and val.
| rtx hard_libcall_value | ( | enum machine_mode | mode | ) |
| HOST_WIDE_INT int_expr_size | ( | tree | exp | ) |
Definition at line 254 of file explow.c.
References host_integerp(), size, TREE_CODE, tree_low_cst(), and TREE_OPERAND.
| rtx memory_address | ( | enum machine_mode | mode, | |
| rtx | x | |||
| ) |
Definition at line 399 of file explow.c.
References BITS_PER_UNIT, break_out_memory_refs(), const0_rtx, CONSTANT_ADDRESS_P, CONSTANT_P, convert_memory_address(), copy_to_reg(), cse_not_expected, eliminate_constant_term(), flag_force_addr, force_operand(), force_reg(), gen_rtx_PLUS, general_operand(), GET_CODE, GET_MODE, LEGITIMIZE_ADDRESS, mark_reg_pointer(), memory_address_p(), MINUS, NULL_RTX, PLUS, Pmode, REG_P, update_temp_slot_address(), virtual_incoming_args_rtx, virtual_stack_vars_rtx, XEXP, and is::y.
| rtx memory_address_noforce | ( | enum machine_mode | mode, | |
| rtx | x | |||
| ) |
Definition at line 1386 of file explow.c.
References add_optab, addr(), CMP_OPCODE, convert_memory_address(), convert_to_mode(), copy_to_mode_reg(), emit_cmp_and_jump_insns(), emit_insn(), emit_jump(), emit_label(), emit_library_call(), emit_stack_probe(), expand_binop(), FIRST_PSEUDO_REGISTER, force_operand(), force_reg(), gcc_assert, GEN_INT, gen_label_rtx(), gen_rtx_fmt_ee(), GET_CODE, GET_MODE, HOST_WIDE_INT, int, INTVAL, LCT_NORMAL, memory_address(), NULL_RTX, offset, OPTAB_WIDEN, plus_constant, Pmode, ptr_mode, REG_P, REGNO, STACK_CHECK_PROBE_INTERVAL, STACK_GROW_OP, stack_pointer_rtx, and sub_optab.
| enum machine_mode promote_mode | ( | tree | type, | |
| enum machine_mode | mode, | |||
| int * | punsignedp, | |||
| int for_call | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 716 of file explow.c.
References Pmode, POINTERS_EXTEND_UNSIGNED, PROMOTE_FUNCTION_MODE, PROMOTE_MODE, and TREE_CODE.
Definition at line 825 of file explow.c.
References add_optab, align, BITS_PER_UNIT, expand_binop(), expand_divmod(), expand_mult(), GEN_INT, GET_CODE, HOST_WIDE_INT, INTVAL, NULL_RTX, OPTAB_LIB_WIDEN, Pmode, and PREFERRED_STACK_BOUNDARY.
| int rtx_to_tree_code | ( | enum rtx_code | code | ) |
| HOST_WIDE_INT trunc_int_for_mode | ( | HOST_WIDE_INT | c, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 48 of file explow.c.
References gcc_assert, GET_MODE_BITSIZE, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, SCALAR_INT_MODE_P, and STORE_FLAG_VALUE.
Definition at line 1004 of file explow.c.
Referenced by allocate_dynamic_stack_space(), expand_call(), and expand_function_start().
Definition at line 529 of file explow.c.
References CONSTANT_ADDRESS_P, flag_force_addr, GET_MODE, MEM_P, memory_address_p(), replace_equiv_address(), and XEXP.
1.5.6