Lines Matching full:fixp
3338 fixS *fixP = fix_new_exp (frag_now, /* Which frag. */
3348 fixP->fx_no_overflow = 1;
3350 fixP->tc_fix_data = theinsn->exp2.X_add_number;
3390 md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED)
3392 char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
3396 gas_assert (fixP->fx_r_type < BFD_RELOC_UNUSED);
3398 fixP->fx_addnumber = val; /* Remember value for emit_reloc. */
3402 if (fixP->fx_addsy != NULL)
3404 switch (fixP->fx_r_type)
3430 S_SET_THREAD_LOCAL (fixP->fx_addsy);
3443 if (fixP->fx_r_type == BFD_RELOC_32_PCREL_S2 && fixP->fx_addsy)
3444 val += fixP->fx_where + fixP->fx_frag->fr_address;
3454 if (fixP->fx_addsy != NULL
3455 && fixP->fx_r_type != BFD_RELOC_32_PCREL_S2)
3463 && fixP->fx_r_type != BFD_RELOC_32_PCREL_S2
3464 && fixP->fx_addsy != NULL
3465 && ! S_IS_COMMON (fixP->fx_addsy)
3466 && symbol_section_p (fixP->fx_addsy))
3467 fixP->fx_addnumber -= 2 * S_GET_VALUE (fixP->fx_addsy);
3473 && fixP->fx_r_type == BFD_RELOC_32_PCREL_S2
3474 && fixP->fx_addsy != NULL
3475 && (S_IS_EXTERNAL (fixP->fx_addsy)
3476 || S_IS_WEAK (fixP->fx_addsy))
3477 && S_IS_DEFINED (fixP->fx_addsy)
3478 && ! S_IS_COMMON (fixP->fx_addsy))
3481 fixP->fx_addnumber -= 2 * S_GET_VALUE (fixP->fx_addsy);
3487 if (fixP->fx_r_type == BFD_RELOC_8)
3491 else if (fixP->fx_r_type == BFD_RELOC_16
3492 || fixP->fx_r_type == BFD_RELOC_SPARC_UA16)
3496 else if (fixP->fx_r_type == BFD_RELOC_32
3497 || fixP->fx_r_type == BFD_RELOC_SPARC_UA32
3498 || fixP->fx_r_type == BFD_RELOC_SPARC_REV32)
3502 else if (fixP->fx_r_type == BFD_RELOC_64
3503 || fixP->fx_r_type == BFD_RELOC_SPARC_UA64)
3507 else if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
3508 || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
3510 fixP->fx_done = 0;
3522 switch (fixP->fx_r_type)
3529 || fixP->fx_addsy == NULL
3530 || symbol_section_p (fixP->fx_addsy))
3536 if (sparc_relax && fixP->fx_where + 8 <= fixP->fx_frag->fr_fix)
3585 if (fixP->fx_where >= 4
3621 as_bad_where (fixP->fx_file, fixP->fx_line,
3628 as_bad_where (fixP->fx_file, fixP->fx_line,
3635 as_bad_where (fixP->fx_file, fixP->fx_line,
3642 as_bad_where (fixP->fx_file, fixP->fx_line,
3649 as_bad_where (fixP->fx_file, fixP->fx_line,
3658 as_bad_where (fixP->fx_file, fixP->fx_line,
3670 as_bad_where (fixP->fx_file, fixP->fx_line,
3681 as_bad_where (fixP->fx_file, fixP->fx_line,
3694 if (!fixP->fx_addsy)
3703 as_bad_where (fixP->fx_file, fixP->fx_line,
3713 if (!fixP->fx_addsy)
3722 val += fixP->tc_fix_data;
3727 as_bad_where (fixP->fx_file, fixP->fx_line,
3740 if (!fixP->fx_addsy)
3749 if (!fixP->fx_addsy)
3758 if (!fixP->fx_addsy)
3763 if (!fixP->fx_addsy)
3768 if (!fixP->fx_addsy)
3776 if (!fixP->fx_addsy)
3782 as_bad_where (fixP->fx_file, fixP->fx_line,
3784 fixP->fx_r_type);
3795 if (fixP->fx_addsy == 0 && !fixP->fx_pcrel)
3796 fixP->fx_done = 1;
3803 tc_gen_reloc (asection *section, fixS *fixp)
3813 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
3814 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
3816 switch (fixp->fx_r_type)
3886 code = fixp->fx_r_type;
3914 if (generic_force_reloc (fixp))
3919 if (fixp->fx_addsy != NULL)
3921 if (strcmp (S_GET_NAME (fixp->fx_addsy), GOT_NAME) == 0)
3924 if (strcmp (S_GET_NAME (fixp->fx_addsy), GOTT_BASE) == 0
3925 || strcmp (S_GET_NAME (fixp->fx_addsy), GOTT_INDEX) == 0)
3932 if (fixp->fx_addsy != NULL)
3934 if (strcmp (S_GET_NAME (fixp->fx_addsy), GOT_NAME) == 0)
3937 if (strcmp (S_GET_NAME (fixp->fx_addsy), GOTT_BASE) == 0
3938 || strcmp (S_GET_NAME (fixp->fx_addsy), GOTT_INDEX) == 0)
3968 as_bad_where (fixp->fx_file, fixp->fx_line,
3970 fixp->fx_r_type, bfd_get_reloc_code_name (code));
3982 reloc->addend = fixp->fx_addnumber;
3984 && fixp->fx_r_type == BFD_RELOC_32_PCREL_S2
3985 && fixp->fx_addsy != NULL
3986 && (S_IS_EXTERNAL (fixp->fx_addsy)
3987 || S_IS_WEAK (fixp->fx_addsy))
3988 && S_IS_DEFINED (fixp->fx_addsy)
3989 && ! S_IS_COMMON (fixp->fx_addsy))
3990 reloc->addend = fixp->fx_addnumber;
3992 reloc->addend = fixp->fx_offset - reloc->address;
4004 reloc->addend = fixp->fx_addnumber;
4005 else if (symbol_section_p (fixp->fx_addsy))
4007 + fixp->fx_addnumber
4008 + md_pcrel_from (fixp));
4010 reloc->addend = fixp->fx_offset;
4023 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
4025 reloc->addend = fixp->tc_fix_data;
4066 md_pcrel_from (fixS *fixP)
4070 ret = fixP->fx_where + fixP->fx_frag->fr_address;
4072 || fixP->fx_addsy == NULL
4073 || symbol_section_p (fixP->fx_addsy))
4074 ret += fixP->fx_size;