mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-21 10:05:27 +08:00
defaults.h (LOG2_BITS_PER_UNIT): Move from here...
2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de> * defaults.h (LOG2_BITS_PER_UNIT): Move from here... * tree.h (LOG2_BITS_PER_UNIT): ...to here. (BITS_PER_UNIT_LOG): Remove. (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG. * expr.c (expand_assignment): Likewise. * stor-layout.c (initialize_sizetypes): Likewise. c-family: 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de> * c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG. From-SVN: r238800
This commit is contained in:
parent
98060bbea8
commit
ec1e2a4097
@ -1,3 +1,12 @@
|
||||
2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
* defaults.h (LOG2_BITS_PER_UNIT): Move from here...
|
||||
* tree.h (LOG2_BITS_PER_UNIT): ...to here.
|
||||
(BITS_PER_UNIT_LOG): Remove.
|
||||
(int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
|
||||
* expr.c (expand_assignment): Likewise.
|
||||
* stor-layout.c (initialize_sizetypes): Likewise.
|
||||
|
||||
2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||
|
||||
* config/rs6000/vector.md (vec_extract<mode>): Change the calling
|
||||
|
@ -1,3 +1,8 @@
|
||||
2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
* c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
|
||||
BITS_PER_UNIT_LOG.
|
||||
|
||||
2016-07-25 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/65970
|
||||
|
@ -7679,7 +7679,7 @@ check_user_alignment (const_tree align, bool allow_zero)
|
||||
error ("requested alignment is not a positive power of 2");
|
||||
return -1;
|
||||
}
|
||||
else if (i >= HOST_BITS_PER_INT - BITS_PER_UNIT_LOG)
|
||||
else if (i >= HOST_BITS_PER_INT - LOG2_BITS_PER_UNIT)
|
||||
{
|
||||
error ("requested alignment is too large");
|
||||
return -1;
|
||||
|
@ -491,14 +491,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
your target, you should override these values by defining the
|
||||
appropriate symbols in your tm.h file. */
|
||||
|
||||
#if BITS_PER_UNIT == 8
|
||||
#define LOG2_BITS_PER_UNIT 3
|
||||
#elif BITS_PER_UNIT == 16
|
||||
#define LOG2_BITS_PER_UNIT 4
|
||||
#else
|
||||
#error Unknown BITS_PER_UNIT
|
||||
#endif
|
||||
|
||||
#ifndef BITS_PER_WORD
|
||||
#define BITS_PER_WORD (BITS_PER_UNIT * UNITS_PER_WORD)
|
||||
#endif
|
||||
|
@ -4990,8 +4990,7 @@ expand_assignment (tree to, tree from, bool nontemporal)
|
||||
if (bitpos < 0)
|
||||
{
|
||||
gcc_assert (offset == NULL_TREE);
|
||||
offset = size_int (bitpos >> (BITS_PER_UNIT == 8
|
||||
? 3 : exact_log2 (BITS_PER_UNIT)));
|
||||
offset = size_int (bitpos >> LOG2_BITS_PER_UNIT);
|
||||
bitpos &= BITS_PER_UNIT - 1;
|
||||
}
|
||||
|
||||
|
@ -2572,7 +2572,7 @@ initialize_sizetypes (void)
|
||||
}
|
||||
|
||||
bprecision
|
||||
= MIN (precision + BITS_PER_UNIT_LOG + 1, MAX_FIXED_MODE_SIZE);
|
||||
= MIN (precision + LOG2_BITS_PER_UNIT + 1, MAX_FIXED_MODE_SIZE);
|
||||
bprecision
|
||||
= GET_MODE_PRECISION (smallest_mode_for_size (bprecision, MODE_INT));
|
||||
if (bprecision > HOST_BITS_PER_DOUBLE_INT)
|
||||
|
19
gcc/tree.h
19
gcc/tree.h
@ -4235,6 +4235,8 @@ extern tree bit_position (const_tree);
|
||||
extern tree byte_position (const_tree);
|
||||
extern HOST_WIDE_INT int_byte_position (const_tree);
|
||||
|
||||
/* Type for sizes of data-type. */
|
||||
|
||||
#define sizetype sizetype_tab[(int) stk_sizetype]
|
||||
#define bitsizetype sizetype_tab[(int) stk_bitsizetype]
|
||||
#define ssizetype sizetype_tab[(int) stk_ssizetype]
|
||||
@ -4244,12 +4246,15 @@ extern HOST_WIDE_INT int_byte_position (const_tree);
|
||||
#define bitsize_int(L) size_int_kind (L, stk_bitsizetype)
|
||||
#define sbitsize_int(L) size_int_kind (L, stk_sbitsizetype)
|
||||
|
||||
/* Type for sizes of data-type. */
|
||||
/* Log2 of BITS_PER_UNIT. */
|
||||
|
||||
#define BITS_PER_UNIT_LOG \
|
||||
((BITS_PER_UNIT > 1) + (BITS_PER_UNIT > 2) + (BITS_PER_UNIT > 4) \
|
||||
+ (BITS_PER_UNIT > 8) + (BITS_PER_UNIT > 16) + (BITS_PER_UNIT > 32) \
|
||||
+ (BITS_PER_UNIT > 64) + (BITS_PER_UNIT > 128) + (BITS_PER_UNIT > 256))
|
||||
#if BITS_PER_UNIT == 8
|
||||
#define LOG2_BITS_PER_UNIT 3
|
||||
#elif BITS_PER_UNIT == 16
|
||||
#define LOG2_BITS_PER_UNIT 4
|
||||
#else
|
||||
#error Unknown BITS_PER_UNIT
|
||||
#endif
|
||||
|
||||
/* Concatenate two lists (chains of TREE_LIST nodes) X and Y
|
||||
by making the last node in X point to Y.
|
||||
@ -5400,8 +5405,8 @@ extern GTY(()) struct int_n_trees_t int_n_trees[NUM_INT_N_ENTS];
|
||||
|
||||
inline HOST_WIDE_INT
|
||||
int_bit_position (const_tree field)
|
||||
{
|
||||
return ((wi::to_offset (DECL_FIELD_OFFSET (field)) << BITS_PER_UNIT_LOG)
|
||||
{
|
||||
return ((wi::to_offset (DECL_FIELD_OFFSET (field)) << LOG2_BITS_PER_UNIT)
|
||||
+ wi::to_offset (DECL_FIELD_BIT_OFFSET (field))).to_shwi ();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user