[Bug target/29721] Wrong code when compiling libjava/verify.cc at -O2

2006-11-07 Thread daney at gcc dot gnu dot org
--- Comment #5 from daney at gcc dot gnu dot org 2006-11-07 20:53 --- This is a gas bug. This is probably the fix: http://sourceware.org/ml/binutils/2006-11/msg00055.html -- daney at gcc dot gnu dot org changed: What|Removed |Added --

[Bug target/29721] Wrong code when compiling libjava/verify.cc at -O2

2006-11-06 Thread daney at gcc dot gnu dot org
--- Comment #4 from daney at gcc dot gnu dot org 2006-11-06 22:31 --- OK, looks like GCC may be allowed to emit the relocations out of order. I am looking into the possiblility that gas can be fixed so that the relocaitons are emitted in the proper order even if their position in the co

[Bug target/29721] Wrong code when compiling libjava/verify.cc at -O2

2006-11-05 Thread daney at gcc dot gnu dot org
--- Comment #3 from daney at gcc dot gnu dot org 2006-11-06 01:17 --- Manually moving the lw $4,%got($L2406)($28) to be just before the addiu $4,$4,%lo($L2406) and reassembling fixes the problem. So I think that my analysis about the problem being splitting them up with

[Bug target/29721] Wrong code when compiling libjava/verify.cc at -O2

2006-11-05 Thread daney at gcc dot gnu dot org
--- Comment #2 from daney at gcc dot gnu dot org 2006-11-05 21:44 --- It looks like the problem here is that a %lo relocation is getting seperated from its corresponding %got. Here is a little of the assembly, note how there is an intervening %got/%lo between the %got($L2406) and the %l