diff options
author | Tom de Vries <tom@codesourcery.com> | 2017-06-06 12:25:04 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2017-06-06 12:25:04 +0000 |
commit | 38827811dd5d0e07c8f31d780732d3e429aee4fa (patch) | |
tree | c3f3cce8d8616710b732b23c304fff408d5f85e8 | |
parent | 02e4a6ff04da7ce6b7289541abbdf96fd00d1d15 (diff) | |
download | gcc-38827811dd5d0e07c8f31d780732d3e429aee4fa.zip gcc-38827811dd5d0e07c8f31d780732d3e429aee4fa.tar.gz gcc-38827811dd5d0e07c8f31d780732d3e429aee4fa.tar.bz2 |
Add and use split_mode_p
2017-06-06 Tom de Vries <tom@codesourcery.com>
* config/nvptx/nvptx.c (split_mode_p): New function.
(nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
From-SVN: r248918
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/nvptx/nvptx.c | 17 |
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aeeadfb..245ec28 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2017-06-06 Tom de Vries <tom@codesourcery.com> + * config/nvptx/nvptx.c (split_mode_p): New function. + (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p. + +2017-06-06 Tom de Vries <tom@codesourcery.com> + * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode. 2017-06-06 Jan Hubicka <hubicka@ucw.cz> diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 75ecc94..2eb5570 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -328,6 +328,14 @@ maybe_split_mode (machine_mode mode) return VOIDmode; } +/* Return true if mode should be treated as two registers. */ + +static bool +split_mode_p (machine_mode mode) +{ + return maybe_split_mode (mode) != VOIDmode; +} + /* Output a register, subreg, or register pair (with optional enclosing braces). */ @@ -1277,7 +1285,7 @@ nvptx_declare_function_name (FILE *file, const char *name, const_tree decl) machine_mode mode = PSEUDO_REGNO_MODE (i); machine_mode split = maybe_split_mode (mode); - if (split != VOIDmode) + if (split_mode_p (mode)) mode = split; fprintf (file, "\t.reg%s ", nvptx_ptx_type_from_mode (mode, true)); output_reg (file, i, split, -2); @@ -2396,9 +2404,8 @@ nvptx_print_operand (FILE *file, rtx x, int code) if (x_code == SUBREG) { mode = GET_MODE (SUBREG_REG (x)); - machine_mode split = maybe_split_mode (mode); - if (split != VOIDmode) - mode = split; + if (split_mode_p (mode)) + mode = maybe_split_mode (mode); } fprintf (file, "%s", nvptx_ptx_type_from_mode (mode, code == 't')); break; @@ -2499,7 +2506,7 @@ nvptx_print_operand (FILE *file, rtx x, int code) machine_mode inner_mode = GET_MODE (inner_x); machine_mode split = maybe_split_mode (inner_mode); - if (split != VOIDmode + if (split_mode_p (inner_mode) && (GET_MODE_SIZE (inner_mode) == GET_MODE_SIZE (mode))) output_reg (file, REGNO (inner_x), split); else |