Bug#325131: gcc-4.0: regression on hppa and arm, possibly wrong code
On Mon, Sep 12, 2005 at 01:29:38PM +0200, Max Vozeler wrote:
> I've been able to find a reduced testcase that shows the problem.
> can find below the results using gcc-3.4 and gcc-4.0 with -O1/-O2 each.
> The problem only shows with gcc-4.0 and -O2 on hppa.
In case this helps analyze the problem, attached is the difference in
generated code as seen by objdump -d. Both binaries were compiled using
gcc-4.0 on paer, one with -O1 and the other with -O2.
cheers,
Max
--- test.O1.disas 2005-09-12 11:23:31.000000000 +0000
+++ test.O2.disas 2005-09-12 11:23:24.000000000 +0000
@@ -118,41 +118,41 @@
00010550 <main>:
10550: 6b c2 3f d9 stw rp,-14(,sp)
- 10554: 37 de 05 80 ldo 2c0(sp),sp
- 10558: 34 13 00 00 ldi 0,r19
- 1055c: 37 df 3a 91 ldo -2b8(sp),r31
- 10560: 22 a0 62 46 ldil 12341000,r21
- 10564: 36 b5 04 68 ldo 234(r21),r21
- 10568: 22 c0 62 46 ldil 12341000,r22
- 1056c: 36 d6 04 68 ldo 234(r22),r22
+ 10554: 34 13 00 00 ldi 0,r19
+ 10558: 37 de 05 80 ldo 2c0(sp),sp
+ 1055c: 22 a0 62 46 ldil 12341000,r21
+ 10560: 36 b5 04 68 ldo 234(r21),r21
+ 10564: 22 c0 62 46 ldil 12341000,r22
+ 10568: 36 d6 04 68 ldo 234(r22),r22
+ 1056c: 37 df 3a 91 ldo -2b8(sp),r31
10570: 34 14 05 00 ldi 280,r20
10574: 0b f3 0a 1c add,l r19,r31,ret0
- 10578: 0f 95 12 80 stw r21,0(,ret0)
- 1057c: 0f 96 12 88 stw r22,4(,ret0)
- 10580: 36 73 00 10 ldo 8(r19),r19
+ 10578: 36 73 00 10 ldo 8(r19),r19
+ 1057c: 0f 95 12 80 stw r21,0(,ret0)
+ 10580: 0f 96 12 88 stw r22,4(,ret0)
10584: 8a 74 3f dd cmpb,<> r20,r19,10578 <main+0x28>
10588: 0b f3 0a 1c add,l r19,r31,ret0
- 1058c: 4b d7 3b 71 ldw -248(,sp),r23
- 10590: 4b d8 3b 79 ldw -244(,sp),r24
- 10594: 08 17 02 55 copy r23,r21
- 10598: d3 15 09 94 shrpw r21,r24,19,r20
- 1059c: d2 f8 09 93 shrpw r24,r23,19,r19
- 105a0: d2 f8 08 5d shrpw r24,r23,29,ret1
- 105a4: d3 15 08 5c shrpw r21,r24,29,ret0
- 105a8: 0b 93 02 93 xor r19,ret0,r19
- 105ac: 0b b4 02 94 xor r20,ret1,r20
- 105b0: d6 b5 0b 5a depw,z r21,5,6,r21
- 105b4: d3 18 1b 26 extrw,u r24,25,26,r24
- 105b8: 0b 15 02 58 or r21,r24,r24
- 105bc: d2 f7 1b 26 extrw,u r23,25,26,r23
- 105c0: 23 48 10 00 ldil 10800,r26
- 105c4: 37 5a 02 70 ldo 138(r26),r26
- 105c8: 0a f3 02 97 xor r19,r23,r23
- 105cc: 0b 14 02 98 xor r20,r24,r24
+ 1058c: 4b dc 3b 71 ldw -248(,sp),ret0
+ 10590: 4b dd 3b 79 ldw -244(,sp),ret1
+ 10594: 08 1c 02 56 copy ret0,r22
+ 10598: d3 93 1b 26 extrw,u ret0,25,26,r19
+ 1059c: d3 b6 09 98 shrpw r22,ret1,19,r24
+ 105a0: d3 9d 09 97 shrpw ret1,ret0,19,r23
+ 105a4: d3 b4 1b 26 extrw,u ret1,25,26,r20
+ 105a8: d3 9d 08 5d shrpw ret1,ret0,29,ret1
+ 105ac: d6 b6 0b 5a depw,z r22,5,6,r21
+ 105b0: d3 b6 08 5c shrpw r22,ret1,29,ret0
+ 105b4: 0a 95 02 54 or r21,r20,r20
+ 105b8: 0b 97 02 97 xor r23,ret0,r23
+ 105bc: 0b b8 02 98 xor r24,ret1,r24
+ 105c0: 34 19 00 20 ldi 10,r25
+ 105c4: 0a 77 02 97 xor r23,r19,r23
+ 105c8: 0a 98 02 98 xor r24,r20,r24
+ 105cc: 23 48 10 00 ldil 10800,r26
105d0: e8 5f 1c b5 b,l 10430 <_end_init+0x14>,rp
- 105d4: 34 19 00 20 ldi 10,r25
- 105d8: 34 1c 00 00 ldi 0,ret0
- 105dc: 4b c2 3a 59 ldw -2d4(,sp),rp
+ 105d4: 37 5a 02 70 ldo 138(r26),r26
+ 105d8: 4b c2 3a 59 ldw -2d4(,sp),rp
+ 105dc: 34 1c 00 00 ldi 0,ret0
105e0: e8 40 c0 00 bv r0(rp)
105e4: 37 de 3a 81 ldo -2c0(sp),sp
Reply to: