Lines Matching full:istack
29 #include "xtensa-istack.h"
536 /* TInsn and IStack functions. */
545 static int get_num_stack_text_bytes (IStack *);
546 static int get_num_stack_literal_bytes (IStack *);
3611 xg_build_to_stack (IStack *istack, TInsn *insn, BuildInstr *bi)
3615 TInsn *next_insn = istack_push_space (istack);
3627 xg_expand_to_stack (IStack *istack, TInsn *insn, int lateral_steps)
3629 int stack_size = istack->ninsn;
3648 if (!xg_build_to_stack (istack, insn, rule->to_instr))
3652 for (i = stack_size; i < istack->ninsn; i++)
3654 TInsn *tinsn = &istack->insn[i];
3660 istack->ninsn = stack_size;
3704 xg_assembly_relax (IStack *istack,
3721 int istack_size = istack->ninsn;
3726 istack_push (istack, insn);
3740 istack_push (istack, &single_target);
3755 istack_push (istack, ¤t_insn);
3760 if (xg_expand_to_stack (istack, ¤t_insn, lateral_steps))
3766 istack->ninsn = istack_size;
3770 istack_push (istack, insn);
4016 xg_expand_assembly_insn (IStack *istack, TInsn *orig_insn)
4089 xg_assembly_relax (istack, orig_insn, 0, 0, 0, 0, 0);
4091 istack_push (istack, orig_insn);
6319 IStack slotstack;
6930 IStack istack; /* put instructions into here */
6934 istack_init (&istack);
6950 xg_assembly_relax (&istack, orig_insn, now_seg, frag_now, 0, 1, 0);
6952 if (xg_expand_assembly_insn (&istack, orig_insn))
6955 for (i = 0; i < istack.ninsn; i++)
6957 TInsn *insn = &istack.insn[i];
10111 IStack istack;
10151 istack_init (&istack);
10152 num_steps = xg_assembly_relax (&istack, &tinsn, segP, fragP, frag_offset,
10159 num_literal_bytes = get_num_stack_literal_bytes (&istack);
10162 num_text_bytes = get_num_stack_text_bytes (&istack);
10167 while (istack.insn[first].opcode == XTENSA_UNDEFINED)
10171 if (opcode_fits_format_slot (istack.insn[first].opcode, fmt, slot))
10172 num_text_bytes -= xg_get_single_size (istack.insn[first].opcode);
10179 istack_init (&istack);
10180 num_steps = xg_assembly_relax (&istack, &tinsn, segP, fragP,
10188 num_literal_bytes = get_num_stack_literal_bytes (&istack);
10192 num_text_bytes = get_num_stack_text_bytes (&istack) + old_size;
10230 if (negatable_branch && istack.ninsn > 1)
10234 istack.ninsn > 2 &&
10235 istack.insn[istack.ninsn - 1].insn_type == ITYPE_LABEL &&
10236 istack.insn[istack.ninsn - 2].insn_type == ITYPE_INSN &&
10237 istack.insn[istack.ninsn - 2].opcode == xtensa_j_opcode)
10239 TInsn *jinsn = &istack.insn[istack.ninsn - 2];
10253 expressionS *exp = &istack.insn[istack.ninsn - 2].tok[0];
10571 IStack istack;
10585 istack_init (&istack);
10586 xg_assembly_relax (&istack, &orig_tinsn,
10595 for (i = 0; i < istack.ninsn; i++)
10597 TInsn *tinsn = &istack.insn[i];
10655 for (i = 0; i < istack.ninsn; i++)
10657 TInsn *tinsn = &istack.insn[i];
12343 /* Instruction Stack Functions (from "xtensa-istack.h"). */
12346 istack_init (IStack *stack)
12353 istack_empty (IStack *stack)
12360 istack_full (IStack *stack)
12366 /* Return a pointer to the top IStack entry.
12370 istack_top (IStack *stack)
12378 /* Add a new TInsn to an IStack.
12382 istack_push (IStack *stack, TInsn *insn)
12391 /* Clear space for the next TInsn on the IStack and return a pointer
12395 istack_push_space (IStack *stack)
12411 istack_pop (IStack *stack)
12780 get_num_stack_text_bytes (IStack *istack)
12785 for (i = 0; i < istack->ninsn; i++)
12787 TInsn *tinsn = &istack->insn[i];
12796 get_num_stack_literal_bytes (IStack *istack)
12801 for (i = 0; i < istack->ninsn; i++)
12803 TInsn *tinsn = &istack->insn[i];