diff mbox series

[committed] Use scalar_int/float_mode in brig_langhook_type_for_mode

Message ID 87k1zmyzmy.fsf@linaro.org
State New
Headers show
Series [committed] Use scalar_int/float_mode in brig_langhook_type_for_mode | expand

Commit Message

Richard Sandiford Oct. 23, 2017, 9:36 a.m. UTC
This follows on from similar changes a couple of months ago and
is needed when general modes have variable size.

Tested on x86_64-linux-gnu and applied as obvious.

Richard


2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/brig/
	* brig-lang.c (brig_langhook_type_for_mode): Use scalar_int_mode
	and scalar_float_mode.
diff mbox series

Patch

Index: gcc/brig/brig-lang.c
===================================================================
--- gcc/brig/brig-lang.c	2017-10-02 09:10:56.960755788 +0100
+++ gcc/brig/brig-lang.c	2017-10-23 10:33:45.740101313 +0100
@@ -278,10 +278,11 @@  brig_langhook_type_for_mode (machine_mod
       return NULL_TREE;
     }
 
-  enum mode_class mc = GET_MODE_CLASS (mode);
-  if (mc == MODE_FLOAT)
+  scalar_int_mode imode;
+  scalar_float_mode fmode;
+  if (is_int_mode (mode, &imode))
     {
-      switch (GET_MODE_BITSIZE (mode))
+      switch (GET_MODE_BITSIZE (imode))
 	{
 	case 32:
 	  return float_type_node;
@@ -290,15 +291,15 @@  brig_langhook_type_for_mode (machine_mod
 	default:
 	  /* We have to check for long double in order to support
 	     i386 excess precision.  */
-	  if (mode == TYPE_MODE (long_double_type_node))
+	  if (imode == TYPE_MODE (long_double_type_node))
 	    return long_double_type_node;
 
 	  gcc_unreachable ();
 	  return NULL_TREE;
 	}
     }
-  else if (mc == MODE_INT)
-    return brig_langhook_type_for_size(GET_MODE_BITSIZE(mode), unsignedp);
+  else if (is_float_mode (mode, &fmode))
+    return brig_langhook_type_for_size (GET_MODE_BITSIZE (fmode), unsignedp);
   else
     {
       /* E.g., build_common_builtin_nodes () asks for modes/builtins