Home | History | Annotate | Download | only in config

Lines Matching full:fixp

2102 	      fixS *fixP;
2149 fixP = fix_new_exp (frag_now, f - frag_now->fr_literal + offset,
2154 fixP->fx_offset += offset;
2169 tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp)
2177 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
2180 as_bad_where (fixp->fx_file, fixp->fx_line,
2182 (int) fixp->fx_r_type);
2187 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
2191 if (fixp->fx_subsy
2192 && S_GET_SEGMENT (fixp->fx_subsy) == absolute_section)
2194 fixp->fx_offset -= S_GET_VALUE (fixp->fx_subsy);
2195 fixp->fx_subsy = NULL;
2198 if (fixp->fx_addsy && fixp->fx_subsy)
2202 asec = S_GET_SEGMENT (fixp->fx_addsy);
2203 ssec = S_GET_SEGMENT (fixp->fx_subsy);
2218 reloc2->addend = - S_GET_VALUE (fixp->fx_subsy);
2220 *reloc2->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_subsy);
2222 reloc->addend = fixp->fx_offset;
2225 reloc->addend += S_GET_VALUE (fixp->fx_addsy);
2231 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
2234 fixp->fx_pcrel = 0;
2235 fixp->fx_done = 1;
2240 char *fixpos = fixp->fx_where + fixp->fx_frag->fr_literal;
2242 reloc->addend = (S_GET_VALUE (fixp->fx_addsy)
2243 - S_GET_VALUE (fixp->fx_subsy) + fixp->fx_offset);
2245 switch (fixp->fx_r_type)
2276 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
2277 reloc->addend = fixp->fx_offset;
2319 md_pcrel_from (fixS *fixp)
2321 if (fixp->fx_addsy != (symbolS *) NULL
2322 && (!S_IS_DEFINED (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy)))
2326 return fixp->fx_frag->fr_address + fixp->fx_where;
2330 md_apply_fix (fixS * fixP, valueT * valP, segT seg)
2332 char * fixpos = fixP->fx_where + fixP->fx_frag->fr_literal;
2336 gas_assert (fixP->fx_r_type < BFD_RELOC_UNUSED);
2352 if (fixP->fx_addsy != NULL && ! fixP->fx_pcrel)
2353 value = fixP->fx_offset;
2357 if (fixP->fx_addsy != NULL
2358 && (! S_IS_DEFINED (fixP->fx_addsy)
2359 || (S_GET_SEGMENT (fixP->fx_addsy) != seg)))
2361 fixP->fx_done = 0;
2365 switch (fixP->fx_r_type)
2384 fixP->fx_done = 0;
2388 fixP->fx_done = 1;
2393 as_bad_where (fixP->fx_file, fixP->fx_line,
2394 _("Bad relocation fixup type (%d)"), fixP->fx_r_type);
2400 if (fixP->fx_addsy == NULL)
2401 fixP->fx_done = 1;
2404 /* Return zero if the fixup in fixp should be left alone and not
2408 mn10300_fix_adjustable (struct fix *fixp)
2410 if (fixp->fx_pcrel)
2412 if (TC_FORCE_RELOCATION_LOCAL (fixp))
2417 else if (TC_FORCE_RELOCATION (fixp))
2424 if (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_CODE)
2431 if (! (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_MERGE))
2434 if (strncmp (S_GET_SEGMENT (fixp->fx_addsy)->name, ".debug", 6) == 0)
2634 mn10300_force_relocation (struct fix * fixp)
2637 && (fixp->fx_pcrel
2638 || fixp->fx_r_type == BFD_RELOC_MN10300_ALIGN))
2641 return generic_force_reloc (fixp);