Lines Matching refs:reloc
106 struct reloc
129 struct reloc reloc;
263 bfd_reloc_code_real_type reloc;
1819 struct reloc_table_entry *reloc;
1830 reloc = find_reloc_table_entry (&input_line_pointer);
1831 if (reloc == NULL)
2241 my_get_expression (&inst.reloc.exp, &ptr, GE_OPT_PREFIX, 1);
2243 if (inst.reloc.exp.X_op == O_constant)
2244 *imm = inst.reloc.exp.X_add_number;
2256 aarch64_set_gas_internal_fixup (struct reloc *reloc,
2260 reloc->type = BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP;
2261 reloc->opnd = operand->type;
2263 reloc->need_libopcodes_p = 1;
2272 return inst.reloc.type == BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP;
2276 RELOC->EXP is a constant expression; otherwise, flag that *OPERAND
2281 assign_imm_if_const_or_fixup_later (struct reloc *reloc,
2287 if (reloc->exp.X_op == O_constant)
2290 operand->addr.offset.imm = reloc->exp.X_add_number;
2292 operand->imm.value = reloc->exp.X_add_number;
2293 reloc->type = BFD_RELOC_UNUSED;
2297 aarch64_set_gas_internal_fixup (reloc, operand, need_libopcodes_p);
2726 if (! my_get_expression (&inst.reloc.exp, &p, GE_OPT_PREFIX, 1))
2849 if (! my_get_expression (&inst.reloc.exp, str, GE_NO_PREFIX, 1))
2853 inst.reloc.type = entry->add_type;
2854 inst.reloc.pc_rel = entry->pc_rel;
2860 /* Otherwise, we have a shifted reloc modifier, so rewind to
2870 to *OPERAND and/or inst.reloc.
2917 supported by the instruction, and to set inst.reloc.type. */
2920 parse_address_main (char **str, aarch64_opnd_info *operand, int reloc,
2926 expressionS *exp = &inst.reloc.exp;
2936 if (reloc && skip_past_char (&p, ':'))
2966 inst.reloc.type = entry->ldst_type;
2967 inst.reloc.pc_rel = entry->pc_rel;
3044 if (reloc && skip_past_char (&p, ':'))
3076 inst.reloc.type = entry->ldst_type;
3077 inst.reloc.pc_rel = entry->pc_rel;
3149 inst.reloc.exp.X_op = O_constant;
3150 inst.reloc.exp.X_add_number = 0;
3205 inst.reloc.type = entry->movw_type;
3216 if (! my_get_expression (&inst.reloc.exp, &p, GE_NO_PREFIX, 1))
3252 inst.reloc.type = entry->adrp_type;
3255 inst.reloc.type = BFD_RELOC_AARCH64_ADR_HI21_PCREL;
3257 inst.reloc.pc_rel = 1;
3259 if (! my_get_expression (&inst.reloc.exp, &p, GE_NO_PREFIX, 1))
3534 short int size, expressionS * exp, int pc_rel, int reloc)
3544 new_fix = fix_new_exp (frag, where, size, exp, pc_rel, reloc);
3549 pc_rel, reloc);
3632 instruction->reloc.type = BFD_RELOC_UNUSED;
4218 if (inst.reloc.type != BFD_RELOC_UNUSED)
4221 INSN_SIZE, &inst.reloc.exp,
4222 inst.reloc.pc_rel,
4223 inst.reloc.type);
4232 gas_assert (inst.reloc.opnd != AARCH64_OPND_NIL);
4233 fixp->tc_fix_data.opnd = inst.reloc.opnd;
4234 fixp->fx_addnumber = inst.reloc.flags;
4427 inst.reloc.type = BFD_RELOC_UNUSED;
4450 switch (inst.reloc.type)
4467 switch (inst.reloc.type)
4533 /* Determine and return the real reloc type code for an instruction
4534 with the pseudo reloc type code BFD_RELOC_AARCH64_LDST_LO12. */
4549 gas_assert (inst.reloc.type == BFD_RELOC_AARCH64_LDST_LO12);
4864 po_misc_or_fail (my_get_expression (&inst.reloc.exp, &str,
4871 aarch64_set_gas_internal_fixup (&inst.reloc, info, 1);
4880 assign_imm_if_const_or_fixup_later (&inst.reloc, info,
4930 assign_imm_if_const_or_fixup_later (&inst.reloc, info,
4944 switch (inst.reloc.type)
4950 aarch64_set_gas_internal_fixup (&inst.reloc, info, 0);
4952 inst.reloc.flags = FIXUP_F_HAS_EXPLICIT_SHIFT;
4953 inst.reloc.pc_rel = 0;
4974 aarch64_set_gas_internal_fixup (&inst.reloc, info, 0);
4997 po_misc_or_fail (parse_immediate_expression (&str, &inst.reloc.exp));
4998 assign_imm_if_const_or_fixup_later (&inst.reloc, info,
5060 if (inst.reloc.exp.X_op == O_symbol && find_reloc_table_entry (&str))
5065 if (inst.reloc.exp.X_op == O_constant && !inst.gen_lit_pool)
5067 info->imm.value = inst.reloc.exp.X_add_number;
5068 inst.reloc.type = BFD_RELOC_UNUSED;
5073 if (inst.reloc.type == BFD_RELOC_UNUSED)
5080 inst.reloc.type = BFD_RELOC_AARCH64_BRANCH19;
5085 inst.reloc.type = BFD_RELOC_AARCH64_TSTBR14;
5090 inst.reloc.type =
5096 inst.reloc.type = BFD_RELOC_AARCH64_LD_LO19_PCREL;
5100 inst.reloc.type = BFD_RELOC_AARCH64_ADR_LO21_PCREL;
5106 inst.reloc.pc_rel = 1;
5159 assign_imm_if_const_or_fixup_later (&inst.reloc, info,
5176 if (inst.reloc.type != BFD_RELOC_UNUSED)
5181 assign_imm_if_const_or_fixup_later (&inst.reloc, info,
5195 if (inst.reloc.type == BFD_RELOC_UNUSED)
5196 aarch64_set_gas_internal_fixup (&inst.reloc, info, 1);
5197 else if (inst.reloc.type == BFD_RELOC_AARCH64_LDST_LO12)
5198 inst.reloc.type = ldst_lo12_determine_real_reloc_type ();
5212 if (inst.reloc.exp.X_op == O_constant)
5213 info->addr.offset.imm = inst.reloc.exp.X_add_number;
5437 if (instr->reloc.exp.X_op != O_constant
5438 && instr->reloc.exp.X_op != O_big
5439 && instr->reloc.exp.X_op != O_symbol)
5446 if (! add_to_lit_pool (&instr->reloc.exp, size))
5556 inst.reloc.type = BFD_RELOC_UNUSED;
5630 if (inst.reloc.type == BFD_RELOC_UNUSED
5631 || !inst.reloc.need_libopcodes_p)
5638 gas_assert (inst.reloc.type != BFD_RELOC_UNUSED);
6419 in fact we generate an error because we do not have a reloc
6686 arelent *reloc;
6689 reloc = xmalloc (sizeof (arelent));
6691 reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *));
6692 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
6693 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
6700 fixp->fx_offset = reloc->address;
6702 reloc->addend = fixp->fx_offset;
6726 reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
6727 if (reloc->howto == NULL)
6736 return reloc;
6747 /* Pick a reloc.