* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
@ 2012-01-18 18:14 ` aurelien.buhrig.gcc at gmail dot com
2012-01-19 0:26 ` pinskia at gcc dot gnu.org
` (13 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aurelien.buhrig.gcc at gmail dot com @ 2012-01-18 18:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
Aurelien Buhrig <aurelien.buhrig.gcc at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |critical
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
2012-01-18 18:14 ` [Bug middle-end/51893] " aurelien.buhrig.gcc at gmail dot com
@ 2012-01-19 0:26 ` pinskia at gcc dot gnu.org
2012-01-19 0:57 ` pinskia at gcc dot gnu.org
` (12 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-01-19 0:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|critical |normal
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
2012-01-18 18:14 ` [Bug middle-end/51893] " aurelien.buhrig.gcc at gmail dot com
2012-01-19 0:26 ` pinskia at gcc dot gnu.org
@ 2012-01-19 0:57 ` pinskia at gcc dot gnu.org
2012-01-19 10:45 ` rguenth at gcc dot gnu.org
` (11 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-01-19 0:57 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-01-18 23:06:20 UTC ---
I see the issue, one place does it right and the other does not.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (2 preceding siblings ...)
2012-01-19 0:57 ` pinskia at gcc dot gnu.org
@ 2012-01-19 10:45 ` rguenth at gcc dot gnu.org
2012-01-19 10:52 ` ebotcazou at gcc dot gnu.org
` (10 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-01-19 10:45 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2012-01-19
CC| |ebotcazou at gcc dot
| |gnu.org
Ever Confirmed|0 |1
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-01-19 10:11:49 UTC ---
So, confirmed.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (3 preceding siblings ...)
2012-01-19 10:45 ` rguenth at gcc dot gnu.org
@ 2012-01-19 10:52 ` ebotcazou at gcc dot gnu.org
2012-01-20 9:36 ` aurelien.buhrig.gcc at gmail dot com
` (9 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-01-19 10:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |WAITING
--- Comment #3 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-01-19 10:47:45 UTC ---
Please try the fix for PR middle-end/50325.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (4 preceding siblings ...)
2012-01-19 10:52 ` ebotcazou at gcc dot gnu.org
@ 2012-01-20 9:36 ` aurelien.buhrig.gcc at gmail dot com
2012-01-20 10:16 ` ebotcazou at gcc dot gnu.org
` (8 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aurelien.buhrig.gcc at gmail dot com @ 2012-01-20 9:36 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
--- Comment #4 from Aurelien Buhrig <aurelien.buhrig.gcc at gmail dot com> 2012-01-20 09:00:38 UTC ---
After modifying this patch for 4.6.1 this patch doesn't work (bitfld-3.c
testcase).
It doesn't affect the value subword offset computation (wordnum) when calling
operand_subword_force.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (5 preceding siblings ...)
2012-01-20 9:36 ` aurelien.buhrig.gcc at gmail dot com
@ 2012-01-20 10:16 ` ebotcazou at gcc dot gnu.org
2012-01-20 10:46 ` aurelien.buhrig.gcc at gmail dot com
` (7 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-01-20 10:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
--- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-01-20 10:04:50 UTC ---
> After modifying this patch for 4.6.1 this patch doesn't work (bitfld-3.c
> testcase).
What do you mean exactly? That gnat.dg/bitfld-3.c fails with the patch?
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (6 preceding siblings ...)
2012-01-20 10:16 ` ebotcazou at gcc dot gnu.org
@ 2012-01-20 10:46 ` aurelien.buhrig.gcc at gmail dot com
2012-01-20 11:33 ` ebotcazou at gcc dot gnu.org
` (6 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aurelien.buhrig.gcc at gmail dot com @ 2012-01-20 10:46 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
--- Comment #6 from Aurelien Buhrig <aurelien.buhrig.gcc at gmail dot com> 2012-01-20 10:32:22 UTC ---
(In reply to comment #5)
> > After modifying this patch for 4.6.1 this patch doesn't work (bitfld-3.c
> > testcase).
>
> What do you mean exactly? That gnat.dg/bitfld-3.c fails with the patch?
I mean the patch was likely done for 4.7, and I made very small adjustments to
enable patching on 4.6.1.
The testcase that fails is gcc.c-torture/execute/bitfld-3.c. Both with and
without (4.6.1 release) the patch.
The patch I posted fixes the problem, but I don't know if it is general enough.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (7 preceding siblings ...)
2012-01-20 10:46 ` aurelien.buhrig.gcc at gmail dot com
@ 2012-01-20 11:33 ` ebotcazou at gcc dot gnu.org
2012-01-23 9:28 ` aurelien.buhrig.gcc at gmail dot com
` (5 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-01-20 11:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
--- Comment #7 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-01-20 11:28:26 UTC ---
> The testcase that fails is gcc.c-torture/execute/bitfld-3.c. Both with and
> without (4.6.1 release) the patch.
> The patch I posted fixes the problem, but I don't know if it is general enough.
OK, what are the values of the various parameters you have upon entering the
problematic block of code in store_bit_field_1? Note that this code has been
working fine for years on 32-bit big-endian targets so this is unexpected.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (8 preceding siblings ...)
2012-01-20 11:33 ` ebotcazou at gcc dot gnu.org
@ 2012-01-23 9:28 ` aurelien.buhrig.gcc at gmail dot com
2012-03-20 16:26 ` aurelien.buhrig.gcc at gmail dot com
` (4 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aurelien.buhrig.gcc at gmail dot com @ 2012-01-23 9:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
--- Comment #8 from Aurelien Buhrig <aurelien.buhrig.gcc at gmail dot com> 2012-01-23 08:27:22 UTC ---
It seems the problem occurs with big endian targets when value is at least 4
times bigger than a word.
Example:
bitsize=40, value = reg:DI sub words-->HI. So wordnum = 3.
The for loop should start from LSWord to bitsize MSWord (wordnum).
So:
subword 3 from value, and calls store_bit_fields_1 with bitsize <=
BITS_PER_WORD
then subword 2,
then subword 1
And subword 0 from value should be ignored.
Currently, the loop does not begins with subword 3, but with subword
"wordnum-1" which is 2. It is not the LSword of value, and the value stored in
the bitfield is (value << BITS_PER_WORD).
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (9 preceding siblings ...)
2012-01-23 9:28 ` aurelien.buhrig.gcc at gmail dot com
@ 2012-03-20 16:26 ` aurelien.buhrig.gcc at gmail dot com
2012-03-20 23:00 ` ebotcazou at gcc dot gnu.org
` (3 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aurelien.buhrig.gcc at gmail dot com @ 2012-03-20 16:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
--- Comment #9 from Aurelien Buhrig <aurelien.buhrig.gcc at gmail dot com> 2012-03-20 16:22:52 UTC ---
Do you need additional information about this bug?
Any comment about the provided patch?
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (10 preceding siblings ...)
2012-03-20 16:26 ` aurelien.buhrig.gcc at gmail dot com
@ 2012-03-20 23:00 ` ebotcazou at gcc dot gnu.org
2012-03-27 20:58 ` ebotcazou at gcc dot gnu.org
` (2 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-03-20 23:00 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
--- Comment #10 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-03-20 22:03:27 UTC ---
> Do you need additional information about this bug?
> Any comment about the provided patch?
No, I think the patch is correct. Please post it on gcc-patches@.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (11 preceding siblings ...)
2012-03-20 23:00 ` ebotcazou at gcc dot gnu.org
@ 2012-03-27 20:58 ` ebotcazou at gcc dot gnu.org
2012-03-28 9:11 ` ebotcazou at gcc dot gnu.org
2012-03-28 9:14 ` ebotcazou at gcc dot gnu.org
14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-03-27 20:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
--- Comment #11 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-03-27 20:50:21 UTC ---
Author: ebotcazou
Date: Tue Mar 27 20:50:16 2012
New Revision: 185897
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185897
Log:
PR middle-end/51893
* expmed.c (store_bit_field_1): Fix wordnum value for big-endian
targets.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/expmed.c
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (12 preceding siblings ...)
2012-03-27 20:58 ` ebotcazou at gcc dot gnu.org
@ 2012-03-28 9:11 ` ebotcazou at gcc dot gnu.org
2012-03-28 9:14 ` ebotcazou at gcc dot gnu.org
14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-03-28 9:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
--- Comment #12 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-03-28 09:06:30 UTC ---
Author: ebotcazou
Date: Wed Mar 28 09:06:03 2012
New Revision: 185909
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185909
Log:
PR middle-end/51893
* expmed.c (store_bit_field_1): Fix wordnum value for big-endian
targets.
Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/expmed.c
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/51893] Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets
2012-01-18 17:24 [Bug middle-end/51893] New: Wrong subword index computation in store_bit_field_1 on BIG_ENDIAN targets aurelien.buhrig.gcc at gmail dot com
` (13 preceding siblings ...)
2012-03-28 9:11 ` ebotcazou at gcc dot gnu.org
@ 2012-03-28 9:14 ` ebotcazou at gcc dot gnu.org
14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-03-28 9:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51893
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
Target Milestone|--- |4.7.1
--- Comment #13 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-03-28 09:10:35 UTC ---
Fixed in the 4.7.x series. Thanks for the bug report and the patch.
^ permalink raw reply [flat|nested] 16+ messages in thread