Lines Matching refs:insn
331 insert_reg (arc_insn insn, in insert_reg() argument
372 insn |= marker << operand->shift; in insert_reg()
381 insn |= ARC_REG_LIMM << operand->shift; in insert_reg()
397 if ((insn & I(-1)) == I(2)) /* Check for use validity. */ in insert_reg()
407 insn |= ARC_REG_SHIMM << operand->shift; in insert_reg()
408 insn |= reg->value << arc_operands[reg->type].shift; in insert_reg()
414 if ('a' == operand->fmt || ((insn & I(-1)) < I(2))) in insert_reg()
430 insn |= reg->value << operand->shift; in insert_reg()
444 if ((insn & I(-1)) == I(2)) in insert_reg()
454 return insn; in insert_reg()
460 insert_flag (arc_insn insn, in insert_flag() argument
471 return insn; in insert_flag()
477 insert_nullify (arc_insn insn, in insert_nullify() argument
485 insn |= (value & ((1 << operand->bits) - 1)) << operand->shift; in insert_nullify()
487 return insn; in insert_nullify()
495 insert_flagfinish (arc_insn insn, in insert_flagfinish() argument
507 insn |= (1 << operand->shift); in insert_flagfinish()
509 return insn; in insert_flagfinish()
515 insert_cond (arc_insn insn, in insert_cond() argument
523 insn |= (value & ((1 << operand->bits) - 1)) << operand->shift; in insert_cond()
524 return insn; in insert_cond()
534 insert_forcelimm (arc_insn insn, in insert_forcelimm() argument
542 return insn; in insert_forcelimm()
546 insert_addr_wb (arc_insn insn, in insert_addr_wb() argument
554 return insn; in insert_addr_wb()
558 insert_base (arc_insn insn, in insert_base() argument
569 insn |= B(myinsn); in insert_base()
579 insn &= ~C(-1); /* We know where the value is in insn. */ in insert_base()
580 insn |= C(ARC_REG_LIMM); in insert_base()
583 insn |= ARC_REG_SHIMM << operand->shift; in insert_base()
594 return insn; in insert_base()
598 insn |= B(ARC_REG_LIMM); in insert_base()
602 return insn; in insert_base()
609 insert_offset (arc_insn insn, in insert_offset() argument
624 if ((insn & I(-1)) != I(1)) /* Not if opcode == 1, catch it later. */ in insert_offset()
625 insn |= C (myinsn); in insert_offset()
651 insn |= B(ARC_REG_LIMM); in insert_offset()
653 insn |= C(ARC_REG_LIMM); in insert_offset()
665 if ((insn & I(-1)) == I(1)) in insert_offset()
681 insn &= ~C(-1); in insert_offset()
682 insn |= C(ARC_REG_LIMM); in insert_offset()
688 insn &= ~B(-1); in insert_offset()
689 insn |= B(ARC_REG_LIMM); in insert_offset()
699 return insn; in insert_offset()
705 extract_st_syntax (arc_insn *insn, in extract_st_syntax() argument
716 if (!((ST_SYNTAX(OP_REG,OP_REG,OP_NONE) && (insn[0] & 511) == 0) in extract_st_syntax()
718 || (ST_SYNTAX(OP_SHIMM,OP_REG,OP_NONE) && (insn[0] & 511) == 0) in extract_st_syntax()
719 || (ST_SYNTAX(OP_SHIMM,OP_SHIMM,OP_NONE) && (insn[0] & 511) == 0) in extract_st_syntax()
723 || (ST_SYNTAX(OP_LIMM,OP_REG,OP_NONE) && (insn[0] & 511) == 0) in extract_st_syntax()
735 arc_limm_fixup_adjust (arc_insn insn) in arc_limm_fixup_adjust() argument
740 if ((insn & (I(-1) | C(-1) | B(-1))) == in arc_limm_fixup_adjust()
743 retval = insn & 0x1ff; in arc_limm_fixup_adjust()
753 insert_st_syntax (arc_insn insn, in insert_st_syntax() argument
768 insn = insn & ~(C(-1) | 511); in insert_st_syntax()
769 insn |= ARC_REG_LIMM << ARC_SHIFT_REGC; in insert_st_syntax()
786 insn = insn & ~(B(-1) | 511); in insert_st_syntax()
787 insn |= B(ARC_REG_LIMM); in insert_st_syntax()
793 insn = insn & ~511; in insert_st_syntax()
794 insn |= shimm; in insert_st_syntax()
799 limm += arc_limm_fixup_adjust(insn); in insert_st_syntax()
818 insn |= addrwb_p; in insert_st_syntax()
822 return insn; in insert_st_syntax()
828 insert_ld_syntax (arc_insn insn, in insert_ld_syntax() argument
840 int test = insn & I (-1); in insert_ld_syntax()
860 insn |= addrwb_p; in insert_ld_syntax()
862 return insn; in insert_ld_syntax()
868 extract_ld_syntax (arc_insn *insn, in extract_ld_syntax() argument
874 int test = insn[0] & I(-1); in extract_ld_syntax()
898 insert_shimmfinish (arc_insn insn, in insert_shimmfinish() argument
906 insn |= (shimm & ((1 << operand->bits) - 1)) << operand->shift; in insert_shimmfinish()
907 return insn; in insert_shimmfinish()
923 insert_limmfinish (arc_insn insn, in insert_limmfinish() argument
930 return insn; in insert_limmfinish()
934 insert_jumpflags (arc_insn insn, in insert_jumpflags() argument
959 return insn; in insert_jumpflags()
965 insert_unopmacro (arc_insn insn, in insert_unopmacro() argument
972 insn |= ((insn >> ARC_SHIFT_REGB) & ARC_MASK_REG) << operand->shift; in insert_unopmacro()
973 return insn; in insert_unopmacro()
979 insert_reladdr (arc_insn insn, in insert_reladdr() argument
988 insn |= ((value >> 2) & ((1 << operand->bits) - 1)) << operand->shift; in insert_reladdr()
989 return insn; in insert_reladdr()
1007 insert_absaddr (arc_insn insn, in insert_absaddr() argument
1017 if (insn & R (-1, 9, 1)) in insert_absaddr()
1020 insn |= 0x02 << 5; /* Default nullify to .jd. */ in insert_absaddr()
1026 return insn; in insert_absaddr()
1076 extract_reg (arc_insn *insn, in extract_reg() argument
1087 regno = (*insn >> operand->shift) & ((1 << operand->bits) - 1); in extract_reg()
1097 value = *insn & 511; in extract_reg()
1115 value = *insn & 511; in extract_reg()
1128 value = insn[1]; in extract_reg()
1132 if (0x07 == ((*insn & I(-1)) >> 27)) in extract_reg()
1172 if ((insn[0]& I(-1)) == I(2)) in extract_reg()
1189 extract_flag (arc_insn *insn, in extract_flag() argument
1201 f = (*insn & (1 << operand->shift)) != 0; in extract_flag()
1219 extract_cond (arc_insn *insn, in extract_cond() argument
1231 cond = (*insn >> operand->shift) & ((1 << operand->bits) - 1); in extract_cond()
1245 extract_reladdr (arc_insn *insn, in extract_reladdr() argument
1253 addr = (*insn >> operand->shift) & ((1 << operand->bits) - 1); in extract_reladdr()
1263 extract_jumpflags (arc_insn *insn, in extract_jumpflags() argument
1272 ? (insn[1] >> operand->shift) & ((1 << operand->bits) -1): 0); in extract_jumpflags()
1278 extract_st_offset (arc_insn *insn, in extract_st_offset() argument
1288 value = insn[0] & 511; in extract_st_offset()
1303 extract_ld_offset (arc_insn *insn, in extract_ld_offset() argument
1309 int test = insn[0] & I(-1); in extract_ld_offset()
1314 value = insn[0] & 511; in extract_ld_offset()
1323 return extract_reg (insn, &arc_operands[arc_operand_map['c']], in extract_ld_offset()
1332 extract_unopmacro (arc_insn *insn, in extract_unopmacro() argument
1341 if (((*insn >> ARC_SHIFT_REGB) & ARC_MASK_REG) in extract_unopmacro()
1342 != ((*insn >> ARC_SHIFT_REGC) & ARC_MASK_REG)) in extract_unopmacro()
1642 arc_opcode_lookup_asm (const char *insn) in arc_opcode_lookup_asm() argument
1644 return opcode_map[ARC_HASH_OPCODE (insn)]; in arc_opcode_lookup_asm()
1650 arc_opcode_lookup_dis (unsigned int insn) in arc_opcode_lookup_dis() argument
1652 return icode_map[ARC_HASH_ICODE (insn)]; in arc_opcode_lookup_dis()
1713 arc_insn_is_j (arc_insn insn) in arc_insn_is_j() argument
1715 return (insn & (I(-1))) == I(0x7); in arc_insn_is_j()
1719 arc_insn_not_jl (arc_insn insn) in arc_insn_not_jl() argument
1721 return ((insn & (I(-1)|A(-1)|C(-1)|R(-1,7,1)|R(-1,9,1))) in arc_insn_not_jl()