]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix PR 81713
authorvisit0r <visit0r@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Aug 2017 15:50:14 +0000 (15:50 +0000)
committervisit0r <visit0r@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Aug 2017 15:50:14 +0000 (15:50 +0000)
 * 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

gcc/brig/ChangeLog
gcc/brig/brigfrontend/brig-basic-inst-handler.cc
gcc/brig/brigfrontend/brig-code-entry-handler.cc

index f7c82f4410749ed8c4f7273adb629d39a2f5d28e..08045329eeba1692d68ef407433db75d3caa6468 100644 (file)
@@ -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>
index 68d81986f1cdcc2b05a08434cb13a09f66bb6f3e..8288d6655132116d86d3bcc7ea2374b51b3c1d27 100644 (file)
@@ -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);
 
index 906f47e76b3ec1c731302b9b06aff80b62d068f4..8f07d372796ec4780ab051ee2ad8bd7a8d6b4db6 100644 (file)
@@ -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);