Lines Matching refs:isa

25 #include "xtensa-isa.h"
26 #include "xtensa-isa-internal.h"
43 xtensa_isa isa;
46 isa = xtensa_load_isa (0);
47 if (isa == 0)
55 if (!xtensa_extend_isa (isa, mod))
62 return isa;
68 xtensa_check_isa_config (xtensa_isa_internal *isa,
82 if (isa->num_modules == 0)
86 isa->config = config_table;
87 isa->has_density = 1; /* Default to have density option. */
93 isa->is_big_endian =
99 isa->has_density = atoi (config_table[i].param_value);
116 and we would then add those to isa->config so that subsequent modules
121 for (j = 0; isa->config[j].param_name; j++)
123 if (!strcmp (config_table[i].param_name, isa->config[j].param_name))
130 int basecnt = atoi (isa->config[j].param_value);
135 isa->config[j].param_value);
147 isa->config[j].param_value);
160 xtensa_add_isa (xtensa_isa_internal *isa, libisa_module_specifier libisa)
175 || (!get_config_table_fn && isa->num_modules == 0))
179 && !xtensa_check_isa_config (isa, get_config_table_fn ()))
182 prev_num_opcodes = isa->num_opcodes;
185 isa->num_opcodes += new_num_opcodes;
186 isa->opcode_table = (xtensa_opcode_internal **)
187 realloc (isa->opcode_table, isa->num_opcodes *
189 isa->opname_lookup_table = (opname_lookup_entry *)
190 realloc (isa->opname_lookup_table, isa->num_opcodes *
195 insn_size = isa->insn_size;
200 isa->opcode_table[newopc] = intopc;
201 isa->opname_lookup_table[newopc].key = intopc->name;
202 isa->opname_lookup_table[newopc].opcode = newopc;
207 isa->insn_size = insn_size;
208 isa->insnbuf_size = ((isa->insn_size + sizeof (xtensa_insnbuf_word) - 1) /
211 qsort (isa->opname_lookup_table, isa->num_opcodes,
215 for (opc = 1; opc < isa->num_opcodes; opc++)
217 if (!opname_lookup_compare (&isa->opname_lookup_table[opc-1],
218 &isa->opname_lookup_table[opc]))
221 isa->opname_lookup_table[opc].key);
226 this_module = isa->num_modules;
227 isa->num_modules += 1;
229 isa->module_opcode_base = (int *) realloc (isa->module_opcode_base,
230 isa->num_modules * sizeof (int));
231 isa->module_decode_fn = (xtensa_insn_decode_fn *)
232 realloc (isa->module_decode_fn, isa->num_modules *
235 isa->module_opcode_base[this_module] = prev_num_opcodes;
236 isa->module_decode_fn[this_module] = decode_insn_fn;
238 xtensa_default_isa = isa;
247 xtensa_isa_internal *isa;
249 isa = (xtensa_isa_internal *) malloc (sizeof (xtensa_isa_internal));
250 memset (isa, 0, sizeof (xtensa_isa_internal));
251 if (!xtensa_add_isa (isa, libisa))
253 xtensa_isa_free (isa);
256 return (xtensa_isa) isa;
261 xtensa_extend_isa (xtensa_isa isa, libisa_module_specifier libisa)
263 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
269 xtensa_isa_free (xtensa_isa isa)
271 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
285 xtensa_insn_maxlength (xtensa_isa isa)
287 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
293 xtensa_insnbuf_size (xtensa_isa isa)
295 xtensa_isa_internal *intisa = (xtensa_isa_internal *)isa;
301 xtensa_num_opcodes (xtensa_isa isa)
303 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
309 xtensa_opcode_lookup (xtensa_isa isa, const char *opname)
311 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
323 xtensa_decode_insn (xtensa_isa isa, const xtensa_insnbuf insn)
325 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
339 xtensa_encode_insn (xtensa_isa isa, xtensa_opcode opc, xtensa_insnbuf insn)
341 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
360 xtensa_opcode_name (xtensa_isa isa, xtensa_opcode opc)
362 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
368 xtensa_insn_length (xtensa_isa isa, xtensa_opcode opc)
370 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
376 xtensa_insn_length_from_first_byte (xtensa_isa isa, char first_byte)
378 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
385 xtensa_num_operands (xtensa_isa isa, xtensa_opcode opc)
387 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
393 xtensa_get_operand (xtensa_isa isa, xtensa_opcode opc, int opnd)
395 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
484 xtensa_insnbuf_alloc (xtensa_isa isa)
486 return (xtensa_insnbuf) malloc (xtensa_insnbuf_size (isa) *
524 xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn, char *cp)
526 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
544 opc = xtensa_decode_insn (isa, insn);
548 byte_count = xtensa_insn_length (isa, opc);
565 xtensa_insnbuf_from_chars (xtensa_isa isa, xtensa_insnbuf insn, const char* cp)
567 xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
583 memset (insn, 0, xtensa_insnbuf_size (isa) * sizeof (xtensa_insnbuf_word));