Add support for .extCondCode, .extCoreRegister and .extAuxRegister.
authorClaudiu Zissulescu <claziss@synopsys.com>
Wed, 6 Apr 2016 14:08:04 +0000 (16:08 +0200)
committerClaudiu Zissulescu <claziss@synopsys.com>
Tue, 12 Apr 2016 08:21:06 +0000 (10:21 +0200)
commitf36e33dac1a97cca8f79ca8b20cf0fb05f1e25f4
tree36f13760bc5525172fce20159ffd3500e5ad17fd
parent1c2e355e4830814e18329a53d01cfa634d576211
Add support for .extCondCode, .extCoreRegister and .extAuxRegister.

gas/
2016-04-05  Claudiu Zissulescu  <claziss@synopsys.com>

* testsuite/gas/arc/textauxregister.d: New file.
* testsuite/gas/arc/textauxregister.s: Likewise.
* testsuite/gas/arc/textcondcode.d: Likewise.
* testsuite/gas/arc/textcondcode.s: Likewise.
* testsuite/gas/arc/textcoreregister.d: Likewise.
* testsuite/gas/arc/textcoreregister.s: Likewise.
* testsuite/gas/arc/textpseudoop.d: Likewise.
* testsuite/gas/arc/textpseudoop.s: Likewise.
* testsuite/gas/arc/ld2.d: Update test.
* testsuite/gas/arc/st.d: Likewise.
* testsuite/gas/arc/taux.d: Likewise.
* doc/c-arc.texi (ARC Directives): Add .extCondCode,
.extCoreRegister and .extAuxRegister documentation.
* config/tc-arc.c (arc_extcorereg): New function.
(md_pseudo_table): Add .extCondCode, .extCoreRegister and
.extAuxRegister pseudo-ops.
(extRegister_t): New type.
(ext_condcode, arc_aux_hash): New global variable.
(find_opcode_match): Check for extensions.
(preprocess_operands): Likewise.
(md_begin): Add aux registers in a hash.
(assemble_insn): Update use arc_flags member.
(tokenize_extregister): New function.
(create_extcore_section): Likewise.
* config/tc-arc.h (MAX_FLAG_NAME_LENGHT): Increase to 10.
(arc_flags): Delete code, add flgp.

include/
2016-04-05  Claudiu Zissulescu  <claziss@synopsys.com>

* opcode/arc.h (flag_class_t): Update.
(ARC_OPCODE_NONE): Define.
(ARC_OPCODE_ARCALL): Likewise.
(ARC_OPCODE_ARCFPX): Likewise.
(ARC_REGISTER_READONLY): Likewise.
(ARC_REGISTER_WRITEONLY): Likewise.
(ARC_REGISTER_NOSHORT_CUT): Likewise.
(arc_aux_reg): Add cpu.

opcodes/
2016-04-05  Claudiu Zissulescu  <claziss@synopsys.com>

* arc-dis.c (find_format): Check for extension flags.
(print_flags): New function.
(print_insn_arc): Update for .extCondCode, .extCoreRegister and
.extAuxRegister.
* arc-ext.c (arcExtMap_coreRegName): Use
LAST_EXTENSION_CORE_REGISTER.
(arcExtMap_coreReadWrite): Likewise.
(dump_ARC_extmap): Update printing.
* arc-opc.c (arc_flag_classes): Add F_CLASS_EXTEND flag.
(arc_aux_regs): Add cpu field.
* arc-regs.h: Add cpu field, lower case name aux registers.

Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
23 files changed:
gas/ChangeLog
gas/NEWS
gas/config/tc-arc.c
gas/config/tc-arc.h
gas/doc/c-arc.texi
gas/testsuite/gas/arc/ld2.d
gas/testsuite/gas/arc/st.d
gas/testsuite/gas/arc/taux.d
gas/testsuite/gas/arc/textauxregister.d [new file with mode: 0644]
gas/testsuite/gas/arc/textauxregister.s [new file with mode: 0644]
gas/testsuite/gas/arc/textcondcode.d [new file with mode: 0644]
gas/testsuite/gas/arc/textcondcode.s [new file with mode: 0644]
gas/testsuite/gas/arc/textcoreregister.d [new file with mode: 0644]
gas/testsuite/gas/arc/textcoreregister.s [new file with mode: 0644]
gas/testsuite/gas/arc/textpseudoop.d [new file with mode: 0644]
gas/testsuite/gas/arc/textpseudoop.s [new file with mode: 0644]
include/ChangeLog
include/opcode/arc.h
opcodes/ChangeLog
opcodes/arc-dis.c
opcodes/arc-ext.c
opcodes/arc-opc.c
opcodes/arc-regs.h