Lines Matching full:fixp
1229 md_pcrel_from_section (fixS *fixp, segT sec)
1231 if (fixp->fx_addsy != (symbolS *) NULL
1232 && (!S_IS_DEFINED (fixp->fx_addsy)
1233 || (S_GET_SEGMENT (fixp->fx_addsy) != sec)))
1236 return fixp->fx_frag->fr_address + fixp->fx_where;
1290 md_apply_fix (fixS *fixP, valueT * valP, segT seg)
1296 if (fixP->fx_addsy == (symbolS *) NULL)
1297 fixP->fx_done = 1;
1299 else if (fixP->fx_pcrel)
1301 segT s = S_GET_SEGMENT (fixP->fx_addsy);
1305 value += S_GET_VALUE (fixP->fx_addsy);
1306 fixP->fx_done = 1;
1309 else if (linkrelax && fixP->fx_subsy)
1315 expression. fixP->fx_addsy holds the section start symbol,
1316 fixP->fx_offset holds sym2's offset, and fixP->fx_subsy
1321 switch (fixP->fx_r_type)
1324 fixP->fx_r_type = BFD_RELOC_AVR_DIFF8;
1327 fixP->fx_r_type = BFD_RELOC_AVR_DIFF16;
1330 fixP->fx_r_type = BFD_RELOC_AVR_DIFF32;
1333 as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex"));
1337 value = S_GET_VALUE (fixP->fx_addsy) +
1338 fixP->fx_offset - S_GET_VALUE (fixP->fx_subsy);
1340 fixP->fx_subsy = NULL;
1343 if (fixP->fx_subsy != (symbolS *) NULL)
1344 as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex"));
1348 and the sym offset (part of fixP) are needed at link relax time. */
1349 where = (unsigned char *) fixP->fx_frag->fr_literal + fixP->fx_where;
1350 switch (fixP->fx_r_type)
1353 fixP->fx_no_overflow = 1;
1373 if (fixP->fx_done)
1377 where = (unsigned char *) fixP->fx_frag->fr_literal + fixP->fx_where;
1380 switch (fixP->fx_r_type)
1384 as_bad_where (fixP->fx_file, fixP->fx_line,
1392 as_bad_where (fixP->fx_file, fixP->fx_line,
1400 as_bad_where (fixP->fx_file, fixP->fx_line,
1411 as_bad_where (fixP->fx_file, fixP->fx_line,
1429 as_warn_where (fixP->fx_file, fixP->fx_line,
1440 as_bad_where (fixP->fx_file, fixP->fx_line,
1447 as_warn_where (fixP->fx_file, fixP->fx_line,
1456 as_bad_where (fixP->fx_file, fixP->fx_line,
1464 as_bad_where (fixP->fx_file, fixP->fx_line,
1531 as_bad_where (fixP->fx_file, fixP->fx_line,
1554 fixP->fx_line, fixP->fx_r_type);
1559 as_bad_where (fixP->fx_file, fixP->fx_line,
1566 as_bad_where (fixP->fx_file, fixP->fx_line,
1574 switch ((int) fixP->fx_r_type)
1580 as_bad_where (fixP->fx_file, fixP->fx_line,
1582 fixP->fx_done = 1;
1601 fixS *fixp)
1605 if (fixp->fx_subsy != NULL)
1607 as_bad_where (fixp->fx_file, fixp->fx_line, _("expression too complex"));
1614 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
1616 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
1617 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
1620 as_bad_where (fixp->fx_file, fixp->fx_line,
1622 (int) fixp->fx_r_type);
1626 if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT
1627 || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
1628 reloc->address = fixp->fx_offset;
1630 reloc->addend = fixp->fx_offset;