]> gcc.gnu.org Git - gcc.git/commit
Add support for 1,024 bit DMR registers.
authorMichael Meissner <meissner@linux.ibm.com>
Wed, 9 Nov 2022 05:55:45 +0000 (00:55 -0500)
committerMichael Meissner <meissner@linux.ibm.com>
Thu, 17 Nov 2022 21:50:38 +0000 (16:50 -0500)
commitbf2ade48353892d5c2db2d414601d31eb5610fb7
tree880fd6aee5acfd62404fd1628cec947e5ed6f81c
parent574941a4fb522497f11c1f2df4a3cb4b9709a6aa
Add support for 1,024 bit DMR registers.

2022-11-09   Michael Meissner  <meissner@linux.ibm.com>

gcc/

* config/rs6000/mma.md (UNSPEC_DM_INSERT512_UPPER): New unspec.
(UNSPEC_DM_INSERT512_LOWER): Likewise.
(UNSPEC_DM_EXTRACT512): Likewise.
(UNSPEC_DMR_RELOAD_FROM_MEMORY): Likewise.
(UNSPEC_DMR_RELOAD_TO_MEMORY): Likewise.
(movtdo): New define_expand and define_insn_and_split to implement 1,024
bit DMR registers.
(movtdo_insert512_upper): New insn.
(movtdo_insert512_lower): Likewise.
(movtdo_extract512): Likewise.
(reload_dmr_from_memory): Likewise.
(reload_dmr_to_memory): Likewise.
* config/rs6000/rs6000-builtin.cc (rs6000_type_string): Add DMR
support.
(rs6000_init_builtins): Add support for __dmr keyword.
* config/rs6000/rs6000-call.cc (rs6000_return_in_memory): Add support
for TDOmode.
(rs6000_function_arg): Likewise.
* config/rs6000/rs6000-modes.def (TDOmode): New mode.
* config/rs6000/rs6000.cc (rs6000_hard_regno_nregs_internal): Add
support for TDOmode.
(rs6000_hard_regno_mode_ok_uncached): Likewise.
(rs6000_hard_regno_mode_ok): Likewise.
(rs6000_modes_tieable_p): Likewise.
(rs6000_debug_reg_global): Likewise.
(rs6000_setup_reg_addr_masks): Likewise.
(rs6000_init_hard_regno_mode_ok): Add support for TDOmode.  Setup reload
hooks for DMR mode.
(reg_offset_addressing_ok_p): Add support for TDOmode.
(rs6000_emit_move): Likewise.
(rs6000_secondary_reload_simple_move): Likewise.
(rs6000_secondary_reload_class): Likewise.
(rs6000_mangle_type): Add mangling for __dmr type.
(rs6000_dmr_register_move_cost): Add support for TDOmode.
(rs6000_split_multireg_move): Likewise.
(rs6000_invalid_conversion): Likewise.
* config/rs6000/rs6000.h (VECTOR_ALIGNMENT_P): Add TDOmode.
(enum rs6000_builtin_type_index): Add DMR type nodes.
(dmr_type_node): Likewise.
(ptr_dmr_type_node): Likewise.

gcc/testsuite/

* gcc.target/powerpc/dm-1024bit.c: New test.
gcc/config/rs6000/mma.md
gcc/config/rs6000/rs6000-builtin.cc
gcc/config/rs6000/rs6000-call.cc
gcc/config/rs6000/rs6000-modes.def
gcc/config/rs6000/rs6000.cc
gcc/config/rs6000/rs6000.h
gcc/testsuite/gcc.target/powerpc/dm-1024bit.c [new file with mode: 0644]
This page took 0.063476 seconds and 6 git commands to generate.