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_tcbit3 = 0;
173 fixP->fx_done = 0;
174 fixP->fx_no_overflow = 0;
175 fixP->fx_signed = 0;
178 fixP->fx_cgen.insn = NULL;
179 fixP->fx_cgen.opinfo = 0;
183 TC_INIT_FIX_DATA (fixP);
186 fixP->fx_file = as_where (&fixP->fx_line);
199 fixP->fx_next = *seg_fix_rootP;
200 *seg_fix_rootP = fixP;
201 if (fixP->fx_next == NULL)
202 *seg_fix_tailP = fixP;
206 fixP->fx_next = NULL;
208 (*seg_fix_tailP)->fx_next = fixP;
210 *seg_fix_rootP = fixP;
211 *seg_fix_tailP = fixP;
215 return fixP;
926 fixup_segment (fixS *fixP, segT this_segment)
931 if (fixP != NULL && abs_section_sym == NULL)
940 for (; fixP; fixP = fixP->fx_next)
941 if (!fixP->fx_done)
943 if (fixP->fx_addsy == NULL)
949 fixP->fx_addsy = abs_section_sym;
951 symbol_mark_used_in_reloc (fixP->fx_addsy);
952 if (fixP->fx_subsy != NULL)
953 symbol_mark_used_in_reloc (fixP->fx_subsy);
958 for (; fixP; fixP = fixP->fx_next)
964 print_fixup (fixP);
967 fragP = fixP->fx_frag;
970 TC_VALIDATE_FIX (fixP, this_segment, skip);
972 add_number = fixP->fx_offset;
974 if (fixP->fx_addsy != NULL)
975 add_symbol_segment = S_GET_SEGMENT (fixP->fx_addsy);
977 if (fixP->fx_subsy != NULL)
981 resolve_symbol_value (fixP->fx_subsy);
982 sub_symbol_segment = S_GET_SEGMENT (fixP->fx_subsy);
984 if (fixP->fx_addsy != NULL
986 && !S_FORCE_RELOC (fixP->fx_addsy, 0)
987 && !S_FORCE_RELOC (fixP->fx_subsy, 0)
988 && !TC_FORCE_RELOCATION_SUB_SAME (fixP, add_symbol_segment))
990 add_number += S_GET_VALUE_WHERE (fixP->fx_addsy, fixP->fx_file, fixP->fx_line);
991 add_number -= S_GET_VALUE_WHERE (fixP->fx_subsy, fixP->fx_file, fixP->fx_line);
992 fixP->fx_offset = add_number;
993 fixP->fx_addsy = NULL;
994 fixP->fx_subsy = NULL;
997 fixP->fx_pcrel = 0;
1001 && !S_FORCE_RELOC (fixP->fx_subsy, 0)
1002 && !TC_FORCE_RELOCATION_SUB_ABS (fixP, add_symbol_segment))
1004 add_number -= S_GET_VALUE_WHERE (fixP->fx_subsy, fixP->fx_file, fixP->fx_line);
1005 fixP->fx_offset = add_number;
1006 fixP->fx_subsy = NULL;
1009 && !S_FORCE_RELOC (fixP->fx_subsy, 0)
1010 && !TC_FORCE_RELOCATION_SUB_LOCAL (fixP, add_symbol_segment))
1012 add_number -= S_GET_VALUE_WHERE (fixP->fx_subsy, fixP->fx_file, fixP->fx_line);
1013 fixP->fx_offset = (add_number + fixP->fx_dot_value
1014 + fixP->fx_dot_frag->fr_address);
1027 || !fixP->fx_pcrel)
1028 add_number += MD_PCREL_FROM_SECTION (fixP, this_segment);
1029 fixP->fx_subsy = NULL;
1030 fixP->fx_pcrel = 1;
1032 else if (!TC_VALIDATE_FIX_SUB (fixP, add_symbol_segment))
1037 as_bad_where (fixP->fx_file, fixP->fx_line,
1040 as_bad_subtract (fixP);
1044 && MD_APPLY_SYM_VALUE (fixP))
1045 add_number -= S_GET_VALUE_WHERE (fixP->fx_subsy, fixP->fx_file, fixP->fx_line);
1048 if (fixP->fx_addsy)
1051 && !S_FORCE_RELOC (fixP->fx_addsy, 0)
1052 && !TC_FORCE_RELOCATION_LOCAL (fixP))
1057 add_number += S_GET_VALUE_WHERE (fixP->fx_addsy, fixP->fx_file, fixP->fx_line);
1058 fixP->fx_offset = add_number;
1059 if (fixP->fx_pcrel)
1060 add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment);
1061 fixP->fx_addsy = NULL;
1062 fixP->fx_pcrel = 0;
1065 && !S_FORCE_RELOC (fixP->fx_addsy, 0)
1066 && !TC_FORCE_RELOCATION_ABS (fixP))
1068 add_number += S_GET_VALUE_WHERE (fixP->fx_addsy, fixP->fx_file, fixP->fx_line);
1069 fixP->fx_offset = add_number;
1070 fixP->fx_addsy = NULL;
1074 && MD_APPLY_SYM_VALUE (fixP))
1075 add_number += S_GET_VALUE_WHERE (fixP->fx_addsy, fixP->fx_file, fixP->fx_line);
1078 if (fixP->fx_pcrel)
1080 add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment);
1081 if (!fixP->fx_done && fixP->fx_addsy == NULL)
1087 fixP->fx_addsy = abs_section_sym;
1091 if (!fixP->fx_done)
1092 md_apply_fix (fixP, &add_number, this_segment);
1094 if (!fixP->fx_done)
1096 if (fixP->fx_addsy == NULL)
1097 fixP->fx_addsy = abs_section_sym;
1098 symbol_mark_used_in_reloc (fixP->fx_addsy);
1099 if (fixP->fx_subsy != NULL)
1100 symbol_mark_used_in_reloc (fixP->fx_subsy);
1103 if (!fixP->fx_no_overflow && fixP->fx_size != 0)
1105 if (fixP->fx_size < sizeof (valueT))
1111 mask <<= fixP->fx_size * 8 - (fixP->fx_signed ? 1 : 0);
1113 && (fixP->fx_signed
1118 bfd_sprintf_vma (stdoutput, buf, fragP->fr_address + fixP->fx_where);
1123 as_bad_where (fixP->fx_file, fixP->fx_line,
1128 fixP->fx_size),
1129 buf2, fixP->fx_size, buf);
1137 && fixP->fx_size == 2
1139 as_bad_where (fixP->fx_file, fixP->fx_line,
1142 (long) (fragP->fr_address + fixP->fx_where));
1152 print_fixup (fixP);