GCC Middle and Back End API Reference
|
Data Structures | |
struct | clobber_pat |
struct | clobber_ent |
Functions | |
static void | print_code (RTX_CODE) |
static void | gen_exp (rtx, enum rtx_code, char *) |
static void | gen_insn (rtx, int) |
static void | gen_expand (rtx) |
static void | gen_split (rtx) |
static void | output_add_clobbers (void) |
static void | output_added_clobbers_hard_reg_p (void) |
static void | gen_rtx_scratch (rtx, enum rtx_code) |
static void | output_peephole2_scratches (rtx) |
static void | print_code () |
static void | gen_rtx_scratch () |
static void | gen_exp () |
static void | gen_insn () |
static void | gen_expand () |
static void | gen_split () |
static void | output_peephole2_scratches () |
int | main () |
Variables | |
static int | insn_code_number |
static int | insn_index_number |
struct clobber_pat * | clobber_list |
|
static |
Referenced by gen_exp(), gen_expand(), gen_insn(), gen_split(), and output_add_clobbers().
|
static |
Print a C expression to construct an RTX just like X, substituting any operand references appearing within.
References gen_exp(), gen_rtx_scratch(), HOST_WIDE_INT_PRINT_DEC_C, len, and print_code().
|
static |
|
static |
Generate the `gen_...' function for a DEFINE_EXPAND.
References fatal(), gen_exp(), get_pattern_stats(), pattern_stats::max_dup_opno, pattern_stats::max_opno, pattern_stats::max_scratch_opno, pattern_stats::num_generator_args, pattern_stats::num_operand_vars, print_md_ptr_loc(), SET, and strlen().
|
static |
|
static |
Generate the `gen_...' function for a DEFINE_INSN.
References clobber_list, clobber_ent::code_number, fatal(), clobber_pat::first_clobber, gen_exp(), get_pattern_stats(), clobber_pat::has_hard_reg, insn_code_number, clobber_pat::insns, pattern_stats::max_dup_opno, pattern_stats::max_opno, clobber_pat::next, clobber_ent::next, pattern_stats::num_generator_args, clobber_pat::pattern, and read_md_filename.
|
static |
|
static |
|
static |
Like gen_expand, but generates insns resulting from splitting SPLIT.
References fatal(), free(), gen_exp(), get_pattern_stats(), insn_code_number, insn_index_number, pattern_stats::num_operand_vars, output_peephole2_scratches(), print_md_ptr_loc(), and SET.
int main | ( | ) |
|
static |
Write a function, `add_clobbers', that is given a PARALLEL of sufficient size for the insn and an INSN_CODE, and inserts the required CLOBBERs at the end of the vector.
References clobber_list, clobber_ent::code_number, clobber_pat::first_clobber, gen_exp(), clobber_pat::insns, clobber_pat::next, clobber_ent::next, and clobber_pat::pattern.
Referenced by main().
|
static |
Write a function, `added_clobbers_hard_reg_p' that is given an insn_code number that will have clobbers added (as indicated by `recog') and returns 1 if those include a clobber of a hard reg or 0 if all of them just clobber SCRATCH.
References clobber_list, clobber_ent::code_number, clobber_pat::has_hard_reg, clobber_pat::insns, clobber_pat::next, and clobber_ent::next.
Referenced by main().
|
static |
Referenced by gen_split().
|
static |
Generate code to invoke find_free_register () as needed for the scratch registers used by the peephole2 pattern in SPLIT.
References first.
|
static |
Referenced by gen_exp(), and match_rtx().
|
static |
struct clobber_pat * clobber_list |
Referenced by gen_insn(), output_add_clobbers(), and output_added_clobbers_hard_reg_p().
|
static |
@verbatim Generate code from machine description to emit insns as rtl.
Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/.
Referenced by gen_insn(), gen_split(), and main().
|
static |
Referenced by gen_split(), and main().