thomas.rodriguez | 1 Mar 2010 23:12
Picon

hg: jdk7/hotspot-comp/hotspot: 6930398: fix for return address locals in OSR entries uses wrong test

Changeset: 7d236a9688c5
Author:    never
Date:      2010-03-01 12:12 -0800
URL:       http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/7d236a9688c5

6930398: fix for return address locals in OSR entries uses wrong test
Reviewed-by: kvn

! src/share/vm/opto/parse1.cpp

Ulf Zibis | 3 Mar 2010 01:46
Picon
Picon

C2 compiler could be better ...

Having following code:

     public String(int[] codePoints, int offset, int count) {
         ...
         int n = 0;
         for (int i = offset; i < offset + count; i++) {
             int c = codePoints[i];
             if (c >> 16 == 0)
                 n += 1;
             else if ((c >> 16) < (Character.MAX_CODE_POINT + 1 >> 16))
                 n += 2;
             else
                 throw new IllegalArgumentException(Integer.toString(c));
         }
         ...
     }

It compiles to:

->          int c = codePoints[i];
   0x00b87aa4: mov    0x1c(%esp),%ebp
   0x00b87aa8: mov    0xc(%ebp,%edi,4),%ebx  ;*iaload
                                         ; - 
java.lang.String::&lt;init&gt; <at> 72 (line 284)

->          if (c >> 16 == 0)
   0x00b87aac: mov    %ebx,%ecx
   0x00b87aae: sar    $0x10,%ecx         ;*ishr
                                         ; - 
java.lang.String::&lt;init&gt; <at> 79 (line 290)
(Continue reading)

Christian.Thalinger | 3 Mar 2010 16:46
Picon

hg: jdk7/hotspot-comp/hotspot: 7 new changesets

Changeset: b81f3572f355
Author:    tonyp
Date:      2010-02-23 23:13 -0500
URL:       http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/b81f3572f355

6928059: G1: command line parameter renaming
Summary: Rename G1 parameters to make them more consistent.
Reviewed-by: jmasa, johnc

! src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp
! src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp
! src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp
! src/share/vm/gc_implementation/g1/concurrentMark.cpp
! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp
! src/share/vm/gc_implementation/g1/g1MMUTracker.cpp
! src/share/vm/gc_implementation/g1/g1MMUTracker.hpp
! src/share/vm/gc_implementation/g1/g1RemSet.cpp
! src/share/vm/gc_implementation/g1/g1_globals.hpp

Changeset: 1c72304f1885
Author:    tonyp
Date:      2010-02-23 23:14 -0500
URL:       http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/1c72304f1885

6928073: G1: use existing command line parameters for marking cycle initiation
Summary: replace the combination of the G1SteadyStateUsed / G1SteadyStateUsedDelta parameteres to
decide the marking initiation threshold and instead use InitiatingHeapOccupancyPercent.
Reviewed-by: ysr, johnc

(Continue reading)

Christian Thalinger | 5 Mar 2010 16:30
Picon

Request for reviews (S): 6932536: JSR 292 modified JDK MethodHandlesTest fails on x86_64

http://cr.openjdk.java.net/~twisti/6932536/webrev.01/

Changing the nextArg value of MethodHandlesTest to be bigger than
Integer.MAX_VALUE to actually test long arguments reveals a bug on
x86_64.

There were actually two bugs:

1. For i2l and unboxi long values were stored in two slots as 32-bit
words instead of a 64-bit one.

2. The stack-move conversion value was read as 32-bit value and then
shifted which resulted in e.g. 0xffffffff values in 64-bit registers
instead of -1.

Tested: MethodHandlesTest

Tom Rodriguez | 5 Mar 2010 19:17
Picon

Re: Request for reviews (S): 6932536: JSR 292 modified JDK MethodHandlesTest fails on x86_64

Looks good.

tom

On Mar 5, 2010, at 7:30 AM, Christian Thalinger wrote:

> http://cr.openjdk.java.net/~twisti/6932536/webrev.01/
> 
> Changing the nextArg value of MethodHandlesTest to be bigger than
> Integer.MAX_VALUE to actually test long arguments reveals a bug on
> x86_64.
> 
> There were actually two bugs:
> 
> 1. For i2l and unboxi long values were stored in two slots as 32-bit
> words instead of a 64-bit one.
> 
> 2. The stack-move conversion value was read as 32-bit value and then
> shifted which resulted in e.g. 0xffffffff values in 64-bit registers
> instead of -1.
> 
> Tested: MethodHandlesTest
> 

Roland Westrelin | 5 Mar 2010 20:42
Picon

Request for reviews (S): 6932496 c1: deoptimization of jsr subroutine fails on sparcv9

http://cr.openjdk.java.net/~roland/6932496/webrev.00/

Tom Rodriguez | 5 Mar 2010 20:45
Picon

Re: Request for reviews (S): 6932496 c1: deoptimization of jsr subroutine fails on sparcv9

Looks good.

tom

On Mar 5, 2010, at 11:42 AM, Roland Westrelin wrote:

> http://cr.openjdk.java.net/~roland/6932496/webrev.00/
> 

John Rose | 6 Mar 2010 01:51
Picon

Re: Request for reviews (S): 6932536: JSR 292 modified JDK MethodHandlesTest fails on x86_64

On Mar 5, 2010, at 7:30 AM, Christian Thalinger wrote:

> http://cr.openjdk.java.net/~twisti/6932536/webrev.01/

Looks good; thanks.  And thanks for extending the test suite!

-- John

P.S.  I wish we could factor those ifdefs into the assembler.  It would be possible (as it is on SPARC) if x86_32
allowed 64-bit values in one register.  Perhaps there's a way to hide the distinction between a movq and two
movl's (along with the tagged-stack-interpreter stuff) in an assembler macro.  I think it would require
an ADT which encapsulates either a single 64-bit reg or a pair of 32-bit regs (depending in CPU mode). 
That's not worth the effort.

But on SPARC, we should expect to have fewer ifdefs.

Christian Thalinger | 8 Mar 2010 13:41
Picon

Re: Request for reviews (S): 6932536: JSR 292 modified JDK MethodHandlesTest fails on x86_64

On Fri, 2010-03-05 at 16:51 -0800, John Rose wrote:
> On Mar 5, 2010, at 7:30 AM, Christian Thalinger wrote:
> 
> > http://cr.openjdk.java.net/~twisti/6932536/webrev.01/
> 
> Looks good; thanks.  And thanks for extending the test suite!
> 
> -- John
> 
> P.S.  I wish we could factor those ifdefs into the assembler.  It
> would be possible (as it is on SPARC) if x86_32 allowed 64-bit values
> in one register.  Perhaps there's a way to hide the distinction
> between a movq and two movl's (along with the tagged-stack-interpreter
> stuff) in an assembler macro.  I think it would require an ADT which
> encapsulates either a single 64-bit reg or a pair of 32-bit regs
> (depending in CPU mode).  That's not worth the effort.

Would be nice to have.  But as you say, not worth the effort...

> But on SPARC, we should expect to have fewer ifdefs.

I try to.

-- Christian

Christian.Thalinger | 8 Mar 2010 16:02
Picon

hg: jdk7/hotspot-comp/hotspot: 6932536: JSR 292 modified JDK MethodHandlesTest fails on x86_64

Changeset: 51db1e4b379d
Author:    twisti
Date:      2010-03-08 04:46 -0800
URL:       http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/51db1e4b379d

6932536: JSR 292 modified JDK MethodHandlesTest fails on x86_64
Summary: A modified MethodHandlesTest revealed two bugs on x86_64.
Reviewed-by: never, jrose

! src/cpu/x86/vm/methodHandles_x86.cpp


Gmane