Home | History | Annotate | Download | only in config

Lines Matching full:fixp

632   fixS *fixp;
649 for (fixp = seginfo->fix_root; fixp; fixp = next)
651 next = fixp->fx_next;
652 fixp->fx_next = (fixS *) 0;
654 switch (fixp->fx_r_type)
657 if (fixp->tc_fix_data.info->n_master == 0)
658 as_bad_where (fixp->fx_file, fixp->fx_line,
660 fixp->tc_fix_data.info->sequence);
662 if (fixp->fx_offset == LITUSE_ALPHA_TLSGD)
664 if (! fixp->tc_fix_data.info->saw_tlsgd)
665 as_bad_where (fixp->fx_file, fixp->fx_line,
667 fixp->tc_fix_data.info->sequence);
669 else if (fixp->fx_offset == LITUSE_ALPHA_TLSLDM)
671 if (! fixp->tc_fix_data.info->saw_tlsldm)
672 as_bad_where (fixp->fx_file, fixp->fx_line,
674 fixp->tc_fix_data.info->sequence);
680 if (fixp->tc_fix_data.info->n_master == 0)
681 as_bad_where (fixp->fx_file, fixp->fx_line,
683 fixp->tc_fix_data.info->sequence);
687 if (fixp->tc_fix_data.info
688 && (fixp->tc_fix_data.info->saw_tlsgd
689 || fixp->tc_fix_data.info->saw_tlsldm))
694 *prevP = fixp;
695 prevP = &fixp->fx_next;
718 for (fixp = seginfo->fix_root; fixp; fixp = next)
720 next = fixp->fx_next;
721 switch (fixp->fx_r_type)
725 if (!fixp->tc_fix_data.info)
727 if (fixp->tc_fix_data.info->n_master == 0)
729 else if (fixp->tc_fix_data.info->n_master > 1)
731 as_bad_where (fixp->fx_file, fixp->fx_line,
733 fixp->tc_fix_data.info->sequence,
734 (fixp->fx_r_type == BFD_RELOC_ALPHA_TLSGD
739 fixp->tc_fix_data.info->master->fx_next = fixp->fx_next;
740 fixp->fx_next = fixp->tc_fix_data.info->master;
741 fixp = fixp->fx_next;
745 if (fixp->tc_fix_data.info
746 && fixp->tc_fix_data.info->n_master == 1
747 && ! fixp->tc_fix_data.info->multi_section_p)
749 for (slave = fixp->tc_fix_data.info->slaves;
753 slave->fx_next = fixp->fx_next;
754 fixp->fx_next = slave;
760 if (fixp->tc_fix_data.info->n_slaves == 0)
761 as_bad_where (fixp->fx_file, fixp->fx_line,
763 fixp->tc_fix_data.info->sequence);
766 slave = fixp->tc_fix_data.info->slaves;
768 fixp->fx_next = slave;
1770 fixS *fixP;
1811 fixP = fix_new_exp (frag_now, f - frag_now->fr_literal, size,
1831 fixP->fx_no_overflow = 1;
1835 fixP->fx_no_overflow = 1;
1836 fixP->fx_addsy = section_symbol (now_seg);
1837 fixP->fx_offset = 0;
1845 fixP->tc_fix_data.info = info;
1849 fixP->fx_no_overflow = 1;
1857 fixP->tc_fix_data.info = info;
1858 info->slaves = fixP;
1863 fixP->fx_no_overflow = 1;
1868 info->master = fixP;
1872 fixP->tc_fix_data.info = info;
1877 fixP->fx_offset = LITUSE_ALPHA_ADDR;
1880 fixP->fx_offset = LITUSE_ALPHA_BASE;
1883 fixP->fx_offset = LITUSE_ALPHA_BYTOFF;
1886 fixP->fx_offset = LITUSE_ALPHA_JSR;
1889 fixP->fx_offset = LITUSE_ALPHA_TLSGD;
1892 fixP->fx_offset = LITUSE_ALPHA_TLSLDM;
1895 fixP->fx_offset = LITUSE_ALPHA_JSRDIRECT;
1898 fixP->fx_addsy = section_symbol (now_seg);
1899 fixP->fx_r_type = BFD_RELOC_ALPHA_LITUSE;
1915 fixP->tc_fix_data.info = info;
1916 fixP->tc_fix_data.next_reloc = info->slaves;
1917 info->slaves = fixP;
1923 fixP->fx_no_overflow = 1;
1935 fixP->tc_fix_data.info = info;
1939 fixP->fx_no_overflow = 1;
1951 fixP->tc_fix_data.info = info;
1960 fixP->tc_fix_data.info = info;
1961 fixP->tc_fix_data.info->sym = fixup->xtrasym;
1962 fixP->tc_fix_data.info->psym = fixup->procsym;
1970 fixP->fx_no_overflow = 1;
3391 fixS *fixp;
3402 for (fixp = seginfo->frchainP->fix_root;
3403 fixp != (fixS *) NULL;
3404 fixp = fixp->fx_next)
3406 if (fixp->fx_addsy == sym
3407 && fixp->fx_offset == (valueT)addend
3408 && fixp->tc_fix_data.info
3409 && fixp->tc_fix_data.info->sym
3410 && fixp->tc_fix_data.info->sym->sy_value.X_op_symbol == basesym)
3411 return fixp->tc_fix_data.info->sym;
3429 fixp = fix_new
3431 fixp->tc_fix_data.info = get_alpha_reloc_tag (next_sequence_num--);
3432 fixp->tc_fix_data.info->sym = expsym;
4500 fixS *fixp;
4583 fixp = fix_new (frag_now, p - frag_now->fr_literal, 8, 0, 0, 0, 0);
4584 fixp->fx_done = 1;
4643 fixp = fix_new (frag_now, p - frag_now->fr_literal, 8,
4697 fixS *fixp;
4714 fixp = fix_new_exp
4724 linkage_fixup->fixp = fixp;
5715 md_pcrel_from (fixS *fixP)
5717 valueT addr = fixP->fx_where + fixP->fx_frag->fr_address;
5719 switch (fixP->fx_r_type)
5732 To indicate that a fixup has been eliminated, set fixP->fx_done.
5741 md_apply_fix (fixS *fixP, valueT * valP, segT seg)
5743 char * const fixpos = fixP->fx_frag->fr_literal + fixP->fx_where;
5747 switch (fixP->fx_r_type)
5755 fixS *next = fixP->fx_next;
5761 fixP->fx_offset = (next->fx_frag->fr_address + next->fx_where
5762 - fixP->fx_frag->fr_address - fixP->fx_where);
5767 fixP->fx_r_type = BFD_RELOC_ALPHA_GPDISP;
5773 fixP->fx_offset = 0;
5775 fixP->fx_done = 1;
5779 fixP->fx_addsy = section_symbol (seg);
5784 if (fixP->fx_pcrel)
5785 fixP->fx_r_type = BFD_RELOC_16_PCREL;
5790 if (fixP->fx_pcrel)
5791 fixP->fx_r_type = BFD_RELOC_32_PCREL;
5796 if (fixP->fx_pcrel)
5797 fixP->fx_r_type = BFD_RELOC_64_PCREL;
5801 if (fixP->fx_pcrel == 0 && fixP->fx_addsy == 0)
5810 gas_assert (fixP->fx_subsy == alpha_gp_symbol);
5811 fixP->fx_subsy = 0;
5824 if (fixP->fx_pcrel == 0 && fixP->fx_addsy == 0)
5833 if (fixP->fx_pcrel == 0 && fixP->fx_addsy == 0)
5855 if (fixP->fx_addsy)
5856 S_SET_THREAD_LOCAL (fixP->fx_addsy);
5879 if (S_GET_SEGMENT (fixP->fx_addsy) == undefined_section)
5881 fixP->fx_addnumber = -value;
5895 /* fixup_segment sets fixP->fx_addsy to NULL when it can pre-compute
5897 if (fixP->fx_addsy
5898 && S_GET_SEGMENT (fixP->fx_addsy) == undefined_section)
5900 fixP->fx_addnumber = symbol_get_bfdsym (fixP->fx_subsy)->value;
5918 if (S_GET_SEGMENT (fixP->fx_addsy) == undefined_section)
5920 fixP->fx_addnumber = -value;
5927 if (fixP->fx_r_type == BFD_RELOC_ALPHA_BOH)
5952 if ((int) fixP->fx_r_type >= 0)
5954 bfd_get_reloc_code_name (fixP->fx_r_type));
5956 gas_assert (-(int) fixP->fx_r_type < (int) alpha_num_operands);
5957 operand = &alpha_operands[-(int) fixP->fx_r_type];
5963 if (fixP->fx_addsy != 0
5964 && S_GET_SEGMENT (fixP->fx_addsy) != absolute_section)
5965 as_bad_where (fixP->fx_file, fixP->fx_line,
5970 fixP->fx_file, fixP->fx_line);
5975 if (fixP->fx_addsy != 0 || fixP->fx_pcrel != 0)
5979 as_warn_where (fixP->fx_file, fixP->fx_line,
5980 _("type %d reloc done?\n"), (int) fixP->fx_r_type);
5988 fixP->fx_done = 1;
6230 fixS *fixp)
6236 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
6237 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
6241 gas_assert ((int) fixp->fx_r_type > 0);
6243 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
6246 as_bad_where (fixp->fx_file, fixp->fx_line,
6248 bfd_get_reloc_code_name (fixp->fx_r_type));
6252 if (!fixp->fx_pcrel != !reloc->howto->pc_relative)
6254 bfd_get_reloc_code_name (fixp->fx_r_type));
6256 gas_assert (!fixp->fx_pcrel == !reloc->howto->pc_relative);
6258 reloc->addend = fixp->fx_offset;
6263 if (fixp->fx_r_type == BFD_RELOC_ALPHA_LITERAL)
6268 switch (fixp->fx_r_type)
6276 reloc->addend = fixp->fx_addnumber;
6283 pname = symbol_get_bfdsym (fixp->fx_addsy)->name;
6311 udata->enbsym = symbol_get_bfdsym (fixp->fx_addsy);
6312 udata->bsym = symbol_get_bfdsym (fixp->tc_fix_data.info->psym);
6315 symbol_get_bfdsym (fixp->tc_fix_data.info->sym)->udata.p)->lkindex;
6317 reloc->addend = fixp->fx_addnumber;