Lines Matching refs:vinsn

6351 resources_conflict (vliw_insn *vinsn)  in resources_conflict()  argument
6357 if (vinsn->num_slots == 1) in resources_conflict()
6374 for (i = 0; i < vinsn->num_slots; i++) in resources_conflict()
6376 if (!resources_available (rt, vinsn->slots[i].opcode, 0)) in resources_conflict()
6378 reserve_resources (rt, vinsn->slots[i].opcode, 0); in resources_conflict()
6395 finish_vinsn (vliw_insn *vinsn) in finish_vinsn() argument
6401 if (find_vinsn_conflicts (vinsn)) in finish_vinsn()
6403 xg_clear_vinsn (vinsn); in finish_vinsn()
6408 if (vinsn->format == XTENSA_UNDEFINED) in finish_vinsn()
6409 vinsn->format = xg_find_narrowest_format (vinsn); in finish_vinsn()
6411 slots = xtensa_format_num_slots (xtensa_default_isa, vinsn->format); in finish_vinsn()
6416 xg_clear_vinsn (vinsn); in finish_vinsn()
6420 if (vinsn->format == XTENSA_UNDEFINED) in finish_vinsn()
6424 for (i = 0; i < vinsn->num_slots; i++) in finish_vinsn()
6427 vinsn->slots[i].opcode)); in finish_vinsn()
6429 xg_clear_vinsn (vinsn); in finish_vinsn()
6433 if (vinsn->num_slots != slots) in finish_vinsn()
6436 xtensa_format_name (xtensa_default_isa, vinsn->format), in finish_vinsn()
6437 slots, vinsn->num_slots); in finish_vinsn()
6438 xg_clear_vinsn (vinsn); in finish_vinsn()
6442 if (resources_conflict (vinsn)) in finish_vinsn()
6446 for (i = 0; i < vinsn->num_slots; i++) in finish_vinsn()
6449 vinsn->slots[i].opcode)); in finish_vinsn()
6451 xg_clear_vinsn (vinsn); in finish_vinsn()
6455 for (i = 0; i < vinsn->num_slots; i++) in finish_vinsn()
6457 if (vinsn->slots[i].opcode != XTENSA_UNDEFINED) in finish_vinsn()
6465 if (vinsn->num_slots > 1) in finish_vinsn()
6469 if (vinsn->slots[i].opcode == xtensa_nop_opcode) in finish_vinsn()
6471 vinsn->slots[i].opcode = in finish_vinsn()
6473 vinsn->format, i); in finish_vinsn()
6474 vinsn->slots[i].ntok = 0; in finish_vinsn()
6477 if (xg_expand_assembly_insn (&slotstack, &vinsn->slots[i])) in finish_vinsn()
6487 xg_clear_vinsn (vinsn); in finish_vinsn()
6509 if (vinsn->num_slots > 1) in finish_vinsn()
6513 vinsn->format, i)) in finish_vinsn()
6515 vinsn->slots[i] = slotstack.insn[slotstack.ninsn - 1]; in finish_vinsn()
6520 if (vinsn->format == XTENSA_UNDEFINED) in finish_vinsn()
6521 vinsn->slots[i].opcode = xtensa_nop_opcode; in finish_vinsn()
6523 vinsn->slots[i].opcode in finish_vinsn()
6525 vinsn->format, i); in finish_vinsn()
6527 vinsn->slots[i].ntok = 0; in finish_vinsn()
6532 vinsn->slots[0] = slotstack.insn[slotstack.ninsn - 1]; in finish_vinsn()
6533 vinsn->format = XTENSA_UNDEFINED; in finish_vinsn()
6539 if (resources_conflict (vinsn)) in finish_vinsn()
6543 for (i = 0; i < vinsn->num_slots; i++) in finish_vinsn()
6546 vinsn->slots[i].opcode)); in finish_vinsn()
6548 xg_clear_vinsn (vinsn); in finish_vinsn()
6553 if (vinsn->format == XTENSA_UNDEFINED) in finish_vinsn()
6554 vinsn->format = xg_find_narrowest_format (vinsn); in finish_vinsn()
6556 xg_assemble_vliw_tokens (vinsn); in finish_vinsn()
6558 xg_clear_vinsn (vinsn); in finish_vinsn()
6597 find_vinsn_conflicts (vliw_insn *vinsn) in find_vinsn_conflicts() argument
6605 for (i = 0 ; i < vinsn->num_slots; i++) in find_vinsn_conflicts()
6607 TInsn *op1 = &vinsn->slots[i]; in find_vinsn_conflicts()
6614 for (i = 0 ; i < vinsn->num_slots; i++) in find_vinsn_conflicts()
6616 TInsn *op1 = &vinsn->slots[i]; in find_vinsn_conflicts()
6621 for (j = 0; j < vinsn->num_slots; j++) in find_vinsn_conflicts()
6625 TInsn *op2 = &vinsn->slots[j]; in find_vinsn_conflicts()
6846 xg_find_narrowest_format (vliw_insn *vinsn) in xg_find_narrowest_format() argument
6857 if (vinsn->num_slots == 1) in xg_find_narrowest_format()
6858 return xg_get_single_format (vinsn->slots[0].opcode); in xg_find_narrowest_format()
6863 xg_copy_vinsn (&v_copy, vinsn); in xg_find_narrowest_format()
6898 xg_copy_vinsn (vinsn, &v_copy); in xg_find_narrowest_format()
6899 xtensa_format_encode (isa, format, vinsn->insnbuf); in xg_find_narrowest_format()
6900 vinsn->format = format; in xg_find_narrowest_format()
6919 relaxation_requirements (vliw_insn *vinsn, bfd_boolean *pfinish_frag) in relaxation_requirements() argument
6925 for (slot = 0; slot < vinsn->num_slots; slot++) in relaxation_requirements()
6927 TInsn *tinsn = &vinsn->slots[slot]; in relaxation_requirements()
6934 && vinsn->num_slots == 1) in relaxation_requirements()
6979 bundle_tinsn (TInsn *tinsn, vliw_insn *vinsn) in bundle_tinsn() argument
6984 vinsn->format = xg_get_single_format (tinsn->opcode); in bundle_tinsn()
6985 gas_assert (vinsn->format != XTENSA_UNDEFINED); in bundle_tinsn()
6986 vinsn->num_slots = xtensa_format_num_slots (isa, vinsn->format); in bundle_tinsn()
6989 for (slot = 0; slot < vinsn->num_slots; slot++) in bundle_tinsn()
6992 vinsn->slots[slot] = *tinsn; in bundle_tinsn()
6995 vinsn->slots[slot].opcode = in bundle_tinsn()
6996 xtensa_format_slot_nop_opcode (isa, vinsn->format, slot); in bundle_tinsn()
6997 vinsn->slots[slot].ntok = 0; in bundle_tinsn()
6998 vinsn->slots[slot].insn_type = ITYPE_INSN; in bundle_tinsn()
7092 xg_assemble_vliw_tokens (vliw_insn *vinsn) in xg_assemble_vliw_tokens() argument
7122 || (vinsn_has_specific_opcodes (vinsn) && use_transform ()) in xg_assemble_vliw_tokens()
7135 && vinsn->num_slots == 1 in xg_assemble_vliw_tokens()
7137 && xtensa_opcode_is_branch (isa, vinsn->slots[0].opcode) == 1 in xg_assemble_vliw_tokens()
7161 for (slot = 0; slot < vinsn->num_slots; slot++) in xg_assemble_vliw_tokens()
7163 tinsn = &vinsn->slots[slot]; in xg_assemble_vliw_tokens()
7181 if (xtensa_opcode_is_loop (isa, vinsn->slots[0].opcode) == 1) in xg_assemble_vliw_tokens()
7190 if (vinsn->slots[0].tok[1].X_op == O_symbol) in xg_assemble_vliw_tokens()
7191 target_sym = vinsn->slots[0].tok[1].X_add_symbol; in xg_assemble_vliw_tokens()
7209 if (vinsn->slots[0].opcode == xtensa_entry_opcode in xg_assemble_vliw_tokens()
7210 && !vinsn->slots[0].is_specific_opcode) in xg_assemble_vliw_tokens()
7217 if (vinsn->num_slots == 1) in xg_assemble_vliw_tokens()
7221 is_register_writer (&vinsn->slots[0], "a", 0)); in xg_assemble_vliw_tokens()
7224 is_bad_loopend_opcode (&vinsn->slots[0])); in xg_assemble_vliw_tokens()
7229 insn_size = xtensa_format_length (isa, vinsn->format); in xg_assemble_vliw_tokens()
7231 extra_space = relaxation_requirements (vinsn, &finish_frag); in xg_assemble_vliw_tokens()
7234 if (vinsn->format != XTENSA_UNDEFINED) in xg_assemble_vliw_tokens()
7241 vinsn_to_insnbuf (vinsn, f, frag_now, FALSE); in xg_assemble_vliw_tokens()
7242 if (vinsn->format == XTENSA_UNDEFINED) in xg_assemble_vliw_tokens()
7245 xtensa_insnbuf_to_chars (isa, vinsn->insnbuf, (unsigned char *) f, 0); in xg_assemble_vliw_tokens()
7251 for (slot = 0; slot < vinsn->num_slots; slot++) in xg_assemble_vliw_tokens()
7253 tinsn = &vinsn->slots[slot]; in xg_assemble_vliw_tokens()
7266 gas_assert (vinsn->num_slots == 1); in xg_assemble_vliw_tokens()
7277 if (vinsn_has_specific_opcodes (vinsn) && use_transform ()) in xg_assemble_vliw_tokens()
7294 if (xtensa_opcode_is_loop (isa, vinsn->slots[0].opcode) == 1 in xg_assemble_vliw_tokens()
7295 && !vinsn->slots[0].is_specific_opcode) in xg_assemble_vliw_tokens()
7354 && xtensa_opcode_is_call (isa, vinsn->slots[0].opcode) == 1) in xg_assemble_vliw_tokens()
7363 if (vinsn_has_specific_opcodes (vinsn) && use_transform ()) in xg_assemble_vliw_tokens()
8098 vliw_insn vinsn; in xtensa_mark_narrow_branches() local
8100 vinsn_from_chars (&vinsn, fragP->fr_opcode); in xtensa_mark_narrow_branches()
8101 tinsn_immed_from_frag (&vinsn.slots[0], fragP, 0); in xtensa_mark_narrow_branches()
8103 if (vinsn.num_slots == 1 in xtensa_mark_narrow_branches()
8105 vinsn.slots[0].opcode) == 1 in xtensa_mark_narrow_branches()
8106 && xg_get_single_size (vinsn.slots[0].opcode) == 2 in xtensa_mark_narrow_branches()
8108 &vinsn.slots[0])) in xtensa_mark_narrow_branches()
12725 static vliw_insn vinsn; in tinsn_to_insnbuf() local
12733 xg_init_vinsn (&vinsn); in tinsn_to_insnbuf()
12736 xg_clear_vinsn (&vinsn); in tinsn_to_insnbuf()
12738 bundle_tinsn (tinsn, &vinsn); in tinsn_to_insnbuf()
12740 xtensa_format_encode (isa, vinsn.format, insnbuf); in tinsn_to_insnbuf()
12742 for (i = 0; i < vinsn.num_slots; i++) in tinsn_to_insnbuf()
12746 tinsn_to_slotbuf (vinsn.format, i, &vinsn.slots[i], vinsn.slotbuf[i]); in tinsn_to_insnbuf()
12747 xtensa_format_set_slot (isa, vinsn.format, i, insnbuf, vinsn.slotbuf[i]); in tinsn_to_insnbuf()
12842 vliw_insn vinsn; in tinsn_from_chars() local
12844 xg_init_vinsn (&vinsn); in tinsn_from_chars()
12845 vinsn_from_chars (&vinsn, f); in tinsn_from_chars()
12847 *tinsn = vinsn.slots[slot]; in tinsn_from_chars()
12848 xg_free_vinsn (&vinsn); in tinsn_from_chars()
13009 vinsn_to_insnbuf (vliw_insn *vinsn, in vinsn_to_insnbuf() argument
13015 xtensa_format fmt = vinsn->format; in vinsn_to_insnbuf()
13016 xtensa_insnbuf insnbuf = vinsn->insnbuf; in vinsn_to_insnbuf()
13022 for (slot = 0; slot < vinsn->num_slots; slot++) in vinsn_to_insnbuf()
13024 TInsn *tinsn = &vinsn->slots[slot]; in vinsn_to_insnbuf()
13027 tinsn_to_slotbuf (vinsn->format, slot, tinsn, in vinsn_to_insnbuf()
13028 vinsn->slotbuf[slot]); in vinsn_to_insnbuf()
13031 insnbuf, vinsn->slotbuf[slot]); in vinsn_to_insnbuf()
13034 if (vinsn->num_slots != 1) in vinsn_to_insnbuf()
13105 vinsn_from_chars (vliw_insn *vinsn, char *f) in vinsn_from_chars() argument
13123 vinsn->format = fmt; in vinsn_from_chars()
13124 vinsn->num_slots = xtensa_format_num_slots (isa, fmt); in vinsn_from_chars()
13126 for (i = 0; i < vinsn->num_slots; i++) in vinsn_from_chars()
13128 TInsn *tinsn = &vinsn->slots[i]; in vinsn_from_chars()