Home | History | Annotate | Download | only in config

Lines Matching refs:fixp

2101 	      fixS *fixP;
2148 fixP = fix_new_exp (frag_now, f - frag_now->fr_literal + offset,
2153 fixP->fx_offset += offset;
2168 tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp)
2176 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
2179 as_bad_where (fixp->fx_file, fixp->fx_line,
2181 (int) fixp->fx_r_type);
2186 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
2190 if (fixp->fx_subsy
2191 && S_GET_SEGMENT (fixp->fx_subsy) == absolute_section)
2193 fixp->fx_offset -= S_GET_VALUE (fixp->fx_subsy);
2194 fixp->fx_subsy = NULL;
2197 if (fixp->fx_addsy && fixp->fx_subsy)
2201 asec = S_GET_SEGMENT (fixp->fx_addsy);
2202 ssec = S_GET_SEGMENT (fixp->fx_subsy);
2217 reloc2->addend = - S_GET_VALUE (fixp->fx_subsy);
2219 *reloc2->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_subsy);
2221 reloc->addend = fixp->fx_offset;
2224 reloc->addend += S_GET_VALUE (fixp->fx_addsy);
2230 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
2233 fixp->fx_pcrel = 0;
2234 fixp->fx_done = 1;
2239 char *fixpos = fixp->fx_where + fixp->fx_frag->fr_literal;
2241 reloc->addend = (S_GET_VALUE (fixp->fx_addsy)
2242 - S_GET_VALUE (fixp->fx_subsy) + fixp->fx_offset);
2244 switch (fixp->fx_r_type)
2275 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
2276 reloc->addend = fixp->fx_offset;
2318 md_pcrel_from (fixS *fixp)
2320 if (fixp->fx_addsy != (symbolS *) NULL
2321 && (!S_IS_DEFINED (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy)))
2325 return fixp->fx_frag->fr_address + fixp->fx_where;
2329 md_apply_fix (fixS * fixP, valueT * valP, segT seg)
2331 char * fixpos = fixP->fx_where + fixP->fx_frag->fr_literal;
2335 gas_assert (fixP->fx_r_type < BFD_RELOC_UNUSED);
2351 if (fixP->fx_addsy != NULL && ! fixP->fx_pcrel)
2352 value = fixP->fx_offset;
2356 if (fixP->fx_addsy != NULL
2357 && (! S_IS_DEFINED (fixP->fx_addsy)
2358 || (S_GET_SEGMENT (fixP->fx_addsy) != seg)))
2360 fixP->fx_done = 0;
2364 switch (fixP->fx_r_type)
2383 fixP->fx_done = 0;
2387 fixP->fx_done = 1;
2392 as_bad_where (fixP->fx_file, fixP->fx_line,
2393 _("Bad relocation fixup type (%d)"), fixP->fx_r_type);
2399 if (fixP->fx_addsy == NULL)
2400 fixP->fx_done = 1;
2403 /* Return zero if the fixup in fixp should be left alone and not
2407 mn10300_fix_adjustable (struct fix *fixp)
2409 if (fixp->fx_pcrel)
2411 if (TC_FORCE_RELOCATION_LOCAL (fixp))
2416 else if (TC_FORCE_RELOCATION (fixp))
2423 if (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_CODE)
2430 if (! (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_MERGE))
2433 if (strncmp (S_GET_SEGMENT (fixp->fx_addsy)->name, ".debug", 6) == 0)
2633 mn10300_force_relocation (struct fix * fixp)
2636 && (fixp->fx_pcrel
2637 || fixp->fx_r_type == BFD_RELOC_MN10300_ALIGN))
2640 return generic_force_reloc (fixp);