[ARC] Add basic support for double load and store instructions
authorClaudiu Zissulescu <claziss@synopsys.com>
Mon, 25 Jan 2016 11:15:58 +0000 (12:15 +0100)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Mon, 25 Jan 2016 11:15:58 +0000 (12:15 +0100)
commitd34a0fdc03bf55b287d884a9138e3965387af4b1
treea518e7e353c9e58626c676f4a558352d9ee4df96
parent02ef53f28854628ee15784bf860e7db24427a18f
[ARC] Add basic support for double load and store instructions

gcc/
2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
(arc_init): Check validity mll64 option.
(arc_save_restore): Use double load/store instruction.
(arc_expand_movmem): Likewise.
(arc_split_move): Don't split if we have double load/store
instructions. Returns a boolean.
(arc_process_double_reg_moves): Change function to return boolean
instead of a sequence of instructions.
(arc_dwarf_register_span): New function.
* config/arc/arc-protos.h (arc_split_move): Change prototype.
* config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
* config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
(*movdf_insn): Likewise.
* config/arc/arc.opt (mll64): New option.
* config/arc/predicates.md (even_register_operand): New predicate.
* doc/invoke.texi (ARC Options): Add mll64 documentation.

From-SVN: r232788
gcc/ChangeLog
gcc/config/arc/arc-protos.h
gcc/config/arc/arc.c
gcc/config/arc/arc.h
gcc/config/arc/arc.md
gcc/config/arc/arc.opt
gcc/config/arc/predicates.md
gcc/doc/invoke.texi