Lines Matching refs:fix
288 /* This duplicates a good fraction of "struct fix" but we
289 can't use a "struct fix" instead since we can't call
295 enum ia64_opnd opnd; /* type of operand in need of fix */
5471 struct insn_fix *fix;
5711 fix = CURR_SLOT.fixup + CURR_SLOT.num_fixups;
5712 fix->code = BFD_RELOC_IA64_IMM64;
5715 fix->code = ia64_gen_real_reloc_type (e->X_op_symbol, fix->code);
5720 fix->opnd = idesc->operands[res_index];
5721 fix->expr = *e;
5722 fix->is_pcrel = 0;
5849 fix = CURR_SLOT.fixup + CURR_SLOT.num_fixups;
5852 fix->code = BFD_RELOC_IA64_IMM14;
5854 fix->code = BFD_RELOC_IA64_IMM22;
5858 fix->code = ia64_gen_real_reloc_type (e->X_op_symbol, fix->code);
5863 fix->opnd = idesc->operands[res_index];
5864 fix->expr = *e;
5865 fix->is_pcrel = 0;
5956 fix = CURR_SLOT.fixup + CURR_SLOT.num_fixups;
5958 fix->code = BFD_RELOC_IA64_PCREL21F;
5960 fix->code = BFD_RELOC_IA64_PCREL21M;
5962 fix->code = BFD_RELOC_IA64_PCREL21B;
5964 fix->code = BFD_RELOC_IA64_PCREL60B;
5968 fix->code = ia64_gen_real_reloc_type (e->X_op_symbol, fix->code);
5969 fix->opnd = idesc->operands[res_index];
5970 fix->expr = *e;
5971 fix->is_pcrel = 1;
5983 fix = CURR_SLOT.fixup + CURR_SLOT.num_fixups;
5986 fix->code = BFD_RELOC_UNUSED;
5987 fix->code = ia64_gen_real_reloc_type (e->X_op_symbol, fix->code);
5988 fix->opnd = idesc->operands[res_index];
5989 fix->expr = *e;
5990 fix->is_pcrel = 1;
6000 fix = CURR_SLOT.fixup + CURR_SLOT.num_fixups;
6001 fix->code = BFD_RELOC_IA64_LDXMOV;
6002 fix->opnd = idesc->operands[res_index];
6003 fix->expr = *e;
6004 fix->is_pcrel = 0;
6571 fixS *fix;
6894 /* Now is a good time to fix up the labels for this insn. */
6940 fix = fix_new_exp (frag_now, frag_now_fix () - 16 + i, 8,
6942 fix->tc_fix_data.opnd = ifix->opnd;
6943 fix->fx_file = md.slot[curr].src_file;
6944 fix->fx_line = md.slot[curr].src_line;
6949 /* This adjustment to "i" must occur after the fix, otherwise the fix
7806 struct label_fix *fix;
7812 fix = obstack_alloc (¬es, sizeof (*fix));
7813 fix->sym = sym;
7814 fix->next = CURR_SLOT.tag_fixups;
7815 fix->dw2_mark_labels = FALSE;
7816 CURR_SLOT.tag_fixups = fix;
7824 fix = obstack_alloc (¬es, sizeof (*fix));
7825 fix->sym = sym;
7826 fix->next = CURR_SLOT.label_fixups;
7827 fix->dw2_mark_labels = dwarf2_loc_mark_labels;
7828 CURR_SLOT.label_fixups = fix;
9661 dot_pred_rel () may be a better place to fix it. */
10975 ia64_fix_adjustable (fixS *fix)
10978 if (S_IS_EXTERNAL (fix->fx_addsy) || S_IS_WEAK (fix->fx_addsy))
10981 switch (fix->fx_r_type)
10999 ia64_force_relocation (fixS *fix)
11001 switch (fix->fx_r_type)
11026 return generic_force_reloc (fix);
11032 ia64_pcrel_from_section (fixS *fix, segT sec)
11034 unsigned long off = fix->fx_frag->fr_address + fix->fx_where;
11063 fixS *fix;
11129 fix = fix_new_exp (f, where, nbytes, exp, 0, code);
11131 to fix an 8 or 16 bit relocation (for which there no real
11133 fix->tc_fix_data.bigendian = target_big_endian;
11397 ia64_validate_fix (fixS *fix)
11399 switch (fix->fx_r_type)
11406 if (fix->fx_offset != 0)
11407 as_bad_where (fix->fx_file, fix->fx_line,
11416 fix_insn (fixS *fix, const struct ia64_operand *odesc, valueT value)
11423 slot = fix->fx_where & 0x3;
11424 fixpos = fix->fx_frag->fr_literal + (fix->fx_where - slot);
11462 as_bad_where (fix->fx_file, fix->fx_line, "%s", err);
11478 md_apply_fix (fixS *fix, valueT *valP, segT seg ATTRIBUTE_UNUSED)
11483 fixpos = fix->fx_frag->fr_literal + fix->fx_where;
11485 if (fix->fx_pcrel)
11487 switch (fix->fx_r_type)
11501 fix->fx_r_type = ia64_gen_real_reloc_type (pseudo_func[FUNC_PC_RELATIVE].u.sym,
11502 fix->fx_r_type);
11506 if (fix->fx_addsy)
11508 switch ((unsigned) fix->fx_r_type)
11513 as_bad_where (fix->fx_file, fix->fx_line,
11515 elf64_ia64_operands[fix->tc_fix_data.opnd].desc);
11516 fix->fx_done = 1;
11528 S_SET_THREAD_LOCAL (fix->fx_addsy);
11533 as_bad_where (fix->fx_file, fix->fx_line,
11535 fix->fx_done = 1;
11543 else if (fix->tc_fix_data.opnd == IA64_OPND_NIL)
11546 if (fix->fx_r_type == DUMMY_RELOC_IA64_SLOTCOUNT)
11573 if (fix->tc_fix_data.bigendian)
11574 number_to_chars_bigendian (fixpos, value, fix->fx_size);
11576 number_to_chars_littleendian (fixpos, value, fix->fx_size);
11577 fix->fx_done = 1;
11581 fix_insn (fix, elf64_ia64_operands + fix->tc_fix_data.opnd, value);
11582 fix->fx_done = 1;
11727 int fix = bytes & 15;
11728 memset (p, 0, fix);
11729 p += fix;
11730 bytes -= fix;
11731 fragp->fr_fix += fix;