Lines Matching refs:fixP

146   fixS *fixP;
150 fixP = (fixS *) obstack_alloc (&notes, sizeof (fixS));
152 fixP->fx_frag = frag;
153 fixP->fx_where = where;
154 fixP->fx_size = size;
156 if (fixP->fx_size != size)
161 fixP->fx_addsy = add_symbol;
162 fixP->fx_subsy = sub_symbol;
163 fixP->fx_offset = offset;
164 fixP->fx_dot_value = dot_value;
165 fixP->fx_dot_frag = dot_frag;
166 fixP->fx_pcrel = pcrel;
167 fixP->fx_r_type = r_type;
168 fixP->fx_pcrel_adjust = 0;
169 fixP->fx_addnumber = 0;
170 fixP->fx_tcbit = 0;
171 fixP->fx_tcbit2 = 0;
172 fixP->fx_done = 0;
173 fixP->fx_no_overflow = 0;
174 fixP->fx_signed = 0;
177 fixP->fx_cgen.insn = NULL;
178 fixP->fx_cgen.opinfo = 0;
182 TC_INIT_FIX_DATA (fixP);
185 fixP->fx_file = as_where (&fixP->fx_line);
198 fixP->fx_next = *seg_fix_rootP;
199 *seg_fix_rootP = fixP;
200 if (fixP->fx_next == NULL)
201 *seg_fix_tailP = fixP;
205 fixP->fx_next = NULL;
207 (*seg_fix_tailP)->fx_next = fixP;
209 *seg_fix_rootP = fixP;
210 *seg_fix_tailP = fixP;
214 return fixP;
921 fixup_segment (fixS *fixP, segT this_segment)
926 if (fixP != NULL && abs_section_sym == NULL)
935 for (; fixP; fixP = fixP->fx_next)
936 if (!fixP->fx_done)
938 if (fixP->fx_addsy == NULL)
944 fixP->fx_addsy = abs_section_sym;
946 symbol_mark_used_in_reloc (fixP->fx_addsy);
947 if (fixP->fx_subsy != NULL)
948 symbol_mark_used_in_reloc (fixP->fx_subsy);
953 for (; fixP; fixP = fixP->fx_next)
959 print_fixup (fixP);
962 fragP = fixP->fx_frag;
965 TC_VALIDATE_FIX (fixP, this_segment, skip);
967 add_number = fixP->fx_offset;
969 if (fixP->fx_addsy != NULL)
970 add_symbol_segment = S_GET_SEGMENT (fixP->fx_addsy);
972 if (fixP->fx_subsy != NULL)
975 resolve_symbol_value (fixP->fx_subsy);
976 sub_symbol_segment = S_GET_SEGMENT (fixP->fx_subsy);
977 if (fixP->fx_addsy != NULL
979 && !S_FORCE_RELOC (fixP->fx_addsy, 0)
980 && !S_FORCE_RELOC (fixP->fx_subsy, 0)
981 && !TC_FORCE_RELOCATION_SUB_SAME (fixP, add_symbol_segment))
983 add_number += S_GET_VALUE (fixP->fx_addsy);
984 add_number -= S_GET_VALUE (fixP->fx_subsy);
985 fixP->fx_offset = add_number;
986 fixP->fx_addsy = NULL;
987 fixP->fx_subsy = NULL;
990 fixP->fx_pcrel = 0;
994 && !S_FORCE_RELOC (fixP->fx_subsy, 0)
995 && !TC_FORCE_RELOCATION_SUB_ABS (fixP, add_symbol_segment))
997 add_number -= S_GET_VALUE (fixP->fx_subsy);
998 fixP->fx_offset = add_number;
999 fixP->fx_subsy = NULL;
1002 && !S_FORCE_RELOC (fixP->fx_subsy, 0)
1003 && !TC_FORCE_RELOCATION_SUB_LOCAL (fixP, add_symbol_segment))
1005 add_number -= S_GET_VALUE (fixP->fx_subsy);
1006 fixP->fx_offset = (add_number + fixP->fx_dot_value
1007 + fixP->fx_dot_frag->fr_address);
1020 || !fixP->fx_pcrel)
1021 add_number += MD_PCREL_FROM_SECTION (fixP, this_segment);
1022 fixP->fx_subsy = NULL;
1023 fixP->fx_pcrel = 1;
1025 else if (!TC_VALIDATE_FIX_SUB (fixP, add_symbol_segment))
1030 as_bad_where (fixP->fx_file, fixP->fx_line,
1033 as_bad_subtract (fixP);
1037 && MD_APPLY_SYM_VALUE (fixP))
1038 add_number -= S_GET_VALUE (fixP->fx_subsy);
1041 if (fixP->fx_addsy)
1044 && !S_FORCE_RELOC (fixP->fx_addsy, 0)
1045 && !TC_FORCE_RELOCATION_LOCAL (fixP))
1050 add_number += S_GET_VALUE (fixP->fx_addsy);
1051 fixP->fx_offset = add_number;
1052 if (fixP->fx_pcrel)
1053 add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment);
1054 fixP->fx_addsy = NULL;
1055 fixP->fx_pcrel = 0;
1058 && !S_FORCE_RELOC (fixP->fx_addsy, 0)
1059 && !TC_FORCE_RELOCATION_ABS (fixP))
1061 add_number += S_GET_VALUE (fixP->fx_addsy);
1062 fixP->fx_offset = add_number;
1063 fixP->fx_addsy = NULL;
1067 && MD_APPLY_SYM_VALUE (fixP))
1068 add_number += S_GET_VALUE (fixP->fx_addsy);
1071 if (fixP->fx_pcrel)
1073 add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment);
1074 if (!fixP->fx_done && fixP->fx_addsy == NULL)
1080 fixP->fx_addsy = abs_section_sym;
1084 if (!fixP->fx_done)
1085 md_apply_fix (fixP, &add_number, this_segment);
1087 if (!fixP->fx_done)
1089 if (fixP->fx_addsy == NULL)
1090 fixP->fx_addsy = abs_section_sym;
1091 symbol_mark_used_in_reloc (fixP->fx_addsy);
1092 if (fixP->fx_subsy != NULL)
1093 symbol_mark_used_in_reloc (fixP->fx_subsy);
1096 if (!fixP->fx_no_overflow && fixP->fx_size != 0)
1098 if (fixP->fx_size < sizeof (valueT))
1104 mask <<= fixP->fx_size * 8 - (fixP->fx_signed ? 1 : 0);
1106 && (fixP->fx_signed
1111 bfd_sprintf_vma (stdoutput, buf, fragP->fr_address + fixP->fx_where);
1116 as_bad_where (fixP->fx_file, fixP->fx_line,
1121 fixP->fx_size),
1122 buf2, fixP->fx_size, buf);
1130 && fixP->fx_size == 2
1132 as_bad_where (fixP->fx_file, fixP->fx_line,
1135 (long) (fragP->fr_address + fixP->fx_where));
1145 print_fixup (fixP);