public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/vendors/ARM/heads/morello)] Rearrange extract_bit_field parameter order
@ 2022-06-16 13:46 Richard Sandiford
0 siblings, 0 replies; only message in thread
From: Richard Sandiford @ 2022-06-16 13:46 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:6587c486c21dd08addd217c5a547f1acdf7089a5
commit 6587c486c21dd08addd217c5a547f1acdf7089a5
Author: Richard Sandiford <richard.sandiford@arm.com>
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);
}
\f
/* 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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-06-16 13:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-16 13:46 [gcc(refs/vendors/ARM/heads/morello)] Rearrange extract_bit_field parameter order Richard Sandiford
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).