Lines Matching full:fixp
571 fixS *fixP; /* Structure describing needed address fix. */
574 fixP = NULL;
598 fixP = fix_new (frag_now,
606 fixP->fx_tcbit = callj;
612 fixP->fx_bit_fixP = (bit_fixS *) (size_t) numbits;
1072 fixS *fixP;
1147 fixP = fix_new_exp (frag_now,
1153 fixP->fx_bsr = callx;
1939 fixS *fixP; /* Relocation that can be done at assembly time. */
1960 fixP = fix_new (fragP,
1968 fixP->fx_bit_fixP = (bit_fixS *) 24; /* Store size of bit field. */
1992 fixS *fixP;
1998 fixP = fix_new (fragP,
2006 fixP->fx_bit_fixP = (bit_fixS *) 13; /* Size of bit field. */
2294 reloc_callj (fixS *fixP) /* Relocation that can be done at assembly time. */
2299 if (!fixP->fx_tcbit)
2303 where = fixP->fx_frag->fr_literal + fixP->fx_where;
2305 if (TC_S_IS_SYSPROC (fixP->fx_addsy))
2309 md_number_to_chars (where, CALLS | TC_S_GET_SYSPROC (fixP->fx_addsy), 4);
2313 fixP->fx_bit_fixP = (bit_fixS *) 1;
2315 else if (TC_S_IS_CALLNAME (fixP->fx_addsy))
2318 as_fatal (_("Trying to 'bal' to %s"), S_GET_NAME (fixP->fx_addsy));
2320 else if (TC_S_IS_BALNAME (fixP->fx_addsy))
2327 else if (TC_S_IS_BADPROC (fixP->fx_addsy))
2368 md_pcrel_from (fixS *fixP)
2370 return fixP->fx_where + fixP->fx_frag->fr_address;
2374 md_apply_fix (fixS *fixP,
2379 char *place = fixP->fx_where + fixP->fx_frag->fr_literal;
2381 if (!fixP->fx_bit_fixP)
2383 md_number_to_imm (place, val, fixP->fx_size);
2385 else if ((int) (size_t) fixP->fx_bit_fixP == 13
2386 && fixP->fx_addsy != NULL
2387 && S_GET_SEGMENT (fixP->fx_addsy) == undefined_section)
2393 as_bad_where (fixP->fx_file, fixP->fx_line,
2395 fixP->fx_addsy = NULL;
2398 md_number_to_field (place, val, fixP->fx_bit_fixP);
2400 if (fixP->fx_addsy == NULL)
2401 fixP->fx_done = 1;
2407 fixS *fixP,
2415 symbolP = fixP->fx_addsy;
2416 know (symbolP != 0 || fixP->fx_r_type != NO_RELOC);
2417 ri.r_bsr = fixP->fx_bsr; /*SAC LD RELAX HACK */
2419 ri.r_callj = fixP->fx_tcbit;
2420 if (fixP->fx_bit_fixP)
2423 ri.r_length = nbytes_r_length[fixP->fx_size];
2424 ri.r_pcrel = fixP->fx_pcrel;
2425 ri.r_address = fixP->fx_frag->fr_address + fixP->fx_where - segment_address_in_file;
2427 if (fixP->fx_r_type != NO_RELOC)
2429 switch (fixP->fx_r_type)
2434 ri.r_length = fixP->fx_size - 1;
2448 else if (linkrelax || !S_IS_DEFINED (symbolP) || fixP->fx_bsr)
2587 i960_validate_fix (fixS *fixP, segT this_segment_type ATTRIBUTE_UNUSED)
2589 if (fixP->fx_tcbit && TC_S_IS_CALLNAME (fixP->fx_addsy))
2593 if (!TC_S_IS_BALNAME (tc_get_bal_of_call (fixP->fx_addsy)))
2595 as_bad_where (fixP->fx_file, fixP->fx_line,
2597 S_GET_NAME (fixP->fx_addsy));
2600 fixP->fx_addsy = tc_get_bal_of_call (fixP->fx_addsy);
2609 tc_bfd_fix2rtype (fixS *fixP)
2611 if (fixP->fx_pcrel == 0 && fixP->fx_size == 4)
2614 if (fixP->fx_pcrel != 0 && fixP->fx_size == 4)
2627 tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
2634 fixP->fx_r_type = tc_bfd_fix2rtype (fixP);
2636 reloc->howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type);
2639 as_bad_where (fixP->fx_file, fixP->fx_line,
2641 fixP->fx_r_type,
2642 bfd_get_reloc_code_name (fixP->fx_r_type));
2646 gas_assert (!fixP->fx_pcrel == !reloc->howto->pc_relative);
2649 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy);
2650 reloc->address = fixP->fx_frag->fr_address + fixP->fx_where;
2651 reloc->addend = fixP->fx_addnumber;