[ARC] Fix assembler relaxation.
authorClaudiu Zissulescu <claziss@synopsys.com>
Wed, 15 Feb 2017 10:57:51 +0000 (11:57 +0100)
committerClaudiu Zissulescu <claziss@synopsys.com>
Wed, 15 Feb 2017 11:02:28 +0000 (12:02 +0100)
commitcc07cda69e26ef28895086e1f214ddd1d3cb939d
treec221de4efbefdc22bec9a4178caa306784847d40
parent7c723eecec713e1de9a95017aac29a40f3b9853a
[ARC] Fix assembler relaxation.

Fix assembler relaxation step for add, ld, mov, mpy and sub
instructions. Add tests to it.

gas/
2017-02-15  Claudiu Zissulescu  <claziss@synopsys.com>

* config/tc-arc.c (md_convert_frag): Remove @pcl relocation
information from input expression.
(assemble_insn): Make sure pcrel is correctly set.
(arc_pcrel_adjust): Compensate for PCL rounding.
* testsuite/gas/arc/relax-add01.d: New file.
* testsuite/gas/arc/relax-add01.s: Likewise.
* testsuite/gas/arc/relax-add02.d: Likewise.
* testsuite/gas/arc/relax-add02.s: Likewise.
* testsuite/gas/arc/relax-add03.d: Likewise.
* testsuite/gas/arc/relax-add03.s: Likewise.
* testsuite/gas/arc/relax-add04.d: Likewise.
* testsuite/gas/arc/relax-add04.s: Likewise.
* testsuite/gas/arc/relax-ld01.d: Likewise.
* testsuite/gas/arc/relax-ld01.s: Likewise.
* testsuite/gas/arc/relax-ld02.d: Likewise.
* testsuite/gas/arc/relax-ld02.s: Likewise.
* testsuite/gas/arc/relax-mov01.d: Likewise.
* testsuite/gas/arc/relax-mov01.s: Likewise.
* testsuite/gas/arc/relax-mov02.d: Likewise.
* testsuite/gas/arc/relax-mov02.s: Likewise.
* testsuite/gas/arc/relax-mpy01.d: Likewise.
* testsuite/gas/arc/relax-mpy01.s: Likewise.
* testsuite/gas/arc/relax-sub01.d: Likewise.
* testsuite/gas/arc/relax-sub01.s: Likewise.
* testsuite/gas/arc/relax-sub02.d: Likewise.
* testsuite/gas/arc/relax-sub02.s: Likewise.
* testsuite/gas/arc/relax-sub03.d: Likewise.
* testsuite/gas/arc/relax-sub03.s: Likewise.
* testsuite/gas/arc/relax-sub04.d: Likewise.
* testsuite/gas/arc/relax-sub04.s: Likewise.

opcodes/
2017-02-15  Claudiu Zissulescu  <claziss@synopsys.com>

* arc-opc.c (UIMM6_20R): Define.
(SIMM12_20): Use above.
(SIMM12_20R): Define.
(SIMM3_5_S): Use above.
(UIMM7_A32_11R_S): Define.
(UIMM7_9_S): Use above.
(UIMM3_13R_S): Define.
(SIMM11_A32_7_S): Use above.
(SIMM9_8R): Define.
(UIMM10_A32_8_S): Use above.
(UIMM8_8R_S): Define.
(W6): Use above.
(arc_relax_opcodes): Use all above defines.
30 files changed:
gas/ChangeLog
gas/config/tc-arc.c
gas/testsuite/gas/arc/relax-add01.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-add01.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-add02.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-add02.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-add03.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-add03.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-add04.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-add04.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-ld01.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-ld01.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-ld02.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-ld02.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-mov01.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-mov01.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-mov02.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-mov02.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-mpy01.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-mpy01.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-sub01.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-sub01.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-sub02.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-sub02.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-sub03.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-sub03.s [new file with mode: 0644]
gas/testsuite/gas/arc/relax-sub04.d [new file with mode: 0644]
gas/testsuite/gas/arc/relax-sub04.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/arc-opc.c