Lines Matching full:fixp
151 fixS *fixp[3];
855 fixS *fixp;
2162 for (i = 0; i < ARRAY_SIZE (insn->fixp); i++)
2163 insn->fixp[i] = NULL;
2315 for (i = 0; i < ARRAY_SIZE (insn->fixp); i++)
2316 if (insn->fixp[i] != NULL)
2318 insn->fixp[i]->fx_frag = frag;
2319 insn->fixp[i]->fx_where = where;
4233 fixup_has_matching_lo_p (fixS *fixp)
4235 return (fixp->fx_next != NULL
4236 && fixp->fx_next->fx_r_type == matching_lo_reloc (fixp->fx_r_type)
4237 && fixp->fx_addsy == fixp->fx_next->fx_addsy
4238 && fixp->fx_offset == fixp->fx_next->fx_offset);
6776 if (mips_opts.mips16 && history[0].fixp[0])
7507 ip->fixp[0] = fix_new_exp (ip->frag, ip->where,
7514 if (final_type[0] == BFD_RELOC_MIPS16_JMP && ip->fixp[0]->fx_addsy)
7515 *symbol_get_tc (ip->fixp[0]->fx_addsy) = 1;
7538 ip->fixp[0]->fx_no_overflow = 1;
7543 ip->fixp[0]->fx_no_overflow = 1;
7548 mips_relax.first_fixup = ip->fixp[0];
7557 || !fixup_has_matching_lo_p (hi_fixup->fixp))
7564 hi_fixup->fixp = ip->fixp[0];
7576 ip->fixp[i] = fix_new (ip->frag, ip->where,
7577 ip->fixp[0]->fx_size, NULL, 0,
7581 ip->fixp[0]->fx_tcbit = 1;
7582 ip->fixp[i]->fx_tcbit = 1;
14734 md_pcrel_from (fixS *fixP)
14736 valueT addr = fixP->fx_where + fixP->fx_frag->fr_address;
14737 switch (fixP->fx_r_type)
14836 gas_assert (reloc_needs_lo_p (l->fixp->fx_r_type));
14841 if (got16_reloc_p (l->fixp->fx_r_type)
14842 && !(l->fixp->fx_addsy
14843 && pic_need_relax (l->fixp->fx_addsy, l->seg)))
14847 if (fixup_has_matching_lo_p (l->fixp))
14860 looking_for_rtype = matching_lo_reloc (l->fixp->fx_r_type);
14864 if (*pos == l->fixp)
14868 && symbol_same_p ((*pos)->fx_addsy, l->fixp->fx_addsy)
14869 && (*pos)->fx_offset >= l->fixp->fx_offset
14890 l->fixp->fx_offset = (*lo_pos)->fx_offset;
14891 if (l->fixp->fx_next != *lo_pos)
14893 *hi_pos = l->fixp->fx_next;
14894 l->fixp->fx_next = *lo_pos;
14895 *lo_pos = l->fixp;
14902 mips_force_relocation (fixS *fixp)
14904 if (generic_force_reloc (fixp))
14909 if (fixp->fx_r_type == BFD_RELOC_MICROMIPS_7_PCREL_S1
14910 || fixp->fx_r_type == BFD_RELOC_MICROMIPS_10_PCREL_S1
14911 || fixp->fx_r_type == BFD_RELOC_MICROMIPS_16_PCREL_S1)
14916 && (fixp->fx_r_type == BFD_RELOC_16_PCREL_S2
14917 || fixp->fx_r_type == BFD_RELOC_MIPS_21_PCREL_S2
14918 || fixp->fx_r_type == BFD_RELOC_MIPS_26_PCREL_S2
14919 || fixp->fx_r_type == BFD_RELOC_MIPS_18_PCREL_S3
14920 || fixp->fx_r_type == BFD_RELOC_MIPS_19_PCREL_S2
14921 || fixp->fx_r_type == BFD_RELOC_HI16_S_PCREL
14922 || fixp->fx_r_type == BFD_RELOC_LO16_PCREL))
14955 md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
14961 if (fixP->fx_pcrel)
14962 switch (fixP->fx_r_type)
14978 fixP->fx_r_type = BFD_RELOC_32_PCREL;
14982 as_bad_where (fixP->fx_file, fixP->fx_line,
14989 if (fixP->fx_r_type != BFD_RELOC_8)
14991 howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type);
14996 gas_assert (fixP->fx_size == 2
14997 || fixP->fx_size == 4
14998 || fixP->fx_r_type == BFD_RELOC_8
14999 || fixP->fx_r_type == BFD_RELOC_16
15000 || fixP->fx_r_type == BFD_RELOC_64
15001 || fixP->fx_r_type == BFD_RELOC_CTOR
15002 || fixP->fx_r_type == BFD_RELOC_MIPS_SUB
15003 || fixP->fx_r_type == BFD_RELOC_MICROMIPS_SUB
15004 || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
15005 || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY
15006 || fixP->fx_r_type == BFD_RELOC_MIPS_TLS_DTPREL64);
15008 buf = fixP->fx_frag->fr_literal + fixP->fx_where;
15020 if (fixP->fx_addsy == NULL && !fixP->fx_pcrel && fixP->fx_tcbit == 0)
15021 fixP->fx_done = 1;
15023 switch (fixP->fx_r_type)
15050 if (!fixP->fx_addsy)
15052 as_bad_where (fixP->fx_file, fixP->fx_line,
15056 S_SET_THREAD_LOCAL (fixP->fx_addsy);
15115 if (fixP->fx_done)
15119 if (calculate_reloc (fixP->fx_r_type, *valP, &value))
15121 insn = read_reloc_insn (buf, fixP->fx_r_type);
15122 if (mips16_reloc_p (fixP->fx_r_type))
15126 write_reloc_insn (buf, fixP->fx_r_type, insn);
15129 as_bad_where (fixP->fx_file, fixP->fx_line,
15137 if (fixP->fx_done)
15163 if (fixP->fx_done)
15164 md_number_to_chars (buf, *valP, fixP->fx_size);
15170 as_bad_where (fixP->fx_file, fixP->fx_line,
15173 gas_assert (!fixP->fx_done);
15178 as_bad_where (fixP->fx_file, fixP->fx_line,
15182 gas_assert (!fixP->fx_done);
15187 as_bad_where (fixP->fx_file, fixP->fx_line,
15191 gas_assert (!fixP->fx_done);
15196 gas_assert (!fixP->fx_done);
15201 as_bad_where (fixP->fx_file, fixP->fx_line,
15207 if (! fixP->fx_done)
15219 && fixP->fx_done
15220 && fixP->fx_frag->fr_address >= text_section->vma
15221 && (fixP->fx_frag->fr_address
15234 fixP->fx_r_type = BFD_RELOC_MIPS_JMP;
15235 fixP->fx_done = 0;
15236 fixP->fx_addsy = section_symbol (text_section);
15237 *valP += md_pcrel_from (fixP);
15245 as_bad_where (fixP->fx_file, fixP->fx_line,
15257 if (! fixP->fx_done)
15265 fixP->fx_done = 0;
15266 if (fixP->fx_addsy
15267 && !S_IS_DEFINED (fixP->fx_addsy)
15268 && !S_IS_WEAK (fixP->fx_addsy))
15269 S_SET_WEAK (fixP->fx_addsy);
15273 fixP->fx_done = 0;
15281 fixP->fx_addnumber = *valP;
17209 mips_fix_adjustable (fixS *fixp)
17211 if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT
17212 || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
17215 if (fixp->fx_addsy == NULL)
17232 if ((lo16_reloc_p (fixp->fx_r_type)
17233 || reloc_needs_lo_p (fixp->fx_r_type))
17235 && (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_MERGE) != 0)
17246 && (limited_pcrel_reloc_p (fixp->fx_r_type)
17247 || jalr_reloc_p (fixp->fx_r_type)))
17292 if (fixp->fx_subsy == NULL
17293 && (ELF_ST_IS_MIPS16 (S_GET_OTHER (fixp->fx_addsy))
17294 || *symbol_get_tc (fixp->fx_addsy)
17296 && ELF_ST_IS_MICROMIPS (S_GET_OTHER (fixp->fx_addsy))
17297 && jmp_reloc_p (fixp->fx_r_type))))
17307 tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
17316 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
17317 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
17319 if (fixp->fx_pcrel)
17321 gas_assert (fixp->fx_r_type == BFD_RELOC_16_PCREL_S2
17322 || fixp->fx_r_type == BFD_RELOC_MICROMIPS_7_PCREL_S1
17323 || fixp->fx_r_type == BFD_RELOC_MICROMIPS_10_PCREL_S1
17324 || fixp->fx_r_type == BFD_RELOC_MICROMIPS_16_PCREL_S1
17325 || fixp->fx_r_type == BFD_RELOC_32_PCREL
17326 || fixp->fx_r_type == BFD_RELOC_MIPS_21_PCREL_S2
17327 || fixp->fx_r_type == BFD_RELOC_MIPS_26_PCREL_S2
17328 || fixp->fx_r_type == BFD_RELOC_MIPS_18_PCREL_S3
17329 || fixp->fx_r_type == BFD_RELOC_MIPS_19_PCREL_S2
17330 || fixp->fx_r_type == BFD_RELOC_HI16_S_PCREL
17331 || fixp->fx_r_type == BFD_RELOC_LO16_PCREL);
17335 reloc->addend = fixp->fx_addnumber + reloc->address;
17338 reloc->addend = fixp->fx_addnumber;
17342 if (! HAVE_NEWABI && fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
17348 code = fixp->fx_r_type;
17353 as_bad_where (fixp->fx_file, fixp->fx_line,
17423 fixS *fixp;
17437 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp, TRUE,
17439 fixp->fx_file = fragp->fr_file;
17440 fixp->fx_line = fragp->fr_line;
17558 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp,
17560 fixp->fx_file = fragp->fr_file;
17561 fixp->fx_line = fragp->fr_line;
17582 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp,
17584 fixp->fx_file = fragp->fr_file;
17585 fixp->fx_line = fragp->fr_line;
17597 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp,
17599 fixp->fx_file = fragp->fr_file;
17600 fixp->fx_line = fragp->fr_line;
17630 fixS *fixp;
17645 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 2, &exp, TRUE,
17648 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 2, &exp, TRUE,
17653 fixp->fx_file = fragp->fr_file;
17654 fixp->fx_line = fragp->fr_line;
17658 fixp->fx_no_overflow = 1;
17670 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp, TRUE,
17672 fixp->fx_file = fragp->fr_file;
17673 fixp->fx_line = fragp->fr_line;
17765 fixp = fix_new (fragp, buf - fragp->fr_literal, 4, l, 0, TRUE,
17767 fixp->fx_file = fragp->fr_file;
17768 fixp->fx_line = fragp->fr_line;
17784 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp, FALSE,
17786 fixp->fx_file = fragp->fr_file;
17787 fixp->fx_line = fragp->fr_line;
17810 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp, FALSE,
17812 fixp->fx_file = fragp->fr_file;
17813 fixp->fx_line = fragp->fr_line;
17821 fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp, FALSE,
17823 fixp->fx_file = fragp->fr_file;
17824 fixp->fx_line = fragp->fr_line;
17920 fixS *fixp;
17924 fixp = (fixS *) fragp->fr_opcode;
17960 while (fixp
17961 && fixp->fx_frag == fragp
17962 && fixp->fx_where < fragp->fr_fix - second)
17965 fixp->fx_done = 1;
17966 fixp = fixp->fx_next;
17972 while (fixp && fixp->fx_frag == fragp)
17975 fixp->fx_where -= first;
17977 fixp->fx_done = 1;
17978 fixp = fixp->fx_next;