Home | History | Annotate | Download | only in config

Lines Matching full:fixp

307 tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS * fixP)
313 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy);
314 reloc->address = fixP->fx_frag->fr_address + fixP->fx_where;
315 reloc->addend = fixP->fx_offset;
317 if (fixP->fx_subsy != NULL)
319 if (SWITCH_TABLE (fixP))
322 reloc->addend = (S_GET_VALUE (fixP->fx_addsy)
323 - S_GET_VALUE (fixP->fx_subsy) + fixP->fx_offset);
325 switch (fixP->fx_r_type)
328 fixP->fx_r_type = BFD_RELOC_CRX_SWITCH8;
331 fixP->fx_r_type = BFD_RELOC_CRX_SWITCH16;
334 fixP->fx_r_type = BFD_RELOC_CRX_SWITCH32;
344 as_bad_where (fixP->fx_file, fixP->fx_line,
346 fixP->fx_addsy ? S_GET_NAME (fixP->fx_addsy) : "0",
347 segment_name (fixP->fx_addsy
348 ? S_GET_SEGMENT (fixP->fx_addsy)
350 S_GET_NAME (fixP->fx_subsy),
351 segment_name (S_GET_SEGMENT (fixP->fx_addsy)));
355 gas_assert ((int) fixP->fx_r_type > 0);
356 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type);
360 as_bad_where (fixP->fx_file, fixP->fx_line,
362 fixP->fx_r_type,
363 bfd_get_reloc_code_name (fixP->fx_r_type));
366 gas_assert (!fixP->fx_pcrel == !reloc->howto->pc_relative);
480 md_apply_fix (fixS *fixP, valueT *valP, segT seg)
483 char *buf = fixP->fx_frag->fr_literal + fixP->fx_where;
484 fixP->fx_offset = 0;
486 switch (fixP->fx_r_type)
503 fixP->fx_done = 0;
505 if (fixP->fx_addsy == NULL
506 && fixP->fx_pcrel == 0)
507 fixP->fx_done = 1;
509 if (fixP->fx_pcrel == 1
510 && fixP->fx_addsy != NULL
511 && S_GET_SEGMENT (fixP->fx_addsy) == seg)
512 fixP->fx_done = 1;
519 md_pcrel_from (fixS *fixp)
521 return fixp->fx_frag->fr_address + fixp->fx_where;