From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1130) id E41A0382C16F; Thu, 16 Jun 2022 13:46:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E41A0382C16F Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Richard Sandiford To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/ARM/heads/morello)] Rearrange extract_bit_field parameter order X-Act-Checkin: gcc X-Git-Author: Richard Sandiford X-Git-Refname: refs/vendors/ARM/heads/morello X-Git-Oldrev: bd12be6019157dba91eb368f07065affa82ffe8b X-Git-Newrev: 6587c486c21dd08addd217c5a547f1acdf7089a5 Message-Id: <20220616134619.E41A0382C16F@sourceware.org> Date: Thu, 16 Jun 2022 13:46:19 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jun 2022 13:46:20 -0000 https://gcc.gnu.org/g:6587c486c21dd08addd217c5a547f1acdf7089a5 commit 6587c486c21dd08addd217c5a547f1acdf7089a5 Author: Richard Sandiford Date: Thu Jun 16 14:42:40 2022 +0100 Rearrange extract_bit_field parameter order The unsignedp parameter came before the bitregion parameters in extract_bit_field, but came after them in all subroutines. The rearrangement happened at the extract_bit_field->extract_bit_field_1 boundary. IMO, the subroutine order is more natural, with the bitregion coming immediately after the bit position. This patch therefore rearranges the extract_bit_field parameters to match. Diff: --- gcc/calls.c | 4 ++-- gcc/config/tilegx/tilegx.c | 2 +- gcc/config/tilepro/tilepro.c | 2 +- gcc/expmed.c | 8 ++++---- gcc/expmed.h | 4 ++-- gcc/expr.c | 40 ++++++++++++++++++++-------------------- gcc/function.c | 2 +- 7 files changed, 31 insertions(+), 31 deletions(-) diff --git a/gcc/calls.c b/gcc/calls.c index dbb05a1e3f8..99835da958b 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -1193,7 +1193,7 @@ store_unaligned_arguments_into_pseudos (struct arg_data *args, int num_actuals) int bitsize = MIN (bytes * BITS_PER_UNIT, BITS_PER_WORD); args[i].aligned_regs[j] = reg; - word = extract_bit_field (word, bitsize, 0, 1, 0, 0, NULL_RTX, + word = extract_bit_field (word, bitsize, 0, 0, 0, 1, NULL_RTX, word_mode, word_mode, false, NULL); /* There is no need to restrict this code to loading items @@ -3131,7 +3131,7 @@ load_register_parameters (struct arg_data *args, int num_actuals, rtx dest = gen_rtx_REG (word_mode, REGNO (reg) + nregs - 1); unsigned int bitoff = (nregs - 1) * BITS_PER_WORD; unsigned int bitsize = const_size * BITS_PER_UNIT - bitoff; - rtx x = extract_bit_field (mem, bitsize, bitoff, 1, 0, 0, + rtx x = extract_bit_field (mem, bitsize, bitoff, 0, 0, 1, dest, word_mode, word_mode, false, NULL); if (BYTES_BIG_ENDIAN) diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c index 92a16551ac0..784c4b2e957 100644 --- a/gcc/config/tilegx/tilegx.c +++ b/gcc/config/tilegx/tilegx.c @@ -1952,7 +1952,7 @@ tilegx_expand_unaligned_load (rtx dest_reg, rtx mem, HOST_WIDE_INT bitsize, { rtx extracted = extract_bit_field (gen_lowpart (DImode, wide_result), - bitsize, bit_offset % BITS_PER_UNIT, + bitsize, bit_offset % BITS_PER_UNIT, 0, 0, !sign, gen_lowpart (DImode, dest_reg), DImode, DImode, false, NULL); diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c index 540c6356c08..20a39ad4d4d 100644 --- a/gcc/config/tilepro/tilepro.c +++ b/gcc/config/tilepro/tilepro.c @@ -1681,7 +1681,7 @@ tilepro_expand_unaligned_load (rtx dest_reg, rtx mem, HOST_WIDE_INT bitsize, { rtx extracted = extract_bit_field (gen_lowpart (SImode, wide_result), - bitsize, bit_offset % BITS_PER_UNIT, + bitsize, bit_offset % BITS_PER_UNIT, 0, 0, !sign, gen_lowpart (SImode, dest_reg), SImode, SImode, false, NULL); diff --git a/gcc/expmed.c b/gcc/expmed.c index 26481aa2368..45db93c331a 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -978,8 +978,8 @@ store_integral_bit_field (rtx op0, opt_scalar_int_mode op0_mode, rtx value_word = fieldmode == BLKmode ? extract_bit_field (value, new_bitsize, wordnum * BITS_PER_WORD, - 1, wordnum * BITS_PER_WORD, bitregion_end, - NULL_RTX, word_mode, word_mode, + wordnum * BITS_PER_WORD, bitregion_end, + 1, NULL_RTX, word_mode, word_mode, false, NULL) : operand_subword_force (value, wordnum, value_mode); @@ -2090,8 +2090,8 @@ extract_integral_bit_field (rtx op0, opt_scalar_int_mode op0_mode, rtx extract_bit_field (rtx str_rtx, poly_uint64 bitsize, poly_uint64 bitnum, - int unsignedp, poly_uint64 bitregion_start, - poly_uint64 bitregion_end, rtx target, machine_mode mode, + poly_uint64 bitregion_start, poly_uint64 bitregion_end, + int unsignedp, rtx target, machine_mode mode, machine_mode tmode, bool reverse, rtx *alt_rtl) { machine_mode mode1; diff --git a/gcc/expmed.h b/gcc/expmed.h index f3c5374a452..9206ac5f344 100644 --- a/gcc/expmed.h +++ b/gcc/expmed.h @@ -740,8 +740,8 @@ extern rtx expand_divmod (int, enum tree_code, machine_mode, rtx, rtx, extern void store_bit_field (rtx, poly_uint64, poly_uint64, poly_uint64, poly_uint64, machine_mode, rtx, bool); -extern rtx extract_bit_field (rtx, poly_uint64, poly_uint64, int, - poly_uint64, poly_uint64, rtx, +extern rtx extract_bit_field (rtx, poly_uint64, poly_uint64, + poly_uint64, poly_uint64, int, rtx, machine_mode, machine_mode, bool, rtx *); extern rtx extract_low_bits (machine_mode, machine_mode, rtx); extern rtx expand_mult (machine_mode, rtx, rtx, rtx, int, bool = false); diff --git a/gcc/expr.c b/gcc/expr.c index 51e29f43aa1..4d9f2017527 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -2209,8 +2209,8 @@ move_block_to_reg (int regno, rtx x, int nregs, machine_mode mode) { rtx return_reg = gen_rtx_REG (word_mode, regno + nregs - 1); emit_move_insn (return_reg, - extract_bit_field (x, remainder * BITS_PER_UNIT, 0, 0, - 0, remainder * BITS_PER_UNIT - 1, + extract_bit_field (x, remainder * BITS_PER_UNIT, 0, + 0, remainder * BITS_PER_UNIT - 1, 0, return_reg, word_mode, word_mode, 0, NULL)); return; @@ -2419,8 +2419,8 @@ emit_group_load_1 (rtx *tmps, rtx dst, rtx orig_src, tree type, && (!REG_P (tmps[i]) || GET_MODE (tmps[i]) != mode))) tmps[i] = extract_bit_field (tmps[i], bytelen * BITS_PER_UNIT, subpos * BITS_PER_UNIT, - 1, bitregion_start, bitregion_end, - NULL_RTX, mode, mode, + bitregion_start, bitregion_end, + 1, NULL_RTX, mode, mode, false, NULL); } else @@ -2430,9 +2430,9 @@ emit_group_load_1 (rtx *tmps, rtx dst, rtx orig_src, tree type, gcc_assert (known_eq (bytepos, 0)); mem = assign_stack_temp (GET_MODE (src), slen); emit_move_insn (mem, src); - tmps[i] = extract_bit_field (mem, bytelen * BITS_PER_UNIT, - 0, 1, bitregion_start, bitregion_end, - NULL_RTX, mode, mode, + tmps[i] = extract_bit_field (mem, bytelen * BITS_PER_UNIT, 0, + bitregion_start, bitregion_end, + 1, NULL_RTX, mode, mode, false, NULL); } } @@ -2473,9 +2473,9 @@ emit_group_load_1 (rtx *tmps, rtx dst, rtx orig_src, tree type, tmps[i] = src; else tmps[i] = extract_bit_field (src, bytelen * BITS_PER_UNIT, - bytepos * BITS_PER_UNIT, 1, + bytepos * BITS_PER_UNIT, bitregion_start, bitregion_end, - NULL_RTX, mode, mode, false, NULL); + 1, NULL_RTX, mode, mode, false, NULL); if (maybe_ne (shift, 0)) tmps[i] = expand_shift (LSHIFT_EXPR, mode, tmps[i], @@ -2939,8 +2939,8 @@ copy_blkmode_from_reg (rtx target, rtx srcreg, tree type) bitpos for the destination store (left justified). */ store_bit_field (dst, bitsize, bitpos % BITS_PER_WORD, 0, 0, copy_mode, extract_bit_field (src, bitsize, - xbitpos % BITS_PER_WORD, 1, 0, 0, - NULL_RTX, copy_mode, copy_mode, + xbitpos % BITS_PER_WORD, 0, 0, + 1, NULL_RTX, copy_mode, copy_mode, false, NULL), false); } @@ -3043,8 +3043,8 @@ copy_blkmode_to_reg (machine_mode mode_in, tree src) store_bit_field (dst_word, bitsize, xbitpos % BITS_PER_WORD, 0, 0, word_mode, extract_bit_field (src_word, bitsize, - bitpos % BITS_PER_WORD, 1, 0, 0, - NULL_RTX, word_mode, word_mode, + bitpos % BITS_PER_WORD, 0, 0, + 1, NULL_RTX, word_mode, word_mode, false, NULL), false); } @@ -3493,7 +3493,7 @@ read_complex_part (rtx cplx, bool imag_p) } return extract_bit_field (cplx, ibitsize, imag_p ? ibitsize : 0, - true, 0, 0, NULL_RTX, imode, imode, false, NULL); + 0, 0, true, NULL_RTX, imode, imode, false, NULL); } /* A subroutine of emit_move_insn_1. Yet another lowpart generator. @@ -7445,8 +7445,8 @@ store_field (rtx target, poly_int64 bitsize, poly_int64 bitpos, if (GET_MODE (temp) == BLKmode && known_le (bitsize, BITS_PER_WORD)) { temp_mode = smallest_int_mode_for_size (bitsize); - temp = extract_bit_field (temp, bitsize, 0, 1, bitregion_start, - bitregion_end, NULL_RTX, temp_mode, + temp = extract_bit_field (temp, bitsize, 0, bitregion_start, + bitregion_end, 1, NULL_RTX, temp_mode, temp_mode, false, NULL); } @@ -8782,7 +8782,7 @@ expand_misaligned_mem_ref (rtx temp, machine_mode mode, int unsignedp, } else if (targetm.slow_unaligned_access (mode, align)) temp = extract_bit_field (temp, GET_MODE_BITSIZE (mode), - 0, unsignedp, 0, 0, target, + 0, 0, 0, unsignedp, target, mode, mode, false, alt_rtl); return temp; } @@ -11438,8 +11438,8 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode, reversep = TYPE_REVERSE_STORAGE_ORDER (type); gcc_checking_assert (known_ge (bitpos, 0)); - op0 = extract_bit_field (op0, bitsize, bitpos, unsignedp, - bitregion_start, bitregion_end, + op0 = extract_bit_field (op0, bitsize, bitpos, + bitregion_start, bitregion_end, unsignedp, (modifier == EXPAND_STACK_PARM ? NULL_RTX : target), ext_mode, ext_mode, reversep, alt_rtl); @@ -11678,7 +11678,7 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode, /* If the output type is a bit-field type, do an extraction. */ else if (reduce_bit_field) return extract_bit_field (op0, TYPE_PRECISION (type), 0, - TYPE_UNSIGNED (type), 0, 0, NULL_RTX, + 0, 0, TYPE_UNSIGNED (type), NULL_RTX, mode, mode, false, NULL); /* As a last resort, spill op0 to memory, and reload it in a different mode. */ diff --git a/gcc/function.c b/gcc/function.c index 41f6732afaf..f7d5a0a7b91 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -3326,7 +3326,7 @@ assign_parm_setup_reg (struct assign_parm_data_all *all, tree parm, else rtl = parmreg = extract_bit_field (validated_mem, GET_MODE_BITSIZE (promoted_nominal_mode), 0, - unsignedp, 0, 0, parmreg, + 0, 0, unsignedp, parmreg, promoted_nominal_mode, VOIDmode, false, NULL); } else