#include "bconfig.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "rtl.h"#include "obstack.h"#include "errors.h"#include "hashtab.h"#include "gensupport.h"

Go to the source code of this file.
| #define NUM_KNOWN_OLD_PREDS ARRAY_SIZE (old_preds) |
| #define NUM_OLD_SPECIAL_MODE_PREDS ARRAY_SIZE (old_special_pred_table) |
Definition at line 1212 of file gensupport.c.
Referenced by init_predicate_table(), and process_define_predicate().
| static const char * alter_output_for_insn | ( | struct queue_elem * | ce_elem, | |
| struct queue_elem * | insn_elem, | |||
| int | alt, | |||
| int | max_op | |||
| ) | [static] |
Definition at line 707 of file gensupport.c.
References queue_elem::data, insn_len(), ISSPACE, len, memcpy, p, result, shift_output_template(), strlen(), XNEWVEC, XSTR, and XTMPL.
Definition at line 575 of file gensupport.c.
References alter_predicate_for_insn(), c, errors, gcc_unreachable, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, len, memcpy, message_with_line(), n_alternatives(), NULL, r, strlen(), XEXP, XINT, XNEWVEC, XSTR, XVECEXP, and XVECLEN.
| static const char * alter_test_for_insn | ( | struct queue_elem * | ce_elem, | |
| struct queue_elem * | insn_elem | |||
| ) | [static] |
Definition at line 520 of file gensupport.c.
References collect_insn_data(), gcc_unreachable, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, len, n_alternatives(), NULL, XEXP, XINT, XSTR, XVEC, XVECEXP, and XVECLEN.
Definition at line 1197 of file gensupport.c.
References strcmp().
Referenced by init_predicate_table().
| rtx gen_rtx_CONST_INT | ( | enum machine_mode | ARG_UNUSEDmode, | |
| HOST_WIDE_INT | arg | |||
| ) |
Definition at line 1080 of file gensupport.c.
Definition at line 1191 of file gensupport.c.
References htab_hash_string().
Referenced by init_predicate_table().
Definition at line 438 of file gensupport.c.
References CONST, queue_elem::data, errors, GET_CODE, queue_elem::lineno, message_with_line(), queue_elem::next, NULL, predicable_default, predicable_false, predicable_true, strchr, strcmp(), XEXP, XSTR, and xstrdup().
| int init_md_reader_args | ( | int | argc, | |
| char ** | argv | |||
| ) |
| int init_md_reader_args_cb | ( | int | argc, | |
| char ** | argv, | |||
| bool(*)(const char *) | parse_opt | |||
| ) |
Definition at line 1286 of file gensupport.c.
References add_predicate(), pred_data::allows_non_const, pred_data::allows_non_lvalue, pred_data::codes, old_pred_table::codes, CONCAT, eq_struct_pred_data(), error(), free(), GET_RTX_CLASS, hash_struct_pred_data(), htab_create_alloc(), i, lookup_predicate(), MEM, old_pred_table::name, pred_data::name, NUM_KNOWN_OLD_PREDS, NUM_OLD_SPECIAL_MODE_PREDS, REG, RTX_CONST_OBJ, pred_data::singleton, pred_data::special, and xcalloc().
Referenced by init_md_reader_args_cb().
| static int is_predicable | ( | struct queue_elem * | elem | ) | [static] |
Definition at line 350 of file gensupport.c.
References queue_elem::data, errors, gcc_unreachable, GET_CODE, GET_NUM_ELEM, i, queue_elem::lineno, message_with_line(), NULL, predicable_default, predicable_false, predicable_true, RTVEC_ELT, SET, SET_DEST, SET_SRC, strchr, strcmp(), sub, vec, XSTR, and XVEC.
Definition at line 1204 of file gensupport.c.
Referenced by add_to_sequence(), compute_predicate_codes(), init_predicate_table(), mark_mode_tests(), and validate_pattern().
| int maybe_eval_c_test | ( | const char * | expr | ) |
Definition at line 1119 of file gensupport.c.
| void message_with_line | ( | int | lineno, | |
| const char * | msg, | |||
| ... | ||||
| ) |
Definition at line 123 of file gensupport.c.
Referenced by add_constraint(), add_to_sequence(), alter_predicate_for_insn(), check_attr_value(), check_defs(), compute_predicate_codes(), convert_set_attr_alternative(), gen_attr(), gen_delay(), gen_unit(), identify_predicable_attribute(), is_predicable(), merge_accept_insn(), process_define_predicate(), process_include(), process_one_cond_exec(), process_template(), scan_operands(), validate_exp(), validate_insn_alternatives(), validate_insn_operands(), and validate_pattern().
| static int n_alternatives | ( | const char * | s | ) | [static] |
| int n_comma_elts | ( | const char * | s | ) |
Definition at line 1140 of file gensupport.c.
Definition at line 880 of file gensupport.c.
References errors, identify_predicable_attribute(), queue_elem::next, and process_one_cond_exec().
Definition at line 204 of file gensupport.c.
References base_dir, concat(), DIR_SEPARATOR, errors, fclose(), filename, file_name_list::fname, fopen, free(), include_callback, IS_ABSOLUTE_PATH, message_with_line(), file_name_list::next, NULL, process_rtx(), read_rtx(), read_rtx_filename, read_rtx_lineno, XSTR, and xstrdup().
| static void process_one_cond_exec | ( | struct queue_elem * | ce_elem | ) | [static] |
Definition at line 769 of file gensupport.c.
References alter_output_for_insn(), alter_predicate_for_insn(), alter_test_for_insn(), collect_insn_data(), copy_rtx(), queue_elem::data, errors, queue_elem::filename, i, insn, is_predicable(), queue_elem::lineno, message_with_line(), queue_elem::next, NULL, pattern, PUT_NUM_ELEM, queue_pattern(), read_rtx_filename, rtvec_alloc(), rtx_alloc, queue_elem::split, split, XEXP, XSTR, XTMPL, XVEC, XVECEXP, and XVECLEN.
Definition at line 271 of file gensupport.c.
References concat(), copy_rtx(), GET_CODE, i, INCLUDE, NULL, process_include(), PUT_CODE, queue_pattern(), read_rtx_filename, remove_constraints(), rtvec_alloc(), rtx_alloc, queue_elem::split, split, XSTR, XVEC, XVECEXP, and XVECLEN.
| static struct queue_elem * queue_pattern | ( | rtx | pattern, | |
| struct queue_elem *** | list_tail, | |||
| const char * | filename, | |||
| int | lineno | |||
| ) | [static, read] |
Definition at line 153 of file gensupport.c.
References queue_elem::data, queue_elem::filename, queue_elem::lineno, queue_elem::next, NULL, queue_elem::split, and XNEW.
| rtx read_md_rtx | ( | int * | lineno, | |
| int * | seqnr | |||
| ) |
Definition at line 1015 of file gensupport.c.
References queue_elem::data, queue_elem::filename, free(), GET_CODE, insn_elision, queue_elem::lineno, maybe_eval_c_test(), queue_elem::next, NULL, NULL_RTX, queue(), read_rtx_filename, sequence_num, and XSTR.
Definition at line 170 of file gensupport.c.
References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, NULL, remove_constraints(), XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.
| static char * save_string | ( | const char * | s, | |
| int | len | |||
| ) | [static] |
| const char* scan_comma_elt | ( | const char ** | pstr | ) |
Definition at line 1161 of file gensupport.c.
| static char * shift_output_template | ( | char * | dest, | |
| const char * | src, | |||
| int | disp | |||
| ) | [static] |
char* base_dir = NULL [static] |
Definition at line 56 of file gensupport.c.
htab_t condition_table [static] |
Definition at line 54 of file gensupport.c.
struct queue_elem* define_attr_queue [static] |
Definition at line 72 of file gensupport.c.
struct queue_elem** define_attr_tail = &define_attr_queue [static] |
Definition at line 73 of file gensupport.c.
struct queue_elem* define_cond_exec_queue [static] |
Definition at line 78 of file gensupport.c.
struct queue_elem** define_cond_exec_tail = &define_cond_exec_queue [static] |
Definition at line 79 of file gensupport.c.
struct queue_elem* define_insn_queue [static] |
Definition at line 76 of file gensupport.c.
struct queue_elem** define_insn_tail = &define_insn_queue [static] |
Definition at line 77 of file gensupport.c.
struct queue_elem* define_pred_queue [static] |
Definition at line 74 of file gensupport.c.
struct queue_elem** define_pred_tail = &define_pred_queue [static] |
Definition at line 75 of file gensupport.c.
int errors [static] |
Definition at line 48 of file gensupport.c.
Definition at line 99 of file gensupport.c.
Definition at line 97 of file gensupport.c.
Definition at line 1187 of file gensupport.c.
| const char* in_fname |
Definition at line 38 of file gensupport.c.
| void(* include_callback)(const char *) |
Referenced by main(), and process_include().
| int insn_elision = 1 |
Definition at line 36 of file gensupport.c.
Definition at line 100 of file gensupport.c.
struct pred_data** last_predicate = &first_predicate [static] |
Definition at line 1188 of file gensupport.c.
Definition at line 89 of file gensupport.c.
Definition at line 44 of file gensupport.c.
struct old_pred_table old_preds[] [static] |
Initial value:
{
{"general_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,
LABEL_REF, SUBREG, REG, MEM }},
{"address_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,
LABEL_REF, SUBREG, REG, MEM,
PLUS, MINUS, MULT}},
{"register_operand", {SUBREG, REG}},
{"pmode_register_operand", {SUBREG, REG}},
{"scratch_operand", {SCRATCH, REG}},
{"immediate_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,
LABEL_REF}},
{"const_int_operand", {CONST_INT}},
{"const_double_operand", {CONST_INT, CONST_DOUBLE}},
{"nonimmediate_operand", {SUBREG, REG, MEM}},
{"nonmemory_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,
LABEL_REF, SUBREG, REG}},
{"push_operand", {MEM}},
{"pop_operand", {MEM}},
{"memory_operand", {SUBREG, MEM}},
{"indirect_operand", {SUBREG, MEM}},
{"comparison_operator", {EQ, NE, LE, LT, GE, GT, LEU, LTU, GEU, GTU,
UNORDERED, ORDERED, UNEQ, UNGE, UNGT, UNLE,
UNLT, LTGT}},
}
Definition at line 1237 of file gensupport.c.
const char* const old_special_pred_table[] [static] |
Initial value:
{
"address_operand",
"pmode_register_operand",
}
Definition at line 1271 of file gensupport.c.
struct queue_elem* other_queue [static] |
Definition at line 80 of file gensupport.c.
struct queue_elem** other_tail = &other_queue [static] |
Definition at line 81 of file gensupport.c.
int predicable_default [static] |
Definition at line 50 of file gensupport.c.
const char* predicable_false [static] |
Definition at line 52 of file gensupport.c.
const char* predicable_true [static] |
Definition at line 51 of file gensupport.c.
htab_t predicate_table [static] |
Definition at line 1186 of file gensupport.c.
Definition at line 45 of file gensupport.c.
int sequence_num [static] |
Definition at line 47 of file gensupport.c.
| int target_flags |
Definition at line 34 of file gensupport.c.
1.5.6