aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-10-11 14:44:13 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-10-11 14:44:13 +0000
commit8b27c9052b8d191c98686e77d2fa610390c78f32 (patch)
treee3ffcabde97675da6f6a0f59bbdd792f38e2f280 /gcc
parent3635c2bf7c40a959ebd257d4724ebf487155a343 (diff)
downloadgcc-8b27c9052b8d191c98686e77d2fa610390c78f32.zip
gcc-8b27c9052b8d191c98686e77d2fa610390c78f32.tar.gz
gcc-8b27c9052b8d191c98686e77d2fa610390c78f32.tar.bz2
Relax store_bit_field call in store_expr
store_bit_field already takes a poly_uint64 size, so we can relax the INTVAL to rtx_to_poly_int64. This is tested by the SVE ACLE patches. 2019-10-11 Richard Sandiford <richard.sandiford@arm.com> gcc/ * expr.c (store_expr): Use rtx_to_poly_int64 rather than INTVAL when calling store_bit_field. From-SVN: r276888
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8118e14..f346dd5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2019-10-11 Richard Sandiford <richard.sandiford@arm.com>
+
+ * expr.c (store_expr): Use rtx_to_poly_int64 rather than
+ INTVAL when calling store_bit_field.
+
2019-10-11 Wilco Dijkstra <wdijkstr@arm.com>
* config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for
diff --git a/gcc/expr.c b/gcc/expr.c
index 124144d..b54bf1d 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -5790,7 +5790,8 @@ store_expr (tree exp, rtx target, int call_param_p,
copy_blkmode_from_reg (target, temp, TREE_TYPE (exp));
else
store_bit_field (target,
- INTVAL (expr_size (exp)) * BITS_PER_UNIT,
+ rtx_to_poly_int64 (expr_size (exp))
+ * BITS_PER_UNIT,
0, 0, 0, GET_MODE (temp), temp, reverse);
}
else