Lines Matching defs:fragp
5221 s7_judge_size_before_relax (fragS * fragp, asection *sec)
5226 change = s7_nopic_need_relax (fragp->fr_symbol, 0);
5228 change = s7_pic_need_relax (fragp->fr_symbol, sec);
5234 if (fragp->fr_opcode == NULL)
5236 fragp->fr_fix = s7_RELAX_NEW (fragp->fr_subtype);
5237 fragp->fr_opcode = fragp->fr_literal + s7_RELAX_RELOC1 (fragp->fr_subtype);
5238 return s7_RELAX_NEW (fragp->fr_subtype) - s7_RELAX_OLD (fragp->fr_subtype);
5246 s7_b32_relax_to_b16 (fragS * fragp)
5250 int frag_addr = fragp->fr_address + fragp->insn_addr;
5259 I don't know how to get the fragp's section ,
5263 relaxable_p = s7_RELAX_OPT (fragp->fr_subtype);
5265 s = fragp->fr_symbol;
5275 value = s7_md_chars_to_number (fragp->fr_literal, s7_INSN_SIZE);
5295 fragp->fr_opcode = NULL;
5296 fragp->fr_subtype = s7_RELAX_OPT_CLEAR (fragp->fr_subtype);
5653 char *fragp;
5710 fragp = frag_more (7 * 4);
5711 s7_number_to_chars (fragp, (valueT) s7_cur_proc_ptr->reg_mask, 4);
5712 s7_number_to_chars (fragp + 4, (valueT) s7_cur_proc_ptr->reg_offset, 4);
5713 s7_number_to_chars (fragp + 8, (valueT) s7_cur_proc_ptr->fpreg_mask, 4);
5714 s7_number_to_chars (fragp + 12, (valueT) s7_cur_proc_ptr->leaf, 4);
5715 s7_number_to_chars (fragp + 16, (valueT) s7_cur_proc_ptr->frame_offset, 4);
5716 s7_number_to_chars (fragp + 20, (valueT) s7_cur_proc_ptr->frame_reg, 4);
5717 s7_number_to_chars (fragp + 24, (valueT) s7_cur_proc_ptr->pc_reg, 4);
6284 s7_frag_check (fragS * fragp ATTRIBUTE_UNUSED)
6286 know (fragp->insn_addr <= s7_RELAX_PAD_BYTE);
6364 s7_estimate_size_before_relax (fragS * fragp, asection * sec)
6366 if ((s7_RELAX_TYPE (fragp->fr_subtype) == Insn_GP)
6367 || (s7_RELAX_TYPE (fragp->fr_subtype) == Insn_PIC))
6368 return s7_judge_size_before_relax (fragp, sec);
6375 fragS * fragp,
6386 if ((fragp->fr_address) % 2 != 0)
6388 if ((fragp->fr_address + fragp->insn_addr) % 2 != 0)
6390 fragp->insn_addr = 1;
6395 word_align_p = ((fragp->fr_address + fragp->insn_addr) % 4 == 0) ? TRUE : FALSE;
6398 if (fragp->fr_opcode)
6399 insn_size = s7_RELAX_NEW (fragp->fr_subtype);
6401 insn_size = s7_RELAX_OLD (fragp->fr_subtype);
6405 if ((s7_RELAX_TYPE (fragp->fr_subtype) == Insn_GP)
6406 || (s7_RELAX_TYPE (fragp->fr_subtype) == Insn_PIC))
6410 if (fragp->insn_addr < 2)
6412 fragp->insn_addr += 2;
6417 fragp->insn_addr -= 2;
6422 if (fragp->fr_opcode)
6423 fragp->fr_fix = s7_RELAX_NEW (fragp->fr_subtype) + fragp->insn_addr;
6425 fragp->fr_fix = s7_RELAX_OLD (fragp->fr_subtype) + fragp->insn_addr;
6429 if (s7_RELAX_TYPE (fragp->fr_subtype) == PC_DISP19div2)
6430 s7_b32_relax_to_b16 (fragp);
6432 relaxable_p = s7_RELAX_OPT (fragp->fr_subtype);
6433 next_fragp = fragp->fr_next;
6495 fragp->insn_addr += 2;
6511 /* Here, try best to do relax regardless fragp->fr_next->fr_type. */
6524 fragp->insn_addr += 2;
6535 /* fragp->fr_opcode indicates whether this frag should be relaxed. */
6538 if (fragp->fr_opcode)
6540 fragp->fr_opcode = NULL;
6542 fragp->fr_fix = s7_RELAX_OLD (fragp->fr_subtype);
6543 fragp->fr_fix += fragp->insn_addr;
6547 fragp->fr_opcode = fragp->fr_literal + s7_RELAX_RELOC1 (fragp->fr_subtype);
6549 fragp->fr_fix = s7_RELAX_NEW (fragp->fr_subtype);
6550 fragp->fr_fix += fragp->insn_addr;
6555 if (fragp->fr_opcode)
6558 fragp->fr_fix = s7_RELAX_NEW (fragp->fr_subtype);
6559 fragp->fr_fix += fragp->insn_addr;
6564 fragp->fr_fix = s7_RELAX_OLD (fragp->fr_subtype);
6565 fragp->fr_fix += fragp->insn_addr;
6576 fragS * fragp)
6583 r_old = s7_RELAX_OLD (fragp->fr_subtype);
6584 r_new = s7_RELAX_NEW (fragp->fr_subtype);
6586 /* fragp->fr_opcode indicates whether this frag should be relaxed. */
6587 if (fragp->fr_opcode == NULL)
6589 memcpy (backup, fragp->fr_literal, r_old);
6590 fragp->fr_fix = r_old;
6594 memcpy (backup, fragp->fr_literal + r_old, r_new);
6595 fragp->fr_fix = r_new;
6598 fixp = fragp->tc_frag_data.fixp;
6599 while (fixp && fixp->fx_frag == fragp && fixp->fx_where < r_old)
6601 if (fragp->fr_opcode)
6605 while (fixp && fixp->fx_frag == fragp)
6607 if (fragp->fr_opcode)
6608 fixp->fx_where -= r_old + fragp->insn_addr;
6614 if (fragp->insn_addr)
6616 s7_number_to_chars (fragp->fr_literal, 0x0, fragp->insn_addr);
6618 memcpy (fragp->fr_literal + fragp->insn_addr, backup, fragp->fr_fix);
6619 fragp->fr_fix += fragp->insn_addr;