aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/builtins.c5
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/mangle.c2
-rw-r--r--gcc/fold-const.c7
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/target-memory.c2
-rw-r--r--gcc/hsa-brig.c2
-rw-r--r--gcc/objc/ChangeLog7
-rw-r--r--gcc/objc/objc-encoding.c2
-rw-r--r--gcc/tree-vrp.c3
-rw-r--r--gcc/tree.h2
12 files changed, 48 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 736902b..5ca560e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -2,6 +2,18 @@
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
+ * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
+ * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
+ * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
+ (native_encode_real): Likewise.
+ (native_interpret_real): Likewise.
+ * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
+ * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
+
+2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
* optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
<scalar_float_mode>. Simplify.
(gen_extend_conv_libfunc): Likewise.
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 2f361bf..4cb1d37 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -5301,7 +5301,8 @@ static rtx
expand_builtin_signbit (tree exp, rtx target)
{
const struct real_format *fmt;
- machine_mode fmode, imode, rmode;
+ scalar_float_mode fmode;
+ machine_mode imode, rmode;
tree arg;
int word, bitpos;
enum insn_code icode;
@@ -5312,7 +5313,7 @@ expand_builtin_signbit (tree exp, rtx target)
return NULL_RTX;
arg = CALL_EXPR_ARG (exp, 0);
- fmode = TYPE_MODE (TREE_TYPE (arg));
+ fmode = SCALAR_FLOAT_TYPE_MODE (TREE_TYPE (arg));
rmode = TYPE_MODE (TREE_TYPE (exp));
fmt = REAL_MODE_FORMAT (fmode);
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 8532f57..fc6231c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * mangle.c (write_real_cst): Use SCALAR_FLOAT_TYPE_MODE
+ instead of TYPE_MODE.
+
2017-08-29 Jason Merrill <jason@redhat.com>
PR c++/81236 - ICE with template-id in generic lambda
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index ce7c0c5..15f4421 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1788,7 +1788,7 @@ write_real_cst (const tree value)
int i, limit, dir;
tree type = TREE_TYPE (value);
- int words = GET_MODE_BITSIZE (TYPE_MODE (type)) / 32;
+ int words = GET_MODE_BITSIZE (SCALAR_FLOAT_TYPE_MODE (type)) / 32;
real_to_target (target_real, &TREE_REAL_CST (value),
TYPE_MODE (type));
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index de60f68..27f4f4e 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -2032,7 +2032,8 @@ fold_convert_const_real_from_fixed (tree type, const_tree arg1)
REAL_VALUE_TYPE value;
tree t;
- real_convert_from_fixed (&value, TYPE_MODE (type), &TREE_FIXED_CST (arg1));
+ real_convert_from_fixed (&value, SCALAR_FLOAT_TYPE_MODE (type),
+ &TREE_FIXED_CST (arg1));
t = build_real (type, value);
TREE_OVERFLOW (t) = TREE_OVERFLOW (arg1);
@@ -7057,7 +7058,7 @@ static int
native_encode_real (const_tree expr, unsigned char *ptr, int len, int off)
{
tree type = TREE_TYPE (expr);
- int total_bytes = GET_MODE_SIZE (TYPE_MODE (type));
+ int total_bytes = GET_MODE_SIZE (SCALAR_FLOAT_TYPE_MODE (type));
int byte, offset, word, words, bitpos;
unsigned char value;
@@ -7302,7 +7303,7 @@ native_interpret_fixed (tree type, const unsigned char *ptr, int len)
static tree
native_interpret_real (tree type, const unsigned char *ptr, int len)
{
- machine_mode mode = TYPE_MODE (type);
+ scalar_float_mode mode = SCALAR_FLOAT_TYPE_MODE (type);
int total_bytes = GET_MODE_SIZE (mode);
unsigned char value;
/* There are always 32 bits in each long, no matter the size of
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index fe2d802..6baf74f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -2,6 +2,13 @@
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
+ * target-memory.c (size_float): Use SCALAR_FLOAT_TYPE_MODE
+ instead of TYPE_MODE.
+
+2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
* trans-types.c (gfc_init_kinds): Use machine_mode instead of int
for "mode".
diff --git a/gcc/fortran/target-memory.c b/gcc/fortran/target-memory.c
index d239cf1..1c8de1c 100644
--- a/gcc/fortran/target-memory.c
+++ b/gcc/fortran/target-memory.c
@@ -46,7 +46,7 @@ size_integer (int kind)
static size_t
size_float (int kind)
{
- return GET_MODE_SIZE (TYPE_MODE (gfc_get_real_type (kind)));;
+ return GET_MODE_SIZE (SCALAR_FLOAT_TYPE_MODE (gfc_get_real_type (kind)));
}
diff --git a/gcc/hsa-brig.c b/gcc/hsa-brig.c
index 0f6cac5..d15ce26 100644
--- a/gcc/hsa-brig.c
+++ b/gcc/hsa-brig.c
@@ -910,7 +910,7 @@ emit_immediate_scalar_to_buffer (tree value, char *data, unsigned need_len)
"operands");
return 2;
}
- unsigned int_len = GET_MODE_SIZE (TYPE_MODE (type));
+ unsigned int_len = GET_MODE_SIZE (SCALAR_FLOAT_TYPE_MODE (type));
/* There are always 32 bits in each long, no matter the size of
the hosts long. */
long tmp[6];
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 0e59ebf..8270c92 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -2,6 +2,13 @@
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
+ * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE
+ instead of TYPE_MODE.
+
+2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
* objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in
case statements.
diff --git a/gcc/objc/objc-encoding.c b/gcc/objc/objc-encoding.c
index fa15c31..bd59a29 100644
--- a/gcc/objc/objc-encoding.c
+++ b/gcc/objc/objc-encoding.c
@@ -664,7 +664,7 @@ encode_type (tree type, int curtype, int format)
{
char c;
/* Floating point types. */
- switch (GET_MODE_BITSIZE (TYPE_MODE (type)))
+ switch (GET_MODE_BITSIZE (SCALAR_FLOAT_TYPE_MODE (type)))
{
case 32: c = 'f'; break;
case 64: c = 'd'; break;
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 2689697..4da6a2b 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -10094,7 +10094,8 @@ simplify_float_conversion_using_ranges (gimple_stmt_iterator *gsi,
{
tree rhs1 = gimple_assign_rhs1 (stmt);
value_range *vr = get_value_range (rhs1);
- machine_mode fltmode = TYPE_MODE (TREE_TYPE (gimple_assign_lhs (stmt)));
+ scalar_float_mode fltmode
+ = SCALAR_FLOAT_TYPE_MODE (TREE_TYPE (gimple_assign_lhs (stmt)));
machine_mode mode;
tree tem;
gassign *conv;
diff --git a/gcc/tree.h b/gcc/tree.h
index c855a4c..47dfa38 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1849,6 +1849,8 @@ extern void protected_set_expr_location (tree, location_t);
#define TYPE_MODE(NODE) \
(VECTOR_TYPE_P (TYPE_CHECK (NODE)) \
? vector_type_mode (NODE) : (NODE)->type_common.mode)
+#define SCALAR_FLOAT_TYPE_MODE(NODE) \
+ (as_a <scalar_float_mode> (TYPE_CHECK (NODE)->type_common.mode))
#define SET_TYPE_MODE(NODE, MODE) \
(TYPE_CHECK (NODE)->type_common.mode = (MODE))