public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-1022] Fix expand_single_bit_test for big-endian
@ 2023-05-21 4:07 Andrew Pinski
0 siblings, 0 replies; only message in thread
From: Andrew Pinski @ 2023-05-21 4:07 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:7f3df8e65c71e5df01fe7fe7de577bb9ff48f37b
commit r14-1022-g7f3df8e65c71e5df01fe7fe7de577bb9ff48f37b
Author: Andrew Pinski <apinski@marvell.com>
Date: Sat May 20 21:01:46 2023 -0700
Fix expand_single_bit_test for big-endian
I had thought extract_bit_field bitpos argument was the shifted position
and not the bitposition like BIT_FIELD_REF so I had removed the code which
would use the correct bitposition for BYTES_BIG_ENDIAN.
Committed as obvious; I checked big-endian MIPS to make sure we are now
producing the correct code.
gcc/ChangeLog:
* expr.cc (expand_single_bit_test): Correct bitpos for big-endian.
Diff:
---
gcc/expr.cc | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/gcc/expr.cc b/gcc/expr.cc
index 30c58c8dc5c..56b51876f80 100644
--- a/gcc/expr.cc
+++ b/gcc/expr.cc
@@ -12958,7 +12958,14 @@ expand_single_bit_test (location_t loc, enum tree_code code,
rtx inner0 = expand_expr (inner, NULL_RTX, VOIDmode, EXPAND_NORMAL);
- inner0 = extract_bit_field (inner0, 1, bitnum, 1, target,
+ int bitpos = bitnum;
+
+ scalar_int_mode imode = as_a <scalar_int_mode>(GET_MODE (inner0));
+
+ if (BYTES_BIG_ENDIAN)
+ bitpos = GET_MODE_BITSIZE (imode) - 1 - bitpos;
+
+ inner0 = extract_bit_field (inner0, 1, bitpos, 1, target,
operand_mode, mode, 0, NULL);
if (code == EQ_EXPR)
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-05-21 4:07 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-21 4:07 [gcc r14-1022] Fix expand_single_bit_test for big-endian Andrew Pinski
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).