summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvisit0r <visit0r@138bc75d-0d04-0410-961f-82ee72b054a4>2017-08-04 15:50:14 +0000
committervisit0r <visit0r@138bc75d-0d04-0410-961f-82ee72b054a4>2017-08-04 15:50:14 +0000
commit08b87aee35f1d24356404ae7e1081d3205462af2 (patch)
tree592e3d289fc9e6f48fb64ff103a3c734438a950b
parenta57f48a9ee01c7019453979bf975797b9e50b3aa (diff)
downloadgcc-08b87aee35f1d24356404ae7e1081d3205462af2.tar.gz
Fix PR 81713
* brigfrontend/brig-basic-inst-handler.cc: replace build_int_cst with bitsize_int in building BIT_FIELD_REF. * brigfrontend/brig-code-entry-handler.cc: likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250874 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/brig/ChangeLog7
-rw-r--r--gcc/brig/brigfrontend/brig-basic-inst-handler.cc7
-rw-r--r--gcc/brig/brigfrontend/brig-code-entry-handler.cc22
3 files changed, 19 insertions, 17 deletions
diff --git a/gcc/brig/ChangeLog b/gcc/brig/ChangeLog
index f7c82f44107..08045329eeb 100644
--- a/gcc/brig/ChangeLog
+++ b/gcc/brig/ChangeLog
@@ -1,3 +1,10 @@
+2017-08-04 Henry Linjamäki <henry.linjamaki@parmance.com>
+
+ Fix PR 81713
+ * brigfrontend/brig-basic-inst-handler.cc: replace build_int_cst with
+ bitsize_int in building BIT_FIELD_REF.
+ * brigfrontend/brig-code-entry-handler.cc: likewise.
+
2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
diff --git a/gcc/brig/brigfrontend/brig-basic-inst-handler.cc b/gcc/brig/brigfrontend/brig-basic-inst-handler.cc
index 68d81986f1c..8288d665513 100644
--- a/gcc/brig/brigfrontend/brig-basic-inst-handler.cc
+++ b/gcc/brig/brigfrontend/brig-basic-inst-handler.cc
@@ -33,6 +33,7 @@
#include "stor-layout.h"
#include "diagnostic-core.h"
#include "brig-builtins.h"
+#include "fold-const.h"
brig_basic_inst_handler::brig_basic_inst_handler (brig_to_generic &parent)
: brig_code_entry_handler (parent)
@@ -112,10 +113,8 @@ brig_basic_inst_handler::build_shuffle (tree arith_type,
{
tree mask_element
= build3 (BIT_FIELD_REF, mask_element_type, mask_operand,
- build_int_cst (unsigned_char_type_node,
- input_mask_element_size),
- build_int_cst (unsigned_char_type_node,
- i * input_mask_element_size));
+ bitsize_int (input_mask_element_size),
+ bitsize_int (i * input_mask_element_size));
mask_element = convert (element_type, mask_element);
diff --git a/gcc/brig/brigfrontend/brig-code-entry-handler.cc b/gcc/brig/brigfrontend/brig-code-entry-handler.cc
index 906f47e76b3..8f07d372796 100644
--- a/gcc/brig/brigfrontend/brig-code-entry-handler.cc
+++ b/gcc/brig/brigfrontend/brig-code-entry-handler.cc
@@ -1423,9 +1423,8 @@ brig_code_entry_handler::build_output_assignment (const BrigInstBase &brig_inst,
tree element_ref
= build3 (BIT_FIELD_REF, element_type, input,
TYPE_SIZE (element_type),
- build_int_cst (uint32_type_node,
- i * int_size_in_bytes (element_type)
- * BITS_PER_UNIT));
+ bitsize_int (i * int_size_in_bytes (element_type)
+ * BITS_PER_UNIT));
last_assign
= build_output_assignment (brig_inst, element, element_ref);
@@ -1488,7 +1487,7 @@ brig_code_entry_handler::unpack (tree value, tree_stl_vec &elements)
tree element
= build3 (BIT_FIELD_REF, input_element_type, value,
TYPE_SIZE (input_element_type),
- build_int_cst (unsigned_char_type_node, i * element_size));
+ bitsize_int(i * element_size));
element = add_temp_var ("scalar", element);
elements.push_back (element);
@@ -1543,9 +1542,8 @@ tree_element_unary_visitor::operator () (brig_code_entry_handler &handler,
{
tree element = build3 (BIT_FIELD_REF, input_element_type, operand,
TYPE_SIZE (input_element_type),
- build_int_cst (unsigned_char_type_node,
- i * element_size
- * BITS_PER_UNIT));
+ bitsize_int (i * element_size
+ * BITS_PER_UNIT));
tree output = visit_element (handler, element);
output_element_type = TREE_TYPE (output);
@@ -1594,15 +1592,13 @@ tree_element_binary_visitor::operator () (brig_code_entry_handler &handler,
tree element0 = build3 (BIT_FIELD_REF, input_element_type, operand0,
TYPE_SIZE (input_element_type),
- build_int_cst (unsigned_char_type_node,
- i * element_size
- * BITS_PER_UNIT));
+ bitsize_int (i * element_size
+ * BITS_PER_UNIT));
tree element1 = build3 (BIT_FIELD_REF, input_element_type, operand1,
TYPE_SIZE (input_element_type),
- build_int_cst (unsigned_char_type_node,
- i * element_size
- * BITS_PER_UNIT));
+ bitsize_int (i * element_size
+ * BITS_PER_UNIT));
tree output = visit_element (handler, element0, element1);
output_element_type = TREE_TYPE (output);