Home | History | Annotate | Download | only in gcc

Lines Matching refs:bitpos

371   poly_int64 bitsize, bitpos, bytepos;
383 base_addr = get_inner_reference (ref, &bitsize, &bitpos, &offset, &mode,
403 /* Avoid returning a negative bitpos as this may wreak havoc later. */
415 bitpos += bit_offset.force_shwi ();
420 if (!multiple_p (bitpos, BITS_PER_UNIT, &bytepos))
630 unsigned HOST_WIDE_INT bitpos = tree_to_uhwi (TREE_OPERAND (rhs1, 2));
631 if (bitpos % BITS_PER_UNIT == 0
637 bitpos = TYPE_PRECISION (n->type) - bitpos - bitsize;
640 if (!do_shift_rotate (RSHIFT_EXPR, n, bitpos))
1625 poly_uint64 bitpos;
1634 : val (NULL_TREE), base_addr (NULL_TREE), bitsize (0), bitpos (0),
1647 unsigned HOST_WIDE_INT bitpos;
1695 : bitsize (bs), bitpos (bp), bitregion_start (brs), bitregion_end (bre),
1844 bit position BITPOS. PTR should contain TOTAL_BYTES elements.
1848 encode_tree_to_bitpos (tree expr, unsigned char *ptr, int bitlen, int bitpos,
1851 unsigned int first_byte = bitpos / BITS_PER_UNIT;
1858 || (bitpos % BITS_PER_UNIT)
1909 with bitpos:
1918 The awkwardness comes from the fact that bitpos is counted from the
1985 BITS_PER_UNIT - 1 - (bitpos % BITS_PER_UNIT), bitlen);
1987 clear_bit_region (ptr + first_byte, bitpos % BITS_PER_UNIT, bitlen);
1991 int bitpos_mod = bitpos % BITS_PER_UNIT;
1996 /* BITPOS and BITLEN are exactly aligned and no shifting
2018 shift_amnt = bitpos % BITS_PER_UNIT;
2056 if ((*tmp)->bitpos < (*tmp2)->bitpos)
2058 else if ((*tmp)->bitpos > (*tmp2)->bitpos)
2088 start = info->bitpos;
2117 load_align_base[i] = op.bitpos - align_bitpos;
2206 align_base = info->bitpos - align_bitpos;
2218 load_align_base[i] = op.bitpos - align_bitpos;
2235 if (info->bitpos != start + width)
2270 gcc_assert (info->bitpos >= start + width
2273 width = info->bitpos + info->bitsize - start;
2286 if (info->bitpos + info->bitsize > start + width)
2287 width = info->bitpos + info->bitsize - start;
2330 unsigned int pos_in_buffer = info->bitpos - bitregion_start;
2606 || maybe_ne (info->ops[idx].bitpos - infof->ops[idx].bitpos,
2607 info->bitpos - infof->bitpos)
2637 if (known_eq (info->ops[idx].bitposbitpos)
2649 /* The stores are sorted by increasing store bitpos, so if info->stmt store
2775 && info->bitpos + info->bitsize > start)
2781 if (info->bitpos >= end)
2807 if (m_store_info[i]->bitpos != m_store_info[first]->bitpos + width
2837 align_base = m_store_info[i]->bitpos - align_bitpos;
2841 = (m_store_info[first]->bitpos - align_base) & (align - 1);
2876 unsigned int bitpos = info->bitpos - infof->bitpos;
2879 ? try_size - info->bitsize - bitpos
2880 : bitpos))
2918 end = MAX (end, info->bitpos + info->bitsize);
3054 && (m_store_info[first_earlier]->bitpos
3065 if (info->bitpos == merged_store->start + merged_store->width
3105 else if (IN_RANGE (info->bitpos, merged_store->start,
3126 info->bitpos + info->bitsize);
3166 if (info2->bitpos >= this_end)
3187 info2->bitpos + info2->bitsize);
3253 gcc_assert (info2->bitpos < end);
3284 && known_eq (info->ops[1].bitpos - infof->ops[0].bitpos,
3285 info->bitpos - infof->bitpos)
3297 info->bitpos + info->bitsize),
3350 " bitpos:" HOST_WIDE_INT_PRINT_DEC " val:",
3351 i, info->bitsize, info->bitpos);
3464 /* Record all stores in GROUP that write to the region starting at BITPOS and
3474 unsigned HOST_WIDE_INT bitpos,
3481 unsigned HOST_WIDE_INT end = bitpos + bitsize;
3484 unsigned HOST_WIDE_INT stmt_start = info->bitpos;
3486 if (stmt_end <= bitpos)
3488 /* BITPOS passed to this function never decreases from within the
3490 which are known to end before or at BITPOS next time.
3768 - group->stores[0]->bitpos
3769 + group->stores[0]->ops[i].bitpos
3787 = ROUND_UP (info->bitpos + info->bitsize, BITS_PER_UNIT);
3790 if (info && info->bitpos >= try_bitpos)
3794 if (info->bitpos > try_bitpos
3799 info->bitpos - try_bitpos);
3879 && info->bitpos >= try_bitpos
3880 && info->bitpos + info->bitsize <= try_bitpos + try_size
3883 || (info->bitpos == try_bitpos
3884 && (info->bitpos + info->bitsize
4005 if (info->bitpos < try_bitpos)
4007 gcc_assert (info->bitpos + bitsize > try_bitpos);
4010 if (prec <= try_bitpos - info->bitpos)
4012 prec -= try_bitpos - info->bitpos;
4014 bitsize -= try_bitpos - info->bitpos;
4019 pos_in_buffer = info->bitpos - try_bitpos;
4078 && group->start == store->bitpos
4136 && group->start == group->stores[0]->bitpos
4431 - split_store->orig_stores[0]->bitpos
4432 + op.bitpos);
4443 - split_store->orig_stores[0]->bitpos
4444 + op.bitpos,
4582 && info->bitpos < try_bitpos + try_size
4583 && info->bitpos + info->bitsize > try_bitpos)
4587 const HOST_WIDE_INT start_gap = info->bitpos - try_bitpos;
4589 = (try_bitpos + try_size) - (info->bitpos + info->bitsize);
4941 poly_int64 bitsize, bitpos;
4946 tree base_addr = get_inner_reference (mem, &bitsize, &bitpos, &offset, &mode,
4955 get_bit_range (&bitregion_start, &bitregion_end, mem, &bitpos, &offset);
4969 byteoffset into account in the bitpos. This occurs in
4973 if (!adjust_bit_pos (mem_ref_offset (base_addr), &bitpos,
4982 if (maybe_lt (bitpos, 0))
5002 &bitpos, &bitregion_start, &bitregion_end))
5011 bitregion_start = round_down_to_byte_boundary (bitpos);
5012 bitregion_end = round_up_to_byte_boundary (bitpos + bitsize);
5016 *pbitpos = bitpos;
5023 In that case fill in *OP. BITSIZE, BITPOS, BITREGION_START and
5028 poly_uint64 bitsize, poly_uint64 bitpos,
5037 && handled_load (SSA_NAME_DEF_STMT (rhs1), op, bitsize, bitpos,
5057 = mem_valid_for_store_merging (mem, &op->bitsize, &op->bitpos,
5062 && multiple_p (op->bitpos - bitpos, BITS_PER_UNIT)
5063 && known_ge (op->bitpos - op->bitregion_start,
5064 bitpos - bitregion_start)
5065 && known_ge (op->bitregion_end - op->bitpos,
5066 bitregion_end - bitpos))
5099 poly_uint64 bitsize, bitpos = 0;
5102 = mem_valid_for_store_merging (lhs, &bitsize, &bitpos,
5135 else if (handled_load (def_stmt, &ops[0], bitsize, bitpos,
5163 || !handled_load (def_stmt1, &ops[0], bitsize, bitpos,
5175 else if (!handled_load (def_stmt2, &ops[1], bitsize, bitpos,
5190 && multiple_p (bitpos, BITS_PER_UNIT))
5221 || !multiple_p (bitpos, BITS_PER_UNIT))
5249 || !bitpos.is_constant (&const_bitpos)