From 38827811dd5d0e07c8f31d780732d3e429aee4fa Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Tue, 6 Jun 2017 12:25:04 +0000 Subject: [PATCH] Add and use split_mode_p 2017-06-06 Tom de Vries * config/nvptx/nvptx.c (split_mode_p): New function. (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p. From-SVN: r248918 --- gcc/ChangeLog | 5 +++++ gcc/config/nvptx/nvptx.c | 17 ++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aeeadfb8399..245ec28096c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-06-06 Tom de Vries + + * 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 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode. diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 75ecc94be1f..2eb55700247 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 -- 2.30.2