Lines Matching full:config
92 static void init_libisa(XtensaConfig *config) in init_libisa() argument
99 config->isa = xtensa_isa_init(config->isa_internal, NULL, NULL); in init_libisa()
100 assert(xtensa_isa_maxlength(config->isa) <= MAX_INSN_LENGTH); in init_libisa()
101 assert(xtensa_insnbuf_size(config->isa) <= MAX_INSNBUF_LENGTH); in init_libisa()
102 opcodes = xtensa_isa_num_opcodes(config->isa); in init_libisa()
103 formats = xtensa_isa_num_formats(config->isa); in init_libisa()
104 regfiles = xtensa_isa_num_regfiles(config->isa); in init_libisa()
105 config->opcode_ops = g_new(XtensaOpcodeOps *, opcodes); in init_libisa()
108 assert(xtensa_format_num_slots(config->isa, i) <= MAX_INSN_SLOTS); in init_libisa()
112 const char *opc_name = xtensa_opcode_name(config->isa, i); in init_libisa()
115 assert(xtensa_opcode_num_operands(config->isa, i) <= MAX_OPCODE_ARGS); in init_libisa()
116 if (!config->opcode_translators) { in init_libisa()
119 for (j = 0; !ops && config->opcode_translators[j]; ++j) { in init_libisa()
120 ops = xtensa_find_opcode_ops(config->opcode_translators[j], in init_libisa()
128 config->name, opc_name); in init_libisa()
131 config->opcode_ops[i] = ops; in init_libisa()
133 config->a_regfile = xtensa_regfile_lookup(config->isa, "AR"); in init_libisa()
135 config->regfile = g_new(void **, regfiles); in init_libisa()
137 const char *name = xtensa_regfile_name(config->isa, i); in init_libisa()
138 int entries = xtensa_regfile_num_entries(config->isa, i); in init_libisa()
139 int bits = xtensa_regfile_num_bits(config->isa, i); in init_libisa()
141 config->regfile[i] = xtensa_get_regfile_by_name(name, entries, bits); in init_libisa()
143 if (config->regfile[i] == NULL) { in init_libisa()
145 name, config->name); in init_libisa()
149 xtensa_collect_sr_names(config); in init_libisa()
152 static void xtensa_finalize_config(XtensaConfig *config) in xtensa_finalize_config() argument
154 if (config->isa_internal) { in xtensa_finalize_config()
155 init_libisa(config); in xtensa_finalize_config()
158 if (config->gdb_regmap.num_regs == 0 || in xtensa_finalize_config()
159 config->gdb_regmap.num_core_regs == 0) { in xtensa_finalize_config()
163 xtensa_count_regs(config, &n_regs, &n_core_regs); in xtensa_finalize_config()
164 if (config->gdb_regmap.num_regs == 0) { in xtensa_finalize_config()
165 config->gdb_regmap.num_regs = n_regs; in xtensa_finalize_config()
167 if (config->gdb_regmap.num_core_regs == 0) { in xtensa_finalize_config()
168 config->gdb_regmap.num_core_regs = n_core_regs; in xtensa_finalize_config()
177 const XtensaConfig *config = data; in xtensa_core_class_init() local
179 xcc->config = config; in xtensa_core_class_init()
185 * in the gdb/xtensa-config.c inside gdb source tree or inside gdb overlay. in xtensa_core_class_init()
187 cc->gdb_num_core_regs = config->gdb_regmap.num_regs; in xtensa_core_class_init()
195 .class_data = node->config, in xtensa_register_core()
198 xtensa_finalize_config(node->config); in xtensa_register_core()
202 type.name = g_strdup_printf(XTENSA_CPU_TYPE_NAME("%s"), node->config->name); in xtensa_register_core()
211 for (i = 0; i < env->config->ndbreak; ++i) { in check_hw_breakpoints()
258 assert(xtensa_option_enabled(env->config, in xtensa_cpu_do_unaligned_access()