Lines Matching full:fixp
1226 md_pcrel_from (fixS *fixP)
1229 return fixP->fx_frag->fr_address + fixP->fx_where + fixP->fx_size;
1241 md_apply_fix (fixS *fixP, valueT * valP, segT seg)
1245 if (fixP->fx_addsy == (symbolS *) NULL)
1246 fixP->fx_done = 1;
1248 else if (fixP->fx_pcrel)
1251 if (S_GET_SEGMENT (fixP->fx_addsy) != seg)
1252 value += md_pcrel_from (fixP);
1256 if (fixP->fx_subsy != NULL)
1257 as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex"));
1259 if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED)
1266 opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED;
1272 where = fixP->fx_frag->fr_literal + fixP->fx_where;
1278 fixP->fx_file, fixP->fx_line);
1284 if (fixP->fx_done)
1299 fixP->fx_r_type = BFD_RELOC_ARC_B22_PCREL;
1306 fixP->fx_r_type = BFD_RELOC_ARC_B26;
1313 fixP->fx_r_type = BFD_RELOC_32;
1317 as_bad_where (fixP->fx_file, fixP->fx_line,
1319 fixP->fx_done = 1;
1325 switch (fixP->fx_r_type)
1328 md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
1332 md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
1336 md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
1340 /* If !fixP->fx_done then `value' is an implicit addend.
1345 md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
1359 fixS *fixP)
1366 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy);
1367 reloc->address = fixP->fx_frag->fr_address + fixP->fx_where;
1368 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type);
1371 as_bad_where (fixP->fx_file, fixP->fx_line,
1373 fixP->fx_r_type,
1374 bfd_get_reloc_code_name (fixP->fx_r_type));
1378 gas_assert (!fixP->fx_pcrel == !reloc->howto->pc_relative);
1383 reloc->addend = (fixP->fx_pcrel ? -4 : 0);