Lines Matching refs:cd

3211 build_hw_table (CGEN_CPU_TABLE *cd)
3214 int machs = cd->machs;
3222 cd->hw_table.init_entries = init;
3223 cd->hw_table.entry_size = sizeof (CGEN_HW_ENTRY);
3230 cd->hw_table.entries = selected;
3231 cd->hw_table.num_entries = MAX_HW;
3237 build_ifield_table (CGEN_CPU_TABLE *cd)
3239 cd->ifld_table = & xc16x_cgen_ifld_table[0];
3245 build_operand_table (CGEN_CPU_TABLE *cd)
3248 int machs = cd->machs;
3255 cd->operand_table.init_entries = init;
3256 cd->operand_table.entry_size = sizeof (CGEN_OPERAND);
3263 cd->operand_table.entries = selected;
3264 cd->operand_table.num_entries = MAX_OPERANDS;
3276 build_insn_table (CGEN_CPU_TABLE *cd)
3285 cd->insn_table.init_entries = insns;
3286 cd->insn_table.entry_size = sizeof (CGEN_IBASE);
3287 cd->insn_table.num_init_entries = MAX_INSNS;
3293 xc16x_cgen_rebuild_tables (CGEN_CPU_TABLE *cd)
3296 CGEN_BITSET *isas = cd->isas;
3297 unsigned int machs = cd->machs;
3299 cd->int_insn_p = CGEN_INT_INSN_P;
3303 cd->default_insn_bitsize = UNSET;
3304 cd->base_insn_bitsize = UNSET;
3305 cd->min_insn_bitsize = 65535; /* Some ridiculously big number. */
3306 cd->max_insn_bitsize = 0;
3314 if (cd->default_insn_bitsize == UNSET)
3315 cd->default_insn_bitsize = isa->default_insn_bitsize;
3316 else if (isa->default_insn_bitsize == cd->default_insn_bitsize)
3319 cd->default_insn_bitsize = CGEN_SIZE_UNKNOWN;
3323 if (cd->base_insn_bitsize == UNSET)
3324 cd->base_insn_bitsize = isa->base_insn_bitsize;
3325 else if (isa->base_insn_bitsize == cd->base_insn_bitsize)
3328 cd->base_insn_bitsize = CGEN_SIZE_UNKNOWN;
3331 if (isa->min_insn_bitsize < cd->min_insn_bitsize)
3332 cd->min_insn_bitsize = isa->min_insn_bitsize;
3333 if (isa->max_insn_bitsize > cd->max_insn_bitsize)
3334 cd->max_insn_bitsize = isa->max_insn_bitsize;
3345 if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize)
3351 cd->insn_chunk_bitsize, mach->insn_chunk_bitsize);
3355 cd->insn_chunk_bitsize = mach->insn_chunk_bitsize;
3360 build_hw_table (cd);
3363 build_ifield_table (cd);
3366 build_operand_table (cd);
3369 build_insn_table (cd);
3390 CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE));
3403 memset (cd, 0, sizeof (*cd));
3455 cd->isas = cgen_bitset_copy (isas);
3456 cd->machs = machs;
3457 cd->endian = endian;
3462 cd->insn_endian = endian;
3465 cd->rebuild_tables = xc16x_cgen_rebuild_tables;
3466 xc16x_cgen_rebuild_tables (cd);
3469 cd->signed_overflow_ok_p = 0;
3471 return (CGEN_CPU_DESC) cd;
3491 xc16x_cgen_cpu_close (CGEN_CPU_DESC cd)
3496 if (cd->macro_insn_table.init_entries)
3498 insns = cd->macro_insn_table.init_entries;
3499 for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
3504 if (cd->insn_table.init_entries)
3506 insns = cd->insn_table.init_entries;
3507 for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
3512 if (cd->macro_insn_table.init_entries)
3513 free ((CGEN_INSN *) cd->macro_insn_table.init_entries);
3515 if (cd->insn_table.init_entries)
3516 free ((CGEN_INSN *) cd->insn_table.init_entries);
3518 if (cd->hw_table.entries)
3519 free ((CGEN_HW_ENTRY *) cd->hw_table.entries);
3521 if (cd->operand_table.entries)
3522 free ((CGEN_HW_ENTRY *) cd->operand_table.entries);
3524 free (cd);