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;
1771 fixS *fixP;
1812 fixP = fix_new_exp (frag_now, f - frag_now->fr_literal, size,
1832 fixP->fx_no_overflow = 1;
1836 fixP->fx_no_overflow = 1;
1837 fixP->fx_addsy = section_symbol (now_seg);
1838 fixP->fx_offset = 0;
1846 fixP->tc_fix_data.info = info;
1850 fixP->fx_no_overflow = 1;
1858 fixP->tc_fix_data.info = info;
1859 info->slaves = fixP;
1864 fixP->fx_no_overflow = 1;
1869 info->master = fixP;
1873 fixP->tc_fix_data.info = info;
1878 fixP->fx_offset = LITUSE_ALPHA_ADDR;
1881 fixP->fx_offset = LITUSE_ALPHA_BASE;
1884 fixP->fx_offset = LITUSE_ALPHA_BYTOFF;
1887 fixP->fx_offset = LITUSE_ALPHA_JSR;
1890 fixP->fx_offset = LITUSE_ALPHA_TLSGD;
1893 fixP->fx_offset = LITUSE_ALPHA_TLSLDM;
1896 fixP->fx_offset = LITUSE_ALPHA_JSRDIRECT;
1899 fixP->fx_addsy = section_symbol (now_seg);
1900 fixP->fx_r_type = BFD_RELOC_ALPHA_LITUSE;
1916 fixP->tc_fix_data.info = info;
1917 fixP->tc_fix_data.next_reloc = info->slaves;
1918 info->slaves = fixP;
1924 fixP->fx_no_overflow = 1;
1936 fixP->tc_fix_data.info = info;
1940 fixP->fx_no_overflow = 1;
1952 fixP->tc_fix_data.info = info;
1961 fixP->tc_fix_data.info = info;
1962 fixP->tc_fix_data.info->sym = fixup->xtrasym;
1963 fixP->tc_fix_data.info->psym = fixup->procsym;
1971 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;
4499 fixS *fixp;
4582 fixp = fix_new (frag_now, p - frag_now->fr_literal, 8, 0, 0, 0, 0);
4583 fixp->fx_done = 1;
4642 fixp = fix_new (frag_now, p - frag_now->fr_literal, 8,
4696 fixS *fixp;
4713 fixp = fix_new_exp
4724 linkage_fixup->fixp = fixp;
5716 md_pcrel_from (fixS *fixP)
5718 valueT addr = fixP->fx_where + fixP->fx_frag->fr_address;
5720 switch (fixP->fx_r_type)
5733 To indicate that a fixup has been eliminated, set fixP->fx_done.
5742 md_apply_fix (fixS *fixP, valueT * valP, segT seg)
5744 char * const fixpos = fixP->fx_frag->fr_literal + fixP->fx_where;
5748 switch (fixP->fx_r_type)
5756 fixS *next = fixP->fx_next;
5762 fixP->fx_offset = (next->fx_frag->fr_address + next->fx_where
5763 - fixP->fx_frag->fr_address - fixP->fx_where);
5768 fixP->fx_r_type = BFD_RELOC_ALPHA_GPDISP;
5774 fixP->fx_offset = 0;
5776 fixP->fx_done = 1;
5780 fixP->fx_addsy = section_symbol (seg);
5785 if (fixP->fx_pcrel)
5786 fixP->fx_r_type = BFD_RELOC_16_PCREL;
5791 if (fixP->fx_pcrel)
5792 fixP->fx_r_type = BFD_RELOC_32_PCREL;
5797 if (fixP->fx_pcrel)
5798 fixP->fx_r_type = BFD_RELOC_64_PCREL;
5802 if (fixP->fx_pcrel == 0 && fixP->fx_addsy == 0)
5811 gas_assert (fixP->fx_subsy == alpha_gp_symbol);
5812 fixP->fx_subsy = 0;
5825 if (fixP->fx_pcrel == 0 && fixP->fx_addsy == 0)
5834 if (fixP->fx_pcrel == 0 && fixP->fx_addsy == 0)
5856 if (fixP->fx_addsy)
5857 S_SET_THREAD_LOCAL (fixP->fx_addsy);
5880 if (S_GET_SEGMENT (fixP->fx_addsy) == undefined_section)
5882 fixP->fx_addnumber = -value;
5896 /* fixup_segment sets fixP->fx_addsy to NULL when it can pre-compute
5898 if (fixP->fx_addsy
5899 && S_GET_SEGMENT (fixP->fx_addsy) == undefined_section)
5901 fixP->fx_addnumber = symbol_get_bfdsym (fixP->fx_subsy)->value;
5919 if (S_GET_SEGMENT (fixP->fx_addsy) == undefined_section)
5921 fixP->fx_addnumber = -value;
5928 if (fixP->fx_r_type == BFD_RELOC_ALPHA_BOH)
5953 if ((int) fixP->fx_r_type >= 0)
5955 bfd_get_reloc_code_name (fixP->fx_r_type));
5957 gas_assert (-(int) fixP->fx_r_type < (int) alpha_num_operands);
5958 operand = &alpha_operands[-(int) fixP->fx_r_type];
5964 if (fixP->fx_addsy != 0
5965 && S_GET_SEGMENT (fixP->fx_addsy) != absolute_section)
5966 as_bad_where (fixP->fx_file, fixP->fx_line,
5971 fixP->fx_file, fixP->fx_line);
5976 if (fixP->fx_addsy != 0 || fixP->fx_pcrel != 0)
5980 as_warn_where (fixP->fx_file, fixP->fx_line,
5981 _("type %d reloc done?\n"), (int) fixP->fx_r_type);
5989 fixP->fx_done = 1;
6231 fixS *fixp)
6237 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
6238 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
6242 gas_assert ((int) fixp->fx_r_type > 0);
6244 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
6247 as_bad_where (fixp->fx_file, fixp->fx_line,
6249 bfd_get_reloc_code_name (fixp->fx_r_type));
6253 if (!fixp->fx_pcrel != !reloc->howto->pc_relative)
6255 bfd_get_reloc_code_name (fixp->fx_r_type));
6257 gas_assert (!fixp->fx_pcrel == !reloc->howto->pc_relative);
6259 reloc->addend = fixp->fx_offset;
6264 if (fixp->fx_r_type == BFD_RELOC_ALPHA_LITERAL)
6269 switch (fixp->fx_r_type)
6277 reloc->addend = fixp->fx_addnumber;
6284 pname = symbol_get_bfdsym (fixp->fx_addsy)->name;
6315 udata->enbsym = symbol_get_bfdsym (fixp->fx_addsy);
6316 udata->bsym = symbol_get_bfdsym (fixp->tc_fix_data.info->psym);
6319 symbol_get_bfdsym (fixp->tc_fix_data.info->sym)->udata.p)->lkindex;
6321 reloc->addend = fixp->fx_addnumber;