Lines Matching full:fixp
246 fixS *fixP;
250 fixP = fix_new (frag, where, length / 8, symbol, offset,
255 fixP->fx_cgen.insn = insn;
256 fixP->fx_cgen.opinfo = opinfo;
257 fixP->fx_cgen.field = NULL;
258 fixP->fx_cgen.msb_field_p = 0;
260 return fixP;
281 fixS *fixP;
285 fixP = fix_new_exp (frag, where, length / 8, exp,
290 fixP->fx_cgen.insn = insn;
291 fixP->fx_cgen.opinfo = opinfo;
292 fixP->fx_cgen.field = NULL;
293 fixP->fx_cgen.msb_field_p = 0;
295 return fixP;
631 fixS *fixP;
647 fixP = md_cgen_record_fixup_exp (frag_now, f - frag_now->fr_literal,
651 fixP->fx_cgen.field = fixups[i].field;
652 fixP->fx_cgen.msb_field_p = fixups[i].msb_field_p;
654 result->fixups[i] = fixP;
839 gas_cgen_md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
841 char *where = fixP->fx_frag->fr_literal + fixP->fx_where;
846 if (fixP->fx_addsy == (symbolS *) NULL)
847 fixP->fx_done = 1;
850 if (fixP->fx_subsy != (symbolS *) NULL)
851 as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex"));
853 if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED)
855 int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED;
859 const CGEN_INSN *insn = fixP->fx_cgen.insn;
865 if (fixP->fx_cgen.field)
869 start = fixP->fx_cgen.field->val.leaf->start;
870 length = fixP->fx_cgen.field->val.leaf->length;
889 if (fixP->fx_done
892 || fixP->fx_pcrel)
918 as_bad_where (fixP->fx_file, fixP->fx_line, "%s", errmsg);
923 if (fixP->fx_done)
931 reloc_type = md_cgen_lookup_reloc (insn, operand, fixP);
938 length, fixP->fx_size,
941 ! (fixP->fx_cgen.msb_field_p));
946 fixP->fx_r_type = reloc_type;
949 as_bad_where (fixP->fx_file, fixP->fx_line,
951 fixP->fx_done = 1;
955 else if (fixP->fx_done)
959 switch (fixP->fx_r_type)
974 as_bad_where (fixP->fx_file, fixP->fx_line,
976 fixP->fx_r_type, bfd_get_reloc_code_name (fixP->fx_r_type));
986 fixP->fx_addnumber = value;
1010 gas_cgen_tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
1012 bfd_reloc_code_real_type r_type = fixP->fx_r_type;
1018 if (fixP->fx_pcrel)
1025 as_bad_where (fixP->fx_file, fixP->fx_line,
1030 gas_assert (!fixP->fx_pcrel == !reloc->howto->pc_relative);
1033 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy);
1036 if (fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY
1037 || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT)
1038 reloc->addend = fixP->fx_offset;
1040 reloc->addend = fixP->fx_addnumber;
1042 reloc->address = fixP->fx_frag->fr_address + fixP->fx_where;