Add and use split_mode_p
authorTom de Vries <tom@codesourcery.com>
Tue, 6 Jun 2017 12:25:04 +0000 (12:25 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Tue, 6 Jun 2017 12:25:04 +0000 (12:25 +0000)
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

gcc/ChangeLog
gcc/config/nvptx/nvptx.c

index aeeadfb83997325d798f196ab1341ad2c8070de3..245ec28096c7108a0f3eae60672fa28b537a1774 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 75ecc94be1f4b1c32f673261aea8f46f3de16419..2eb5570024720d79ada7548798f5906f60a8f8f4 100644 (file)
@@ -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