mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 00:01:21 +08:00
Use scalar_int/float_mode in brig_langhook_type_for_mode
This follows on from similar changes a couple of months ago and is needed when general modes have variable size. 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. From-SVN: r254000
This commit is contained in:
parent
a85cf8e990
commit
4603941edb
@ -1,3 +1,8 @@
|
||||
2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
|
||||
|
||||
* brig-lang.c (brig_langhook_type_for_mode): Use scalar_int_mode
|
||||
and scalar_float_mode.
|
||||
|
||||
2017-10-09 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
||||
|
||||
* brigfrontend/brig-to-generic.cc: Support BRIG_KIND_NONE
|
||||
|
@ -278,10 +278,11 @@ brig_langhook_type_for_mode (machine_mode mode, int unsignedp)
|
||||
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_mode mode, int unsignedp)
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user