This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MIPS Wrong-code regression.


David Daney <ddaney@avtrex.com> writes:
> Sometime between 1/7 and 1/16 on the trunk I started getting wrong code 
> on a bunch of java testcases under mipsel-linux.
>
> It looks related to (but not necessarily caused by) this patch:
>
> http://gcc.gnu.org/ml/gcc-patches/2006-03/msg01346.html
>
> For example if we examine the assembler output of the PR9577.java 
> testcase, we see:
>
> .
> .
> .
> $LBB2:
>         lw      $2,40($fp)
>         sw      $2,24($fp)
>         lw      $2,24($fp)
>         move    $4,$2
>         .option pic0
>         jal     _ZN4java4lang6ObjectC1Ev
>         nop
>
>         .option pic2
>         lw      $28,16($fp)
> $LBE2:
>         move    $sp,$fp
>         lw      $31,36($sp)
>         lw      $fp,32($sp)
>         addiu   $sp,$sp,40
>         j       $31
>         nop
>
> The call to _ZN4java4lang6ObjectC1Ev is being generated as non-pic, even 
> though that symbol is defined in libgcj.so.  The assembler and linker 
> conspire to jump to address 0x00000000 for this call.
>
> It looks like the logic that decides if a symbol is external to the 
> compilation unit is faulty.
>
> Any ideas about where it might have gone wrong?

Not off-hand.  I think -mno-shared is using the right interfaces to
test for locality.

> I will try to look into it more tomorrow.

Thanks, let me know how it goes.  I won't have any time to do
out-of-hours gcc stuff today, but might tomorrow night.

Richard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]