Home | History | Annotate | Download | only in config

Lines Matching refs:reloc

397   } reloc;
491 bfd_reloc_code_real_type reloc;
1696 if (inst.reloc.type != 0)
1702 memcpy (&inst.reloc.exp, &exp, sizeof (expressionS));
1703 inst.reloc.type = BFD_RELOC_ARM_MULTI;
1704 inst.reloc.pc_rel = 0;
2127 return r->reloc;
3202 : inst.reloc.exp.X_unsigned ? 0
3218 if ((pool->literals[entry].X_op == inst.reloc.exp.X_op)
3219 && (inst.reloc.exp.X_op == O_constant)
3221 == inst.reloc.exp.X_add_number)
3224 == inst.reloc.exp.X_unsigned))
3227 if ((pool->literals[entry].X_op == inst.reloc.exp.X_op)
3228 && (inst.reloc.exp.X_op == O_symbol)
3230 == inst.reloc.exp.X_add_number)
3232 == inst.reloc.exp.X_add_symbol)
3234 == inst.reloc.exp.X_op_symbol)
3244 == inst.reloc.exp.X_unsigned)
3248 == inst.reloc.exp.X_unsigned))
3280 if (!(inst.reloc.exp.X_op == O_constant
3281 || inst.reloc.exp.X_op == O_big))
3294 pool->literals[entry] = inst.reloc.exp;
3306 pool->literals[entry] = inst.reloc.exp;
3309 pool->literals[entry].X_unsigned = inst.reloc.exp.X_unsigned;
3311 pool->literals[entry] = inst.reloc.exp;
3314 pool->literals[entry].X_unsigned = inst.reloc.exp.X_unsigned;
3321 pool->literals[entry] = inst.reloc.exp;
3337 pool->literals[entry] = inst.reloc.exp;
3341 inst.reloc.exp.X_op = O_symbol;
3342 inst.reloc.exp.X_add_number = pool_size;
3343 inst.reloc.exp.X_add_symbol = pool->symbol;
3510 int reloc;
3520 reloc = parse_reloc (&input_line_pointer);
3521 if (reloc == -1)
3527 else if (reloc == BFD_RELOC_UNUSED)
3533 (bfd_reloc_code_real_type) reloc);
3536 if (reloc == BFD_RELOC_ARM_PLT32)
3539 reloc = BFD_RELOC_UNUSED;
3567 size, &exp, 0, (enum bfd_reloc_code_real) reloc);
5143 else if (my_get_expression (&inst.reloc.exp, &p, GE_IMM_PREFIX))
5175 inst.reloc
5176 inst.reloc.exp.X_add_number = 0;
5185 if (my_get_expression (&inst.reloc.exp, str, GE_IMM_PREFIX))
5194 if (exp.X_op != O_constant || inst.reloc.exp.X_op != O_constant)
5206 if (inst.reloc.exp.X_add_number < 0 || inst.reloc.exp.X_add_number > 255)
5213 inst.operands[i].imm = inst.reloc.exp.X_add_number | value << 7;
5217 inst.reloc.type = BFD_RELOC_ARM_IMMEDIATE;
5218 inst.reloc.pc_rel = 0;
5368 if (my_get_expression (&inst.reloc.exp, str, GE_NO_PREFIX))
5372 inst.reloc.type = (bfd_reloc_code_real_type) entry->alu_code;
5373 gas_assert (inst.reloc.type != 0);
5412 to inst.operands[i] and/or inst.reloc.
5416 [Rn, #offset] .reg=Rn .reloc.exp=offset
5419 .shift_kind=shift .reloc.exp=shift_imm
5425 [Rn], #offset .reg=Rn .reloc.exp=offset
5428 .shift_kind=shift .reloc.exp=shift_imm
5437 =immediate .isreg=0 .reloc.exp=immediate
5438 label .reg=PC .reloc.pc_rel=1 .reloc.exp=label
5441 supported by the instruction, and to set inst.reloc.type. */
5455 inst.reloc.pc_rel = 1;
5460 if (my_get_expression (&inst.reloc.exp, &p, GE_OPT_PREFIX_BIG))
5463 else if (parse_big_immediate (&p, i, &inst.reloc.exp,
5538 if (my_get_expression (&inst.reloc.exp, &p, GE_NO_PREFIX))
5545 inst.reloc.type = (bfd_reloc_code_real_type) entry->ldr_code;
5549 inst.reloc.type = (bfd_reloc_code_real_type) entry->ldrs_code;
5553 inst.reloc.type = (bfd_reloc_code_real_type) entry->ldc_code;
5560 if (inst.reloc.type == 0)
5569 if (my_get_expression (&inst.reloc.exp, &p, GE_IMM_PREFIX))
5572 if (inst.reloc.exp.X_op == O_constant
5573 && inst.reloc.exp.X_add_number == 0)
5664 if (my_get_expression (&inst.reloc.exp, &p, GE_IMM_PREFIX))
5667 if (inst.reloc.exp.X_op == O_constant
5668 && inst.reloc.exp.X_add_number == 0)
5688 inst.reloc.exp.X_op = O_constant;
5689 inst.reloc.exp.X_add_number = 0;
5717 inst.reloc.type = BFD_RELOC_ARM_MOVW;
5719 inst.reloc.type = BFD_RELOC_ARM_MOVT;
5721 if (inst.reloc.type != BFD_RELOC_UNUSED)
5727 if (my_get_expression (&inst.reloc.exp, &p, GE_NO_PREFIX))
5730 if (inst.reloc.type == BFD_RELOC_UNUSED)
5732 if (inst.reloc.exp.X_op != O_constant)
5737 if (inst.reloc.exp.X_add_number < 0
5738 || inst.reloc.exp.X_add_number > 0xffff)
6159 if (inst.reloc.exp.X_add_number != 1)
6481 OP_ADDRGLDR, /* Mem addr expr (any mode) with possible LDR group reloc */
6482 OP_ADDRGLDRS, /* Mem addr expr (any mode) with possible LDRS group reloc */
6483 OP_ADDRGLDC, /* Mem addr expr (any mode) with possible LDC group reloc */
6487 OP_HALF, /* 0 .. 65535 or low/high reloc. */
6499 OP_RR_EXr, /* ARM register or expression with opt. reloc suff. */
6880 po_misc_or_fail (my_get_expression (&inst.reloc.exp, &str,
6885 po_misc_or_fail (my_get_expression (&inst.reloc.exp, &str,
6890 po_misc_or_fail (my_get_expression (&inst.reloc.exp, &str,
6892 if (inst.reloc.exp.X_op == O_symbol)
7372 inst.reloc.type = BFD_RELOC_ARM_SHIFT_IMM;
7387 if (inst.reloc.type != BFD_RELOC_ARM_IMMEDIATE)
7462 inst.reloc.type = BFD_RELOC_ARM_SHIFT_IMM;
7466 else /* immediate offset in inst.reloc */
7468 if (is_pc && !inst.reloc.pc_rel)
7485 if (inst.reloc.type == BFD_RELOC_UNUSED)
7490 inst.reloc.type = BFD_RELOC_ARM_OFFSET_IMM;
7522 else /* immediate offset in inst.reloc */
7524 constraint ((inst.operands[i].reg == REG_PC && !inst.reloc.pc_rel
7528 if (inst.reloc.type == BFD_RELOC_UNUSED)
7534 inst.reloc.type = BFD_RELOC_ARM_OFFSET_IMM8;
7737 /* inst.reloc.exp describes an "=expr" load pseudo-operation.
7764 if (inst.reloc.exp.X_op != O_constant
7765 && inst.reloc.exp.X_op != O_symbol
7766 && inst.reloc.exp.X_op != O_big)
7771 if ((inst.reloc.exp.X_op == O_constant
7772 || inst.reloc.exp.X_op == O_big)
7775 if (thumb_p && inst.reloc.exp.X_op == O_constant)
7777 if (!unified_syntax && (inst.reloc.exp.X_add_number & ~0xFF) == 0)
7781 inst.instruction |= inst.reloc.exp.X_add_number;
7785 else if (arm_p && inst.reloc.exp.X_op == O_constant)
7787 int value = encode_arm_immediate (inst.reloc.exp.X_add_number);
7797 value = encode_arm_immediate (~inst.reloc.exp.X_add_number);
7814 : inst.reloc.exp.X_unsigned
7852 inst.reloc.pc_rel = 1;
7853 inst.reloc.type = (thumb_p
7915 inst.reloc.type = (bfd_reloc_code_real_type) reloc_override;
7916 else if ((inst.reloc.type < BFD_RELOC_ARM_ALU_PC_G0_NC
7917 || inst.reloc.type > BFD_RELOC_ARM_LDC_SB_G2)
7918 && inst.reloc.type != BFD_RELOC_ARM_LDR_PC_G0)
7921 inst.reloc.type = BFD_RELOC_ARM_T32_CP_OFF_IMM;
7923 inst.reloc.type = BFD_RELOC_ARM_CP_OFF_IMM;
8029 constraint (((inst.reloc.exp.X_op != O_constant
8030 && inst.reloc.exp.X_op != O_illegal)
8031 || inst.reloc.exp.X_add_number != 0),
8065 inst.reloc.type = BFD_RELOC_ARM_IMMEDIATE;
8066 inst.reloc.pc_rel = 1;
8067 inst.reloc.exp.X_add_number -= 8;
8082 inst.reloc.type = BFD_RELOC_ARM_ADRL_IMMEDIATE;
8083 inst.reloc.pc_rel = 1;
8085 inst.reloc.exp.X_add_number -= 8;
8174 inst.reloc.type = inst.operands[0].imm == BFD_RELOC_ARM_PLT32
8179 inst.reloc.type = (bfd_reloc_code_real_type) default_reloc;
8180 inst.reloc.pc_rel = 1;
8216 Also, the <target_addr> can be 25 bits, hence has its own reloc. */
8263 inst.reloc.type = BFD_RELOC_ARM_V4BX;
8619 constraint (inst.reloc.exp.X_op != O_constant
8620 || inst.reloc.exp.X_add_number != 0,
8627 inst.reloc.type = BFD_RELOC_UNUSED;
8654 && (inst.reloc.exp.X_add_number & 0x3)),
8676 constraint (inst.reloc.exp.X_op != O_constant
8677 || inst.reloc.exp.X_add_number != 0,
8708 constraint (inst.reloc.exp.X_op != O_constant
8709 || inst.reloc.exp.X_add_number != 0,
8760 constraint (top && inst.reloc.type == BFD_RELOC_ARM_MOVW,
8762 constraint (!top && inst.reloc.type == BFD_RELOC_ARM_MOVT,
8765 if (inst.reloc.type == BFD_RELOC_UNUSED)
8767 imm = inst.reloc.exp.X_add_number;
8894 inst.reloc.type = BFD_RELOC_ARM_IMMEDIATE;
8895 inst.reloc.pc_rel = 0;
9133 inst.reloc.type = BFD_RELOC_ARM_SHIFT_IMM;
9139 inst.reloc.type = BFD_RELOC_ARM_SMC;
9140 inst.reloc.pc_rel = 0;
9146 inst.reloc.type = BFD_RELOC_ARM_HVC;
9147 inst.reloc.pc_rel = 0;
9153 inst.reloc.type = BFD_RELOC_ARM_SWI;
9154 inst.reloc.pc_rel = 0;
9238 constraint (inst.reloc.exp.X_op != O_constant
9239 || inst.reloc.exp.X_add_number != 0,
9245 inst.reloc.type = BFD_RELOC_UNUSED;
9634 constraint (inst.reloc.exp.X_op != O_constant
9635 || inst.reloc.exp.X_add_number != 0,
9639 inst.reloc.exp.X_add_number = 12 * inst.operands[1].imm;
9642 inst.reloc.exp.X_add_number = -inst.reloc.exp.X_add_number;
9724 int reloc;
9727 reloc = BFD_RELOC_ARM_T32_CP_OFF_IMM_S2;
9729 reloc = BFD_RELOC_ARM_CP_OFF_IMM_S2;
9730 encode_arm_cp_address (1, TRUE, FALSE, reloc);
9763 inst.instruction |= inst.reloc.exp.X_add_number << 4;
9938 unsigned int value = inst.reloc.exp.X_add_number;
9948 constraint (inst.reloc.exp.X_op != O_constant,
10000 constraint (inst.reloc.exp.X_op != O_constant,
10002 constraint (inst.reloc.exp.X_add_number < 0
10003 || inst.reloc.exp.X_add_number > 3,
10005 inst.instruction |= inst.reloc.exp.X_add_number << 4;
10007 inst.reloc.type = BFD_RELOC_UNUSED;
10029 inst.reloc.type = BFD_RELOC_ARM_T32_OFFSET_IMM;
10041 inst.reloc.type = BFD_RELOC_ARM_T32_OFFSET_IMM;
10173 inst.reloc.type = BFD_RELOC_ARM_T32_IMM12;
10234 inst.reloc.type = BFD_RELOC_ARM_THUMB_ADD;
10249 constraint (inst.reloc.exp.X_op != O_constant,
10251 constraint (inst.reloc.exp.X_add_number < 0
10252 || inst.reloc.exp.X_add_number > 0xff,
10255 | inst.reloc.exp.X_add_number;
10256 inst.reloc.type = BFD_RELOC_UNUSED;
10263 inst.reloc.type = BFD_RELOC_ARM_T32_IMM12;
10271 inst.reloc.type = BFD_RELOC_ARM_T32_IMMEDIATE;
10273 inst.reloc.type = BFD_RELOC_ARM_T32_ADD_IMM;
10281 unsigned int value = inst.reloc.exp.X_add_number;
10356 inst.reloc.type = BFD_RELOC_ARM_THUMB_ADD;
10407 inst.reloc.type = BFD_RELOC_ARM_T32_ADD_PC12;
10408 inst.reloc.pc_rel = 1;
10414 inst.reloc.type = BFD_RELOC_ARM_THUMB_ADD;
10415 inst.reloc.exp.X_add_number -= 4; /* PC relative adjust. */
10416 inst.reloc.pc_rel = 1;
10454 inst.reloc.type = BFD_RELOC_ARM_T32_IMMEDIATE;
10542 inst.reloc.type = BFD_RELOC_ARM_T32_IMMEDIATE;
10712 int reloc;
10735 || inst.reloc.exp.X_op == O_constant))))
10739 reloc = BFD_RELOC_THUMB_PCREL_BRANCH25;
10744 reloc = BFD_RELOC_THUMB_PCREL_BRANCH20;
10751 reloc = BFD_RELOC_THUMB_PCREL_BRANCH12;
10755 reloc = BFD_RELOC_THUMB_PCREL_BRANCH9;
10761 inst.reloc.type = reloc;
10762 inst.reloc.pc_rel = 1;
10802 this file. We used to simply ignore the PLT reloc type here --
10804 So if we see a PLT reloc now, put it back to how it used to be to
10806 if (inst.reloc.type == BFD_RELOC_ARM_PLT32)
10807 inst.reloc.type = BFD_RELOC_THUMB_PCREL_BRANCH23;
10814 if ( inst.reloc.exp.X_op == O_symbol
10815 && inst.reloc.exp.X_add_symbol != NULL
10816 && S_IS_DEFINED (inst.reloc.exp.X_add_symbol)
10817 && ! THUMB_IS_FUNC (inst.reloc.exp.X_add_symbol))
10818 inst.reloc.exp.X_add_symbol =
10819 find_real_start (inst.reloc.exp.X_add_symbol);
10828 /* ??? FIXME: Should add a hacky reloc here if reg is REG_PC. The reloc
10921 inst.reloc.pc_rel = 1;
10922 inst.reloc.type = BFD_RELOC_THUMB_PCREL_BRANCH7;
11070 constraint (inst.reloc.type != BFD_RELOC_UNUSED,
11207 inst.reloc.type = BFD_RELOC_ARM_T32_OFFSET_U8;
11277 if (inst.reloc.pc_rel)
11298 inst.reloc.type = BFD_RELOC_ARM_THUMB_OFFSET;
11377 inst.reloc.type = BFD_RELOC_ARM_THUMB_OFFSET;
11387 inst.reloc.type = BFD_RELOC_ARM_THUMB_OFFSET;
11585 inst.reloc.type = BFD_RELOC_ARM_THUMB_IMM;
11594 inst.reloc.type = BFD_RELOC_ARM_T32_IMMEDIATE;
11681 inst.reloc.type = BFD_RELOC_ARM_THUMB_SHIFT;
11779 inst.reloc.type = BFD_RELOC_ARM_THUMB_IMM;
11791 if (inst.reloc.type == BFD_RELOC_ARM_MOVW)
11794 inst.reloc.type = BFD_RELOC_ARM_THUMB_MOVW;
11796 else if (inst.reloc.type == BFD_RELOC_ARM_MOVT)
11799 inst.reloc.type = BFD_RELOC_ARM_THUMB_MOVT;
11806 if (inst.reloc.type == BFD_RELOC_UNUSED)
11808 imm = inst.reloc.exp.X_add_number;
11858 inst.reloc.type = BFD_RELOC_ARM_T32_IMMEDIATE;
12168 inst.reloc.type = BFD_RELOC_ARM_T32_IMMEDIATE;
12202 unsigned int val = inst.reloc.exp.X_add_number;
12203 constraint (inst.reloc.exp.X_op != O_constant,
12243 constraint (inst.reloc.type != BFD_RELOC_UNUSED,
12361 if (inst.reloc.exp.X_op != O_constant
12362 || inst.reloc.exp.X_add_number != 0)
12369 inst.reloc.type = BFD_RELOC_UNUSED;
12377 inst.reloc.type = BFD_RELOC_ARM_T32_IMMEDIATE;
12461 inst.reloc.type = BFD_RELOC_UNUSED;
12493 inst.reloc.type = BFD_RELOC_ARM_THUMB_SHIFT;
12537 inst.reloc.type = BFD_RELOC_ARM_THUMB_SHIFT;
12583 unsigned int value = inst.reloc.exp.X_add_number;
12586 constraint (inst.reloc.exp.X_op != O_constant,
12588 inst.reloc.type = BFD_RELOC_UNUSED;
12599 unsigned int value = inst.reloc.exp.X_add_number;
12601 inst.reloc.type = BFD_RELOC_UNUSED;
12623 offsetT shift_amount = inst.reloc.exp.X_add_number;
12625 inst.reloc.type = BFD_RELOC_UNUSED;
12627 constraint (inst.reloc.exp.X_op != O_constant,
12680 inst.reloc.type = BFD_RELOC_ARM_T32_OFFSET_U8;
12769 inst.reloc.type = BFD_RELOC_ARM_SWI;
16422 constraint (inst.reloc.exp.X_op != O_constant
16423 || inst.reloc.exp.X_add_number != 0,
16797 int reloc)
16831 (enum bfd_reloc_code_real) reloc);
16836 pc_rel, (enum bfd_reloc_code_real) reloc);
16857 switch (inst.reloc.exp.X_op)
16860 sym = inst.reloc.exp.X_add_symbol;
16861 offset = inst.reloc.exp.X_add_number;
16865 offset = inst.reloc.exp.X_add_number;
16868 sym = make_expr_symbol (&inst.reloc.exp);
16924 if (inst.reloc.type != BFD_RELOC_UNUSED)
16926 inst.size, & inst.reloc.exp, inst.reloc.pc_rel,
16927 inst.reloc.type);
17592 inst.reloc.type = BFD_RELOC_UNUSED;
21544 we must account for the offset by +8, as the OS loader will never see the reloc.
21919 not have a reloc for it, so tc_gen_reloc will reject it. */
22252 not have a reloc for it, so tc_gen_reloc will reject it. */
22659 during reloc processing later. */
23138 arelent * reloc;
23141 reloc = (arelent *) xmalloc (sizeof (arelent));
23143 reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
23144 *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
23145 reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
23152 fixp->fx_offset = reloc->address;
23154 reloc->addend = fixp->fx_offset;
23299 reloc->addend -= (*reloc->sym_ptr_ptr)->value;
23369 reloc->addend = fixp->fx_offset = reloc->address;
23373 reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
23375 if (reloc->howto == NULL)
23386 reloc->address = fixp->fx_offset;
23388 return reloc;
23398 bfd_reloc_code_real_type reloc)
23402 /* Pick a reloc.
23407 reloc = BFD_RELOC_8;
23410 reloc = BFD_RELOC_16;
23414 reloc = BFD_RELOC_32;
23417 reloc = BFD_RELOC_64;
23425 reloc = BFD_RELOC_32_SECREL;
23429 fix_new_exp (frag, where, size, exp, pcrel, reloc);
23858 if (arm_is_eabi() && entry->reloc == BFD_RELOC_ARM_PLT32)
23860 entry->reloc