[ARC] Don't allow pc-rel relocations for J* instructions.
gas/ 2016-04-05 Claudiu Zissulescu <claziss@synopsys.com> * config/tc-arc.c (assemble_insn): Prohibit pc-rel relocations for JUMP instructions type. * testsuite/gas/arc/relocs-errors.d: New file. * testsuite/gas/arc/relocs-errors.err: Likewise. * testsuite/gas/arc/relocs-errors.s: Likewise.
This commit is contained in:
parent
1f599d0e7b
commit
6ec1f28285
5 changed files with 28 additions and 1 deletions
|
@ -1,3 +1,11 @@
|
|||
2016-04-05 Claudiu Zissulescu <claziss@synopsys.com>
|
||||
|
||||
* config/tc-arc.c (assemble_insn): Prohibit pc-rel relocations for
|
||||
JUMP instructions type.
|
||||
* testsuite/gas/arc/relocs-errors.d: New file.
|
||||
* testsuite/gas/arc/relocs-errors.err: Likewise.
|
||||
* testsuite/gas/arc/relocs-errors.s: Likewise.
|
||||
|
||||
2016-04-04 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR gas/19498
|
||||
|
|
|
@ -3363,6 +3363,10 @@ assemble_insn (const struct arc_opcode *opcode,
|
|||
switch (t->X_md)
|
||||
{
|
||||
case O_plt:
|
||||
if (opcode->class == JUMP)
|
||||
as_bad_where (frag_now->fr_file, frag_now->fr_line,
|
||||
_("Unable to use @plt relocatio for insn %s"),
|
||||
opcode->name);
|
||||
needGOTSymbol = TRUE;
|
||||
reloc = find_reloc ("plt", opcode->name,
|
||||
pflags, nflg,
|
||||
|
@ -3376,7 +3380,7 @@ assemble_insn (const struct arc_opcode *opcode,
|
|||
break;
|
||||
case O_pcl:
|
||||
reloc = ARC_RELOC_TABLE (t->X_md)->reloc;
|
||||
if (ARC_SHORT (opcode->mask))
|
||||
if (ARC_SHORT (opcode->mask) || opcode->class == JUMP)
|
||||
as_bad_where (frag_now->fr_file, frag_now->fr_line,
|
||||
_("Unable to use @pcl relocation for insn %s"),
|
||||
opcode->name);
|
||||
|
|
1
gas/testsuite/gas/arc/relocs-errors.d
Normal file
1
gas/testsuite/gas/arc/relocs-errors.d
Normal file
|
@ -0,0 +1 @@
|
|||
#error-output: relocs-errors.err
|
7
gas/testsuite/gas/arc/relocs-errors.err
Normal file
7
gas/testsuite/gas/arc/relocs-errors.err
Normal file
|
@ -0,0 +1,7 @@
|
|||
[^:]*: Assembler messages:
|
||||
[^:]*:1: Error: Unable to use @plt relocatio for insn j
|
||||
[^:]*:2: Error: Unable to use @plt relocatio for insn jl
|
||||
[^:]*:3: Error: Unable to use @plt relocatio for insn j
|
||||
[^:]*:5: Error: Unable to use @pcl relocation for insn j
|
||||
[^:]*:6: Error: Unable to use @pcl relocation for insn jl
|
||||
[^:]*:7: Error: Unable to use @pcl relocation for insn j
|
7
gas/testsuite/gas/arc/relocs-errors.s
Normal file
7
gas/testsuite/gas/arc/relocs-errors.s
Normal file
|
@ -0,0 +1,7 @@
|
|||
j sym@plt
|
||||
jl sym@plt
|
||||
jeq sym@plt
|
||||
|
||||
j sym@pcl
|
||||
jl sym@pcl
|
||||
jeq sym@pcl
|
Loading…
Add table
Reference in a new issue