Home | History | Annotate | Download | only in config

Lines Matching full:fixp

3268 	  fixS *fixP;
3300 fixP = fix_new_exp (frag_now, address, size,
3305 fixP->tc_fix_data = (void *) operand;
3314 fixP->fx_no_overflow = 1;
3339 tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp)
3345 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
3346 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
3348 if ( fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY
3349 || fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT
3350 || fixp->fx_r_type == BFD_RELOC_V850_LONGCALL
3351 || fixp->fx_r_type == BFD_RELOC_V850_LONGJUMP
3352 || fixp->fx_r_type == BFD_RELOC_V850_ALIGN)
3353 reloc->addend = fixp->fx_offset;
3357 if (fixp->fx_r_type == BFD_RELOC_32
3358 && fixp->fx_pcrel)
3359 fixp->fx_r_type = BFD_RELOC_32_PCREL;
3362 reloc->addend = fixp->fx_addnumber;
3365 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
3369 as_bad_where (fixp->fx_file, fixp->fx_line,
3372 (int) fixp->fx_r_type);
3409 v850_pcrel_from_section (fixS *fixp, segT section)
3414 if (fixp->fx_addsy != (symbolS *) NULL
3415 && (! S_IS_DEFINED (fixp->fx_addsy)
3416 || S_IS_WEAK (fixp->fx_addsy)
3417 || (S_GET_SEGMENT (fixp->fx_addsy) != section)))
3420 return fixp->fx_frag->fr_address + fixp->fx_where;
3424 md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED)
3429 if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
3430 || fixP->fx_r_type == BFD_RELOC_V850_LONGCALL
3431 || fixP->fx_r_type == BFD_RELOC_V850_LONGJUMP
3432 || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
3434 fixP->fx_done = 0;
3438 if (fixP->fx_addsy == (symbolS *) NULL)
3439 fixP->fx_addnumber = value,
3440 fixP->fx_done = 1;
3442 else if (fixP->fx_pcrel)
3443 fixP->fx_addnumber = fixP->fx_offset;
3447 value = fixP->fx_offset;
3448 if (fixP->fx_subsy != (symbolS *) NULL)
3450 if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section)
3451 value -= S_GET_VALUE (fixP->fx_subsy);
3454 as_bad_where (fixP->fx_file, fixP->fx_line,
3457 fixP->fx_addnumber = value;
3460 if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED)
3467 opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED;
3475 where = fixP->fx_frag->fr_literal + fixP->fx_where;
3477 if (fixP->fx_size > 2)
3490 as_warn_where (fixP->fx_file, fixP->fx_line, "%s", errmsg);
3492 if (fixP->fx_size > 2)
3497 if (fixP->fx_done)
3506 as_bad_where (fixP->fx_file, fixP->fx_line,
3508 fixP->fx_done = 1;
3513 fixP->fx_r_type = operand->default_reloc;
3516 fixP->fx_where += 2;
3517 fixP->fx_size = 2;
3518 fixP->fx_addnumber += 2;
3522 else if (fixP->fx_done)
3525 where = fixP->fx_frag->fr_literal + fixP->fx_where;
3527 if (fixP->tc_fix_data != NULL
3528 && ((struct v850_operand *) fixP->tc_fix_data)->insert != NULL)
3531 struct v850_operand * operand = (struct v850_operand *) fixP->tc_fix_data;
3539 if (fixP->fx_size == 2)
3541 else if (fixP->fx_size == 1)
3555 switch (fixP->fx_r_type)
3699 v850_fix_adjustable (fixS *fixP)
3701 if (fixP->fx_addsy == NULL)
3705 if (S_IS_FUNCTION (fixP->fx_addsy))
3709 if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
3710 || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
3717 v850_force_relocation (struct fix *fixP)
3719 if (fixP->fx_r_type == BFD_RELOC_V850_LONGCALL
3720 || fixP->fx_r_type == BFD_RELOC_V850_LONGJUMP)
3724 && (fixP->fx_pcrel
3725 || fixP->fx_r_type == BFD_RELOC_V850_ALIGN
3726 || fixP->fx_r_type == BFD_RELOC_V850_9_PCREL
3727 || fixP->fx_r_type == BFD_RELOC_V850_16_PCREL
3728 || fixP->fx_r_type == BFD_RELOC_V850_17_PCREL
3729 || fixP->fx_r_type == BFD_RELOC_V850_22_PCREL
3730 || fixP->fx_r_type == BFD_RELOC_V850_32_PCREL
3731 || fixP->fx_r_type >= BFD_RELOC_UNUSED))
3734 return generic_force_reloc (fixP);