diff options
author | visit0r <visit0r@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-08-04 15:50:14 +0000 |
---|---|---|
committer | visit0r <visit0r@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-08-04 15:50:14 +0000 |
commit | 08b87aee35f1d24356404ae7e1081d3205462af2 (patch) | |
tree | 592e3d289fc9e6f48fb64ff103a3c734438a950b | |
parent | a57f48a9ee01c7019453979bf975797b9e50b3aa (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/brig/brigfrontend/brig-basic-inst-handler.cc | 7 | ||||
-rw-r--r-- | gcc/brig/brigfrontend/brig-code-entry-handler.cc | 22 |
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); |