Lines Matching refs:fixP

256   fixS *fixP;
262 fixP = gas_cgen_record_fixup_exp (frag, where, insn, length,
271 fixP->fx_r_type = BFD_RELOC_XSTORMY16_FPTR16;
272 fixP->fx_where += 2;
276 return fixP;
336 md_pcrel_from_section (fixS * fixP, segT sec)
338 if ((fixP->fx_addsy != (symbolS *) NULL
339 && (! S_IS_DEFINED (fixP->fx_addsy)
340 || S_GET_SEGMENT (fixP->fx_addsy) != sec))
341 || xstormy16_force_relocation (fixP))
348 return fixP->fx_frag->fr_address + fixP->fx_where;
358 fixS * fixP)
370 fixP->fx_where += 2;
375 return fixP->fx_pcrel ? BFD_RELOC_8_PCREL : BFD_RELOC_8;
379 fixP->fx_where += 2;
380 if (fixP->fx_cgen.opinfo && fixP->fx_cgen.opinfo != BFD_RELOC_NONE)
381 return fixP->fx_cgen.opinfo;
382 return fixP->fx_pcrel ? BFD_RELOC_16_PCREL : BFD_RELOC_16;
388 fixP->fx_addnumber -= 2;
391 fixP->fx_addnumber -= 2;
392 fixP->fx_pcrel = 1;
396 fixP->fx_where += 2;
399 fixP->fx_addnumber -= 2;
400 fixP->fx_pcrel = 1;
425 xstormy16_fix_adjustable (fixS * fixP)
428 if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
429 || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
432 if (fixP->fx_r_type == BFD_RELOC_XSTORMY16_FPTR16)
442 xstormy16_md_apply_fix (fixS * fixP,
446 char *where = fixP->fx_frag->fr_literal + fixP->fx_where;
455 fixP->fx_addnumber = 0;
462 if (fixP->fx_pcrel)
463 switch (fixP->fx_r_type)
466 fixP->fx_r_type = BFD_RELOC_8_PCREL;
469 fixP->fx_r_type = BFD_RELOC_16_PCREL;
472 fixP->fx_r_type = BFD_RELOC_32_PCREL;
475 fixP->fx_r_type = BFD_RELOC_64_PCREL;
481 if (fixP->fx_addsy == (symbolS *) NULL)
482 fixP->fx_done = 1;
485 if (fixP->fx_subsy != (symbolS *) NULL)
486 as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex"));
488 if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED)
490 int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED;
494 const CGEN_INSN *insn = fixP->fx_cgen.insn;
498 if (fixP->fx_done)
526 as_bad_where (fixP->fx_file, fixP->fx_line, "%s", errmsg);
531 if (fixP->fx_done)
539 reloc_type = md_cgen_lookup_reloc (insn, operand, fixP);
541 fixP->fx_r_type = reloc_type;
544 as_bad_where (fixP->fx_file, fixP->fx_line,
546 fixP->fx_done = 1;
550 else if (fixP->fx_done)
554 switch (fixP->fx_r_type)
569 as_bad_where (fixP->fx_file, fixP->fx_line,
571 fixP->fx_r_type, bfd_get_reloc_code_name (fixP->fx_r_type));
588 if (! fixP->fx_done)
594 fixP->fx_addnumber += value;