Lines Matching refs:insn
168 const char *insn; member
1394 nios2_insn_infoS *insn, in nios2_assemble_expression() argument
1404 gas_assert (insn != NULL); in nios2_assemble_expression()
1430 reloc->reloc_next = insn->insn_reloc; in nios2_assemble_expression()
1431 insn->insn_reloc = reloc; in nios2_assemble_expression()
1453 nios2_assemble_arg_c (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_c() argument
1456 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_c()
1464 insn->insn_code |= SET_IW_R_IMM5 (reg->index); in nios2_assemble_arg_c()
1472 nios2_assemble_arg_d (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_d() argument
1474 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_d()
1487 insn->insn_code |= SET_IW_R_C (reg->index); in nios2_assemble_arg_d()
1490 insn->insn_code |= SET_IW_CUSTOM_C (reg->index); in nios2_assemble_arg_d()
1492 insn->insn_code |= SET_IW_CUSTOM_READC (0); in nios2_assemble_arg_d()
1494 insn->insn_code |= SET_IW_CUSTOM_READC (1); in nios2_assemble_arg_d()
1502 nios2_assemble_arg_s (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_s() argument
1504 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_s()
1517 insn->insn_code |= SET_IW_R_A (reg->index); in nios2_assemble_arg_s()
1520 insn->insn_code |= SET_IW_I_A (reg->index); in nios2_assemble_arg_s()
1523 insn->insn_code |= SET_IW_CUSTOM_A (reg->index); in nios2_assemble_arg_s()
1525 insn->insn_code |= SET_IW_CUSTOM_READA (0); in nios2_assemble_arg_s()
1527 insn->insn_code |= SET_IW_CUSTOM_READA (1); in nios2_assemble_arg_s()
1535 nios2_assemble_arg_t (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_t() argument
1537 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_t()
1550 insn->insn_code |= SET_IW_R_B (reg->index); in nios2_assemble_arg_t()
1553 insn->insn_code |= SET_IW_I_B (reg->index); in nios2_assemble_arg_t()
1556 insn->insn_code |= SET_IW_CUSTOM_B (reg->index); in nios2_assemble_arg_t()
1558 insn->insn_code |= SET_IW_CUSTOM_READB (0); in nios2_assemble_arg_t()
1560 insn->insn_code |= SET_IW_CUSTOM_READB (1); in nios2_assemble_arg_t()
1568 nios2_assemble_arg_i (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_i() argument
1570 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_i()
1576 val = nios2_assemble_expression (token, insn, in nios2_assemble_arg_i()
1578 insn->constant_bits |= SET_IW_I_IMM16 (val); in nios2_assemble_arg_i()
1586 nios2_assemble_arg_u (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_u() argument
1588 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_u()
1594 val = nios2_assemble_expression (token, insn, in nios2_assemble_arg_u()
1596 insn->constant_bits |= SET_IW_I_IMM16 (val); in nios2_assemble_arg_u()
1604 nios2_assemble_arg_o (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_o() argument
1606 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_o()
1612 val = nios2_assemble_expression (token, insn, in nios2_assemble_arg_o()
1614 insn->constant_bits |= SET_IW_I_IMM16 (val); in nios2_assemble_arg_o()
1622 nios2_assemble_arg_j (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_j() argument
1624 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_j()
1630 val = nios2_assemble_expression (token, insn, in nios2_assemble_arg_j()
1632 insn->constant_bits |= SET_IW_R_IMM5 (val); in nios2_assemble_arg_j()
1640 nios2_assemble_arg_l (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_l() argument
1642 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_l()
1648 val = nios2_assemble_expression (token, insn, in nios2_assemble_arg_l()
1650 insn->constant_bits |= SET_IW_CUSTOM_N (val); in nios2_assemble_arg_l()
1658 nios2_assemble_arg_m (const char *token, nios2_insn_infoS *insn) in nios2_assemble_arg_m() argument
1660 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_arg_m()
1666 val = nios2_assemble_expression (token, insn, in nios2_assemble_arg_m()
1671 insn->constant_bits |= SET_IW_J_IMM26 (val); in nios2_assemble_arg_m()
1679 nios2_assemble_args (nios2_insn_infoS *insn) in nios2_assemble_args() argument
1681 const struct nios2_opcode *op = insn->insn_nios2_opcode; in nios2_assemble_args()
1688 if (insn->insn_tokens[tokidx] == NULL) in nios2_assemble_args()
1695 *argptr && insn->insn_tokens[tokidx]; in nios2_assemble_args()
1705 nios2_assemble_arg_c (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1709 nios2_assemble_arg_d (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1713 nios2_assemble_arg_s (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1717 nios2_assemble_arg_t (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1721 nios2_assemble_arg_i (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1725 nios2_assemble_arg_u (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1729 nios2_assemble_arg_o (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1733 nios2_assemble_arg_j (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1737 nios2_assemble_arg_l (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1741 nios2_assemble_arg_m (insn->insn_tokens[tokidx++], insn); in nios2_assemble_args()
1750 nios2_check_assembly (insn->insn_code | insn->constant_bits, in nios2_assemble_args()
1751 insn->insn_tokens[tokidx]); in nios2_assemble_args()
1841 nios2_parse_args (nios2_insn_infoS *insn, char *argstr, in nios2_parse_args() argument
1869 if (!p && !(insn->insn_nios2_opcode->pinfo & NIOS2_INSN_OPTARG)) in nios2_parse_args()
1998 nios2_translate_pseudo_insn (nios2_insn_infoS *insn) in nios2_translate_pseudo_insn() argument
2005 ps_insn = nios2_ps_lookup (insn->insn_nios2_opcode->name); in nios2_translate_pseudo_insn()
2009 insn->insn_nios2_opcode = nios2_opcode_lookup (ps_insn->insn); in nios2_translate_pseudo_insn()
2010 insn->insn_tokens[0] = insn->insn_nios2_opcode->name; in nios2_translate_pseudo_insn()
2012 ps_insn->arg_modifer_func ((char **) insn->insn_tokens, in nios2_translate_pseudo_insn()
2025 nios2_cleanup_pseudo_insn (nios2_insn_infoS *insn, in nios2_cleanup_pseudo_insn() argument
2029 (ps_insn->arg_cleanup_func) ((char **) insn->insn_tokens, in nios2_cleanup_pseudo_insn()
2066 can_evaluate_expr (nios2_insn_infoS *insn) in can_evaluate_expr() argument
2069 if (!insn->insn_reloc) in can_evaluate_expr()
2077 if (insn->insn_reloc->reloc_expression.X_op == O_constant) in can_evaluate_expr()
2084 get_expr_value (nios2_insn_infoS *insn) in get_expr_value() argument
2088 if (insn->insn_reloc->reloc_expression.X_op == O_constant) in get_expr_value()
2089 value = insn->insn_reloc->reloc_expression.X_add_number; in get_expr_value()
2095 output_insn (nios2_insn_infoS *insn) in output_insn() argument
2099 f = frag_more (insn->insn_nios2_opcode->size); in output_insn()
2102 md_number_to_chars (f, insn->insn_code, insn->insn_nios2_opcode->size); in output_insn()
2104 dwarf2_emit_insn (insn->insn_nios2_opcode->size); in output_insn()
2107 for (reloc = insn->insn_reloc; reloc != NULL; reloc = reloc->reloc_next) in output_insn()
2109 insn->insn_nios2_opcode->size, in output_insn()
2116 output_ubranch (nios2_insn_infoS *insn) in output_ubranch() argument
2118 nios2_insn_relocS *reloc = insn->insn_reloc; in output_ubranch()
2135 UBRANCH_MAX_SIZE, insn->insn_nios2_opcode->size, in output_ubranch()
2138 md_number_to_chars (f, insn->insn_code, insn->insn_nios2_opcode->size); in output_ubranch()
2146 output_cbranch (nios2_insn_infoS *insn) in output_cbranch() argument
2148 nios2_insn_relocS *reloc = insn->insn_reloc; in output_cbranch()
2165 CBRANCH_MAX_SIZE, insn->insn_nios2_opcode->size, in output_cbranch()
2168 md_number_to_chars (f, insn->insn_code, insn->insn_nios2_opcode->size); in output_cbranch()
2181 output_call (nios2_insn_infoS *insn) in output_call() argument
2186 nios2_insn_relocS *reloc = insn->insn_reloc; in output_call()
2209 output_addi (nios2_insn_infoS *insn) in output_addi() argument
2211 if (can_evaluate_expr (insn)) in output_addi()
2213 int expr_val = get_expr_value (insn); in output_addi()
2214 unsigned int rega = GET_IW_I_A (insn->insn_code); in output_addi()
2215 unsigned int regb = GET_IW_I_B (insn->insn_code); in output_addi()
2222 insn->insn_code in output_addi()
2224 insn->insn_reloc->reloc_expression.X_add_number in output_addi()
2226 insn->insn_reloc->reloc_type = BFD_RELOC_NIOS2_U16; in output_addi()
2231 output_insn (insn); in output_addi()
2235 output_andi (nios2_insn_infoS *insn) in output_andi() argument
2237 if (can_evaluate_expr (insn)) in output_andi()
2239 int expr_val = get_expr_value (insn); in output_andi()
2242 unsigned int rega = GET_IW_I_A (insn->insn_code); in output_andi()
2243 unsigned int regb = GET_IW_I_B (insn->insn_code); in output_andi()
2246 insn->insn_code in output_andi()
2248 insn->insn_reloc->reloc_expression.X_add_number in output_andi()
2250 insn->insn_reloc->reloc_type = BFD_RELOC_NIOS2_U16; in output_andi()
2255 output_insn (insn); in output_andi()
2259 output_ori (nios2_insn_infoS *insn) in output_ori() argument
2261 if (can_evaluate_expr (insn)) in output_ori()
2263 int expr_val = get_expr_value (insn); in output_ori()
2266 unsigned int rega = GET_IW_I_A (insn->insn_code); in output_ori()
2267 unsigned int regb = GET_IW_I_B (insn->insn_code); in output_ori()
2270 insn->insn_code in output_ori()
2272 insn->insn_reloc->reloc_expression.X_add_number in output_ori()
2274 insn->insn_reloc->reloc_type = BFD_RELOC_NIOS2_U16; in output_ori()
2279 output_insn (insn); in output_ori()
2283 output_xori (nios2_insn_infoS *insn) in output_xori() argument
2285 if (can_evaluate_expr (insn)) in output_xori()
2287 int expr_val = get_expr_value (insn); in output_xori()
2290 unsigned int rega = GET_IW_I_A (insn->insn_code); in output_xori()
2291 unsigned int regb = GET_IW_I_B (insn->insn_code); in output_xori()
2294 insn->insn_code in output_xori()
2296 insn->insn_reloc->reloc_expression.X_add_number in output_xori()
2298 insn->insn_reloc->reloc_type = BFD_RELOC_NIOS2_U16; in output_xori()
2303 output_insn (insn); in output_xori()
2309 output_movia (nios2_insn_infoS *insn) in output_movia() argument
2314 nios2_insn_relocS *reloc = insn->insn_reloc; in output_movia()
2315 unsigned long reg_index = GET_IW_I_B (insn->insn_code); in output_movia()
2320 md_number_to_chars (f, insn->insn_code, 4); in output_movia()
2478 nios2_insn_infoS *insn = &thisinsn; in md_assemble() local
2490 insn->insn_tokens[0] = strtok (op_strdup, " "); in md_assemble()
2494 insn->insn_nios2_opcode = nios2_opcode_lookup (insn->insn_tokens[0]); in md_assemble()
2495 insn->insn_reloc = NULL; in md_assemble()
2497 if (insn->insn_nios2_opcode != NULL) in md_assemble()
2501 insn->insn_code = insn->insn_nios2_opcode->match; in md_assemble()
2502 insn->constant_bits = 0; in md_assemble()
2506 nios2_parse_args (insn, argstr, insn->insn_nios2_opcode->args, in md_assemble()
2507 (char **) &insn->insn_tokens[1]); in md_assemble()
2509 nios2_parse_args (insn, argstr, insn->insn_nios2_opcode->args_test, in md_assemble()
2510 (char **) &insn->insn_tokens[1]); in md_assemble()
2514 if (insn->insn_nios2_opcode->pinfo == NIOS2_INSN_MACRO_MOVIA) in md_assemble()
2518 if ((insn->insn_nios2_opcode->pinfo & NIOS2_INSN_MACRO) in md_assemble()
2520 ps_insn = nios2_translate_pseudo_insn (insn); in md_assemble()
2523 nios2_assemble_args (insn); in md_assemble()
2528 && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_UBRANCH) in md_assemble()
2529 output_ubranch (insn); in md_assemble()
2532 && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_CBRANCH) in md_assemble()
2533 output_cbranch (insn); in md_assemble()
2536 && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_CALL in md_assemble()
2537 && insn->insn_reloc in md_assemble()
2538 && ((insn->insn_reloc->reloc_type in md_assemble()
2540 || (insn->insn_reloc->reloc_type in md_assemble()
2542 output_call (insn); in md_assemble()
2543 else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ANDI) in md_assemble()
2544 output_andi (insn); in md_assemble()
2545 else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ORI) in md_assemble()
2546 output_ori (insn); in md_assemble()
2547 else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_XORI) in md_assemble()
2548 output_xori (insn); in md_assemble()
2549 else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ADDI) in md_assemble()
2550 output_addi (insn); in md_assemble()
2552 output_movia (insn); in md_assemble()
2554 output_insn (insn); in md_assemble()
2556 nios2_cleanup_pseudo_insn (insn, ps_insn); in md_assemble()
2560 as_bad (_("unrecognised instruction %s"), insn->insn_tokens[0]); in md_assemble()