This commit is contained in:
Jennifer Godinez 2009-07-30 12:25:39 -07:00
commit 430c84f1ea
474 changed files with 8314 additions and 2965 deletions

View File

@ -38,3 +38,6 @@ c33e7d38c9210741dbc285507403a4b20bd802a0 jdk7-b59
dbb955b1ee59b876dd1f133952b557b48b1d7732 jdk7-b61 dbb955b1ee59b876dd1f133952b557b48b1d7732 jdk7-b61
6107cbff3130c747d243c25a7874cd59db5744a8 jdk7-b62 6107cbff3130c747d243c25a7874cd59db5744a8 jdk7-b62
dfd8506f74c3731bb169ce93c72612d78ee0413b jdk7-b63 dfd8506f74c3731bb169ce93c72612d78ee0413b jdk7-b63
d22867c5f1b295a0a2b3b4bc8999a2676f6e20c3 jdk7-b64
7d3bf00f3cc4f8125de1842521e7567f37dc84b8 jdk7-b65
62109d1b9e7310f29ab51ca6f1d71b899c0ce6b0 jdk7-b66

View File

@ -38,3 +38,6 @@ ffd09e767dfa6d21466183a400f72cf62d53297f jdk7-b57
472c21584cfd7e9c0229ad6a100366a5c03d2976 jdk7-b61 472c21584cfd7e9c0229ad6a100366a5c03d2976 jdk7-b61
c7ed15ab92ce36a09d264a5e34025884b2d7607f jdk7-b62 c7ed15ab92ce36a09d264a5e34025884b2d7607f jdk7-b62
57f7e028c7ad1806500ae89eb3f4cd9a51b10e18 jdk7-b63 57f7e028c7ad1806500ae89eb3f4cd9a51b10e18 jdk7-b63
269c1ec4435dfb7b452ae6e3bdde005d55c5c830 jdk7-b64
e01380cd1de4ce048b87d059d238e5ab5e341947 jdk7-b65
6bad5e3fe50337d95b1416d744780d65bc570da6 jdk7-b66

View File

@ -120,6 +120,7 @@
<th>Base OS and Architecture</th> <th>Base OS and Architecture</th>
<th>OS</th> <th>OS</th>
<th>C/C++ Compiler</th> <th>C/C++ Compiler</th>
<th>BOOT JDK</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -127,57 +128,65 @@
<td>Linux X86 (32-bit)</td> <td>Linux X86 (32-bit)</td>
<td>Fedora 9</td> <td>Fedora 9</td>
<td>gcc 4 </td> <td>gcc 4 </td>
<td>JDK 6u14 FCS </td>
</tr> </tr>
<tr> <tr>
<td>Linux X64 (64-bit)</td> <td>Linux X64 (64-bit)</td>
<td>Fedora 9</td> <td>Fedora 9</td>
<td>gcc 4 </td> <td>gcc 4 </td>
<td>JDK 6u14 FCS </td>
</tr> </tr>
<tr> <tr>
<td>Solaris SPARC (32-bit)</td> <td>Solaris SPARC (32-bit)</td>
<td>Solaris 10 + patches <td>Solaris 10u2 + patches
<br> <br>
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank"> See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads. SunSolve</a> for patch downloads.
</td> </td>
<td>Sun Studio 12</td> <td>Sun Studio 12</td>
<td>JDK 6u14 FCS </td>
</tr> </tr>
<tr> <tr>
<td>Solaris SPARCV9 (64-bit)</td> <td>Solaris SPARCV9 (64-bit)</td>
<td>Solaris 10 + patches <td>Solaris 10u2 + patches
<br> <br>
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank"> See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads. SunSolve</a> for patch downloads.
</td> </td>
<td>Sun Studio 12</td> <td>Sun Studio 12</td>
<td>JDK 6u14 FCS </td>
</tr> </tr>
<tr> <tr>
<td>Solaris X86 (32-bit)</td> <td>Solaris X86 (32-bit)</td>
<td>Solaris 10 + patches <td>Solaris 10u2 + patches
<br> <br>
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank"> See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads. SunSolve</a> for patch downloads.
</td> </td>
<td>Sun Studio 12</td> <td>Sun Studio 12</td>
<td>JDK 6u14 FCS </td>
</tr> </tr>
<tr> <tr>
<td>Solaris X64 (64-bit)</td> <td>Solaris X64 (64-bit)</td>
<td>Solaris 10 + patches <td>Solaris 10u2 + patches
<br> <br>
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank"> See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads. SunSolve</a> for patch downloads.
</td> </td>
<td>Sun Studio 12</td> <td>Sun Studio 12</td>
<td>JDK 6u14 FCS </td>
</tr> </tr>
<tr> <tr>
<td>Windows X86 (32-bit)</td> <td>Windows X86 (32-bit)</td>
<td>Windows XP</td> <td>Windows XP</td>
<td>Microsoft Visual Studio C++ 2008 Standard Edition</td> <td>Microsoft Visual Studio C++ 2008 Standard Edition</td>
<td>JDK 6u14 FCS </td>
</tr> </tr>
<tr> <tr>
<td>Windows X64 (64-bit)</td> <td>Windows X64 (64-bit)</td>
<td>Windows Server 2003 - Enterprise x64 Edition</td> <td>Windows Server 2003 - Enterprise x64 Edition</td>
<td>Microsoft Platform SDK - April 2005</td> <td>Microsoft Platform SDK - April 2005</td>
<td>JDK 6u14 FCS </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -38,3 +38,6 @@ f1e1cccbd13aa96d2d8bd872782ff764010bc22c jdk7-b60
e906b16a12a9a63b615898afa5d9673cbd1c5ab8 jdk7-b61 e906b16a12a9a63b615898afa5d9673cbd1c5ab8 jdk7-b61
65b66117dbd70a493e9644aeb4033cf95a4e3c99 jdk7-b62 65b66117dbd70a493e9644aeb4033cf95a4e3c99 jdk7-b62
d20e45cd539f20405ff843652069cfd7550c5ab3 jdk7-b63 d20e45cd539f20405ff843652069cfd7550c5ab3 jdk7-b63
047dd27fddb607f8135296b3754131f6e13cb8c7 jdk7-b64
97fd9b42f5c2d342b90d18f0a2b57e4117e39415 jdk7-b65
a821e059a961bcb02830280d51f6dd030425c066 jdk7-b66

View File

@ -1,5 +1,5 @@
# #
# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1995-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1995-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1995-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2006-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,6 +1,6 @@
; ;
; Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. ; Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
; ;
; This code is free software; you can redistribute it and/or modify it ; This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1999-2004 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1999-2004 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1995-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1995-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
// //
// Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. // Copyright 2004-2009 Sun Microsystems, Inc. All Rights Reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
// //
// This code is free software; you can redistribute it and/or modify it // This code is free software; you can redistribute it and/or modify it

View File

@ -38,3 +38,6 @@ a77eddcd510c3972717c025cfcef9a60bfa4ecac jdk7-b60
27b728fd1281ab62e9d7e4424f8bbb6ca438d803 jdk7-b61 27b728fd1281ab62e9d7e4424f8bbb6ca438d803 jdk7-b61
a88386380bdaaa5ab4ffbedf22c57bac5dbec034 jdk7-b62 a88386380bdaaa5ab4ffbedf22c57bac5dbec034 jdk7-b62
32c83fb84370a35344676991a48440378e6b6c8a jdk7-b63 32c83fb84370a35344676991a48440378e6b6c8a jdk7-b63
ba36394eb84b949b31212bdb32a518a8f92bab5b jdk7-b64
ba313800759b678979434d6da8ed3bf49eb8bea4 jdk7-b65
57c71ad0341b8b64ed20f81151eb7f06324f8894 jdk7-b66

View File

@ -1,5 +1,5 @@
# #
# Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -24,23 +24,64 @@
package sun.jvm.hotspot.code; package sun.jvm.hotspot.code;
import java.util.*;
import sun.jvm.hotspot.debugger.*; import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.runtime.VM; import sun.jvm.hotspot.runtime.VM;
import sun.jvm.hotspot.utilities.*;
public class DebugInfoReadStream extends CompressedReadStream { public class DebugInfoReadStream extends CompressedReadStream {
private NMethod code; private NMethod code;
private int InvocationEntryBCI; private int InvocationEntryBCI;
private List objectPool; // ArrayList<ObjectValue>
public DebugInfoReadStream(NMethod code, int offset) { public DebugInfoReadStream(NMethod code, int offset) {
super(code.scopesDataBegin(), offset); super(code.scopesDataBegin(), offset);
InvocationEntryBCI = VM.getVM().getInvocationEntryBCI(); InvocationEntryBCI = VM.getVM().getInvocationEntryBCI();
this.code = code; this.code = code;
this.objectPool = null;
}
public DebugInfoReadStream(NMethod code, int offset, List objectPool) {
super(code.scopesDataBegin(), offset);
InvocationEntryBCI = VM.getVM().getInvocationEntryBCI();
this.code = code;
this.objectPool = objectPool;
} }
public OopHandle readOopHandle() { public OopHandle readOopHandle() {
return code.getOopAt(readInt()); return code.getOopAt(readInt());
} }
ScopeValue readObjectValue() {
int id = readInt();
if (Assert.ASSERTS_ENABLED) {
Assert.that(objectPool != null, "object pool does not exist");
for (Iterator itr = objectPool.iterator(); itr.hasNext();) {
ObjectValue ov = (ObjectValue) itr.next();
Assert.that(ov.id() != id, "should not be read twice");
}
}
ObjectValue result = new ObjectValue(id);
// Cache the object since an object field could reference it.
objectPool.add(result);
result.readObject(this);
return result;
}
ScopeValue getCachedObject() {
int id = readInt();
Assert.that(objectPool != null, "object pool does not exist");
for (Iterator itr = objectPool.iterator(); itr.hasNext();) {
ObjectValue ov = (ObjectValue) itr.next();
if (ov.id() == id) {
return ov;
}
}
Assert.that(false, "should not reach here");
return null;
}
public int readBCI() { public int readBCI() {
return readInt() + InvocationEntryBCI; return readInt() + InvocationEntryBCI;
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -29,6 +29,7 @@ import java.io.*;
public class MonitorValue { public class MonitorValue {
private ScopeValue owner; private ScopeValue owner;
private Location basicLock; private Location basicLock;
private boolean eliminated;
// FIXME: not useful yet // FIXME: not useful yet
// MonitorValue(ScopeValue* owner, Location basic_lock); // MonitorValue(ScopeValue* owner, Location basic_lock);
@ -36,10 +37,12 @@ public class MonitorValue {
public MonitorValue(DebugInfoReadStream stream) { public MonitorValue(DebugInfoReadStream stream) {
basicLock = new Location(stream); basicLock = new Location(stream);
owner = ScopeValue.readFrom(stream); owner = ScopeValue.readFrom(stream);
eliminated= stream.readBoolean();
} }
public ScopeValue owner() { return owner; } public ScopeValue owner() { return owner; }
public Location basicLock() { return basicLock; } public Location basicLock() { return basicLock; }
public boolean eliminated() { return eliminated; }
// FIXME: not yet implementable // FIXME: not yet implementable
// void write_on(DebugInfoWriteStream* stream); // void write_on(DebugInfoWriteStream* stream);
@ -50,5 +53,8 @@ public class MonitorValue {
tty.print(","); tty.print(",");
basicLock().printOn(tty); basicLock().printOn(tty);
tty.print("}"); tty.print("}");
if (eliminated) {
tty.print(" (eliminated)");
}
} }
} }

View File

@ -0,0 +1,93 @@
/*
* Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*
*/
package sun.jvm.hotspot.code;
import java.io.*;
import java.util.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.utilities.*;
/** An ObjectValue describes an object eliminated by escape analysis. */
public class ObjectValue extends ScopeValue {
private int id;
private ScopeValue klass;
private List fieldsValue; // ArrayList<ScopeValue>
// Field "boolean visited" is not implemented here since
// it is used only a during debug info creation.
public ObjectValue(int id) {
this.id = id;
klass = null;
fieldsValue = new ArrayList();
}
public boolean isObject() { return true; }
public int id() { return id; }
public ScopeValue getKlass() { return klass; }
public List getFieldsValue() { return fieldsValue; }
public ScopeValue getFieldAt(int i) { return (ScopeValue)fieldsValue.get(i); }
public int fieldsSize() { return fieldsValue.size(); }
// Field "value" is always NULL here since it is used
// only during deoptimization of a compiled frame
// pointing to reallocated object.
public OopHandle getValue() { return null; }
/** Serialization of debugging information */
void readObject(DebugInfoReadStream stream) {
klass = readFrom(stream);
Assert.that(klass.isConstantOop(), "should be constant klass oop");
int length = stream.readInt();
for (int i = 0; i < length; i++) {
ScopeValue val = readFrom(stream);
fieldsValue.add(val);
}
}
// Printing
public void print() {
printOn(System.out);
}
public void printOn(PrintStream tty) {
tty.print("scalarObj[" + id + "]");
}
void printFieldsOn(PrintStream tty) {
if (fieldsValue.size() > 0) {
((ScopeValue)fieldsValue.get(0)).printOn(tty);
}
for (int i = 1; i < fieldsValue.size(); i++) {
tty.print(", ");
((ScopeValue)fieldsValue.get(i)).printOn(tty);
}
}
};

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -27,8 +27,10 @@ package sun.jvm.hotspot.code;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.oops.*;
import sun.jvm.hotspot.runtime.*; import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.utilities.*;
/** ScopeDescs contain the information that makes source-level /** ScopeDescs contain the information that makes source-level
debugging of nmethods possible; each scopeDesc describes a method debugging of nmethods possible; each scopeDesc describes a method
@ -45,10 +47,31 @@ public class ScopeDesc {
private int localsDecodeOffset; private int localsDecodeOffset;
private int expressionsDecodeOffset; private int expressionsDecodeOffset;
private int monitorsDecodeOffset; private int monitorsDecodeOffset;
/** Scalar replaced bjects pool */
private List objects; // ArrayList<ScopeValue>
public ScopeDesc(NMethod code, int decodeOffset) { public ScopeDesc(NMethod code, int decodeOffset) {
this.code = code; this.code = code;
this.decodeOffset = decodeOffset; this.decodeOffset = decodeOffset;
this.objects = decodeObjectValues(DebugInformationRecorder.SERIALIZED_NULL);
// Decode header
DebugInfoReadStream stream = streamAt(decodeOffset);
senderDecodeOffset = stream.readInt();
method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle());
bci = stream.readBCI();
// Decode offsets for body and sender
localsDecodeOffset = stream.readInt();
expressionsDecodeOffset = stream.readInt();
monitorsDecodeOffset = stream.readInt();
}
public ScopeDesc(NMethod code, int decodeOffset, int objectDecodeOffset) {
this.code = code;
this.decodeOffset = decodeOffset;
this.objects = decodeObjectValues(objectDecodeOffset);
// Decode header // Decode header
DebugInfoReadStream stream = streamAt(decodeOffset); DebugInfoReadStream stream = streamAt(decodeOffset);
@ -81,6 +104,11 @@ public class ScopeDesc {
return decodeMonitorValues(monitorsDecodeOffset); return decodeMonitorValues(monitorsDecodeOffset);
} }
/** Returns a List&lt;MonitorValue&gt; */
public List getObjects() {
return objects;
}
/** Stack walking. Returns null if this is the outermost scope. */ /** Stack walking. Returns null if this is the outermost scope. */
public ScopeDesc sender() { public ScopeDesc sender() {
if (isTop()) { if (isTop()) {
@ -131,7 +159,7 @@ public class ScopeDesc {
// //
private DebugInfoReadStream streamAt(int decodeOffset) { private DebugInfoReadStream streamAt(int decodeOffset) {
return new DebugInfoReadStream(code, decodeOffset); return new DebugInfoReadStream(code, decodeOffset, objects);
} }
/** Returns a List&lt;ScopeValue&gt; or null if no values were present */ /** Returns a List&lt;ScopeValue&gt; or null if no values were present */
@ -161,4 +189,22 @@ public class ScopeDesc {
} }
return res; return res;
} }
/** Returns a List&lt;ObjectValue&gt; or null if no values were present */
private List decodeObjectValues(int decodeOffset) {
if (decodeOffset == DebugInformationRecorder.SERIALIZED_NULL) {
return null;
}
List res = new ArrayList();
DebugInfoReadStream stream = new DebugInfoReadStream(code, decodeOffset, res);
int length = stream.readInt();
for (int i = 0; i < length; i++) {
// Objects values are pushed to 'res' array during read so that
// object's fields could reference it (OBJECT_ID_CODE).
ScopeValue.readFrom(stream);
// res.add(ScopeValue.readFrom(stream));
}
Assert.that(res.size() == length, "inconsistent debug information");
return res;
}
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -49,12 +49,15 @@ public abstract class ScopeValue {
static final int CONSTANT_OOP_CODE = 2; static final int CONSTANT_OOP_CODE = 2;
static final int CONSTANT_LONG_CODE = 3; static final int CONSTANT_LONG_CODE = 3;
static final int CONSTANT_DOUBLE_CODE = 4; static final int CONSTANT_DOUBLE_CODE = 4;
static final int CONSTANT_OBJECT_CODE = 5;
static final int CONSTANT_OBJECT_ID_CODE = 6;
public boolean isLocation() { return false; } public boolean isLocation() { return false; }
public boolean isConstantInt() { return false; } public boolean isConstantInt() { return false; }
public boolean isConstantDouble() { return false; } public boolean isConstantDouble() { return false; }
public boolean isConstantLong() { return false; } public boolean isConstantLong() { return false; }
public boolean isConstantOop() { return false; } public boolean isConstantOop() { return false; }
public boolean isObject() { return false; }
public static ScopeValue readFrom(DebugInfoReadStream stream) { public static ScopeValue readFrom(DebugInfoReadStream stream) {
switch (stream.readInt()) { switch (stream.readInt()) {
@ -68,6 +71,10 @@ public abstract class ScopeValue {
return new ConstantLongValue(stream); return new ConstantLongValue(stream);
case CONSTANT_DOUBLE_CODE: case CONSTANT_DOUBLE_CODE:
return new ConstantDoubleValue(stream); return new ConstantDoubleValue(stream);
case CONSTANT_OBJECT_CODE:
return stream.readObjectValue();
case CONSTANT_OBJECT_ID_CODE:
return stream.getCachedObject();
default: default:
Assert.that(false, "should not reach here"); Assert.that(false, "should not reach here");
return null; return null;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -249,6 +249,7 @@ public class ObjectReferenceImpl extends ValueImpl implements ObjectReference {
OopHandle givenHandle = obj.getHandle(); OopHandle givenHandle = obj.getHandle();
for (Iterator itr = monitors.iterator(); itr.hasNext();) { for (Iterator itr = monitors.iterator(); itr.hasNext();) {
MonitorInfo mi = (MonitorInfo) itr.next(); MonitorInfo mi = (MonitorInfo) itr.next();
if (mi.eliminated() && frame.isCompiledFrame()) continue; // skip eliminated monitor
if (givenHandle.equals(mi.owner())) { if (givenHandle.equals(mi.owner())) {
res++; res++;
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -301,6 +301,9 @@ public class ThreadReferenceImpl extends ObjectReferenceImpl
List frameMonitors = frame.getMonitors(); // List<MonitorInfo> List frameMonitors = frame.getMonitors(); // List<MonitorInfo>
for (Iterator miItr = frameMonitors.iterator(); miItr.hasNext(); ) { for (Iterator miItr = frameMonitors.iterator(); miItr.hasNext(); ) {
sun.jvm.hotspot.runtime.MonitorInfo mi = (sun.jvm.hotspot.runtime.MonitorInfo) miItr.next(); sun.jvm.hotspot.runtime.MonitorInfo mi = (sun.jvm.hotspot.runtime.MonitorInfo) miItr.next();
if (mi.eliminated() && frame.isCompiledFrame()) {
continue; // skip eliminated monitor
}
OopHandle obj = mi.owner(); OopHandle obj = mi.owner();
if (obj == null) { if (obj == null) {
// this monitor doesn't have an owning object so skip it // this monitor doesn't have an owning object so skip it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -131,8 +131,18 @@ public class CompiledVFrame extends JavaVFrame {
List result = new ArrayList(monitors.size()); List result = new ArrayList(monitors.size());
for (int i = 0; i < monitors.size(); i++) { for (int i = 0; i < monitors.size(); i++) {
MonitorValue mv = (MonitorValue) monitors.get(i); MonitorValue mv = (MonitorValue) monitors.get(i);
StackValue ownerSV = createStackValue(mv.owner()); // it is an oop ScopeValue ov = mv.owner();
result.add(new MonitorInfo(ownerSV.getObject(), resolveMonitorLock(mv.basicLock()))); StackValue ownerSV = createStackValue(ov); // it is an oop
if (ov.isObject()) { // The owner object was scalar replaced
Assert.that(mv.eliminated() && ownerSV.objIsScalarReplaced(), "monitor should be eliminated for scalar replaced object");
// Put klass for scalar replaced object.
ScopeValue kv = ((ObjectValue)ov).getKlass();
Assert.that(kv.isConstantOop(), "klass should be oop constant for scalar replaced object");
OopHandle k = ((ConstantOopReadValue)kv).getValue();
result.add(new MonitorInfo(k, resolveMonitorLock(mv.basicLock()), mv.eliminated(), true));
} else {
result.add(new MonitorInfo(ownerSV.getObject(), resolveMonitorLock(mv.basicLock()), mv.eliminated(), false));
}
} }
return result; return result;
} }
@ -212,12 +222,12 @@ public class CompiledVFrame extends JavaVFrame {
// long or is unused. He always saves a long. Here we know // long or is unused. He always saves a long. Here we know
// a long was saved, but we only want an narrow oop back. Narrow the // a long was saved, but we only want an narrow oop back. Narrow the
// saved long to the narrow oop that the JVM wants. // saved long to the narrow oop that the JVM wants.
return new StackValue(valueAddr.getCompOopHandleAt(VM.getVM().getIntSize())); return new StackValue(valueAddr.getCompOopHandleAt(VM.getVM().getIntSize()), 0);
} else { } else {
return new StackValue(valueAddr.getCompOopHandleAt(0)); return new StackValue(valueAddr.getCompOopHandleAt(0), 0);
} }
} else if( loc.holdsOop() ) { // Holds an oop? } else if( loc.holdsOop() ) { // Holds an oop?
return new StackValue(valueAddr.getOopHandleAt(0)); return new StackValue(valueAddr.getOopHandleAt(0), 0);
} else if( loc.holdsDouble() ) { } else if( loc.holdsDouble() ) {
// Double value in a single stack slot // Double value in a single stack slot
return new StackValue(valueAddr.getJIntAt(0) & 0xFFFFFFFF); return new StackValue(valueAddr.getJIntAt(0) & 0xFFFFFFFF);
@ -277,7 +287,7 @@ public class CompiledVFrame extends JavaVFrame {
return new StackValue(((ConstantIntValue) sv).getValue() & 0xFFFFFFFF); return new StackValue(((ConstantIntValue) sv).getValue() & 0xFFFFFFFF);
} else if (sv.isConstantOop()) { } else if (sv.isConstantOop()) {
// constant oop // constant oop
return new StackValue(((ConstantOopReadValue) sv).getValue()); return new StackValue(((ConstantOopReadValue) sv).getValue(), 0);
} else if (sv.isConstantDouble()) { } else if (sv.isConstantDouble()) {
// Constant double in a single stack slot // Constant double in a single stack slot
double d = ((ConstantDoubleValue) sv).getValue(); double d = ((ConstantDoubleValue) sv).getValue();
@ -285,6 +295,9 @@ public class CompiledVFrame extends JavaVFrame {
} else if (VM.getVM().isLP64() && sv.isConstantLong()) { } else if (VM.getVM().isLP64() && sv.isConstantLong()) {
// Constant long in a single stack slot // Constant long in a single stack slot
return new StackValue(((ConstantLongValue) sv).getValue() & 0xFFFFFFFF); return new StackValue(((ConstantLongValue) sv).getValue() & 0xFFFFFFFF);
} else if (sv.isObject()) {
// Scalar replaced object in compiled frame
return new StackValue(((ObjectValue)sv).getValue(), 1);
} }
// Unknown ScopeValue type // Unknown ScopeValue type

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -61,7 +61,7 @@ public class InterpretedVFrame extends JavaVFrame {
StackValue sv; StackValue sv;
if (oopMask.isOop(i)) { if (oopMask.isOop(i)) {
// oop value // oop value
sv = new StackValue(addr.getOopHandleAt(0)); sv = new StackValue(addr.getOopHandleAt(0), 0);
} else { } else {
// integer // integer
// Fetch a signed integer the size of a stack slot // Fetch a signed integer the size of a stack slot
@ -95,7 +95,7 @@ public class InterpretedVFrame extends JavaVFrame {
StackValue sv; StackValue sv;
if (oopMask.isOop(i + nofLocals)) { if (oopMask.isOop(i + nofLocals)) {
// oop value // oop value
sv = new StackValue(addr.getOopHandleAt(0)); sv = new StackValue(addr.getOopHandleAt(0), 0);
} else { } else {
// integer // integer
// Fetch a signed integer the size of a stack slot // Fetch a signed integer the size of a stack slot
@ -113,7 +113,7 @@ public class InterpretedVFrame extends JavaVFrame {
for (BasicObjectLock current = getFrame().interpreterFrameMonitorEnd(); for (BasicObjectLock current = getFrame().interpreterFrameMonitorEnd();
current.address().lessThan(getFrame().interpreterFrameMonitorBegin().address()); current.address().lessThan(getFrame().interpreterFrameMonitorBegin().address());
current = getFrame().nextMonitorInInterpreterFrame(current)) { current = getFrame().nextMonitorInInterpreterFrame(current)) {
result.add(new MonitorInfo(current.obj(), current.lock())); result.add(new MonitorInfo(current.obj(), current.lock(), false, false));
} }
return result; return result;
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -25,16 +25,39 @@
package sun.jvm.hotspot.runtime; package sun.jvm.hotspot.runtime;
import sun.jvm.hotspot.debugger.*; import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.utilities.*;
public class MonitorInfo { public class MonitorInfo {
private OopHandle owner; private OopHandle owner;
private BasicLock lock; private BasicLock lock;
private OopHandle ownerKlass;
private boolean eliminated;
private boolean ownerIsScalarReplaced;
public MonitorInfo(OopHandle owner, BasicLock lock) { public MonitorInfo(OopHandle owner, BasicLock lock, boolean eliminated, boolean ownerIsScalarReplaced) {
this.owner = owner; if (!ownerIsScalarReplaced) {
this.lock = lock; this.owner = owner;
this.ownerKlass = null;
} else {
Assert.that(eliminated, "monitor should be eliminated for scalar replaced object");
this.owner = null;
this.ownerKlass = owner;
}
this.eliminated = eliminated;
this.ownerIsScalarReplaced = ownerIsScalarReplaced;
}
public OopHandle owner() {
Assert.that(!ownerIsScalarReplaced, "should not be called for scalar replaced object");
return owner;
}
public OopHandle ownerKlass() {
Assert.that(ownerIsScalarReplaced, "should not be called for not scalar replaced object");
return ownerKlass;
} }
public OopHandle owner() { return owner; }
public BasicLock lock() { return lock; } public BasicLock lock() { return lock; }
public boolean eliminated() { return eliminated; }
public boolean ownerIsScalarReplaced() { return ownerIsScalarReplaced; }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -37,9 +37,11 @@ public class StackValue {
type = BasicType.getTConflict(); type = BasicType.getTConflict();
} }
public StackValue(OopHandle h) { public StackValue(OopHandle h, long scalar_replaced) {
handleValue = h; handleValue = h;
type = BasicType.getTObject(); type = BasicType.getTObject();
integerValue = scalar_replaced;
Assert.that(integerValue == 0 || handleValue == null, "not null object should not be marked as scalar replaced");
} }
public StackValue(long i) { public StackValue(long i) {
@ -59,6 +61,13 @@ public class StackValue {
return handleValue; return handleValue;
} }
boolean objIsScalarReplaced() {
if (Assert.ASSERTS_ENABLED) {
Assert.that(type == BasicType.getTObject(), "type check");
}
return integerValue != 0;
}
public long getInteger() { public long getInteger() {
if (Assert.ASSERTS_ENABLED) { if (Assert.ASSERTS_ENABLED) {
Assert.that(type == BasicType.getTInt(), "type check"); Assert.that(type == BasicType.getTInt(), "type check");

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -161,6 +161,8 @@ public class OopTreeNodeAdapter extends FieldTreeNodeAdapter {
child = new OopTreeNodeAdapter(field.getValue(getObj()), field.getID(), getTreeTableMode()); child = new OopTreeNodeAdapter(field.getValue(getObj()), field.getID(), getTreeTableMode());
} catch (AddressException e) { } catch (AddressException e) {
child = new BadOopTreeNodeAdapter(field.getValueAsOopHandle(getObj()), field.getID(), getTreeTableMode()); child = new BadOopTreeNodeAdapter(field.getValueAsOopHandle(getObj()), field.getID(), getTreeTableMode());
} catch (UnknownOopException e) {
child = new BadOopTreeNodeAdapter(field.getValueAsOopHandle(getObj()), field.getID(), getTreeTableMode());
} }
} }
++curField; ++curField;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2004-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -135,6 +135,10 @@ public class JSJavaThread extends JSJavaInstance {
List frameMonitors = frame.getMonitors(); // List<MonitorInfo> List frameMonitors = frame.getMonitors(); // List<MonitorInfo>
for (Iterator miItr = frameMonitors.iterator(); miItr.hasNext(); ) { for (Iterator miItr = frameMonitors.iterator(); miItr.hasNext(); ) {
MonitorInfo mi = (MonitorInfo) miItr.next(); MonitorInfo mi = (MonitorInfo) miItr.next();
if (mi.eliminated() && frame.isCompiledFrame()) {
continue; // skip eliminated monitor
}
OopHandle obj = mi.owner(); OopHandle obj = mi.owner();
if (obj == null) { if (obj == null) {
// this monitor doesn't have an owning object so skip it // this monitor doesn't have an owning object so skip it

View File

@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2009
HS_MAJOR_VER=16 HS_MAJOR_VER=16
HS_MINOR_VER=0 HS_MINOR_VER=0
HS_BUILD_NUMBER=05 HS_BUILD_NUMBER=07
JDK_MAJOR_VER=1 JDK_MAJOR_VER=1
JDK_MINOR_VER=7 JDK_MINOR_VER=7

View File

@ -1,5 +1,5 @@
# #
# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2006-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -68,7 +68,9 @@ endif
# CFLAGS_WARN holds compiler options to suppress/enable warnings. # CFLAGS_WARN holds compiler options to suppress/enable warnings.
# Compiler warnings are treated as errors # Compiler warnings are treated as errors
CFLAGS_WARN = +w -errwarn ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
CFLAGS_WARN = +w -errwarn
endif
CFLAGS += $(CFLAGS_WARN) CFLAGS += $(CFLAGS_WARN)
ifeq ("${Platform_compiler}", "sparcWorks") ifeq ("${Platform_compiler}", "sparcWorks")

View File

@ -1,5 +1,5 @@
# #
# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -41,7 +41,7 @@ ifeq ($(COMPILER_REV_NUMERIC),509)
endif endif
# Workaround SS11 bug 6345274 (all platforms) (Fixed in SS11 patch and SS12) # Workaround SS11 bug 6345274 (all platforms) (Fixed in SS11 patch and SS12)
ifeq ($(COMPILER_REV_NUMERIC),508)) ifeq ($(COMPILER_REV_NUMERIC),508)
OPT_CFLAGS/ciTypeFlow.o = $(OPT_CFLAGS/O2) OPT_CFLAGS/ciTypeFlow.o = $(OPT_CFLAGS/O2)
endif # COMPILER_REV_NUMERIC == 508 endif # COMPILER_REV_NUMERIC == 508

View File

@ -1,5 +1,5 @@
# #
# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,6 +1,6 @@
@echo off @echo off
REM REM
REM Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. REM Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM REM
REM This code is free software; you can redistribute it and/or modify it REM This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2006-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
# #
# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it

View File

@ -4208,6 +4208,7 @@ void MacroAssembler::g1_write_barrier_pre(Register obj, Register index, int offs
PtrQueue::byte_offset_of_active()), PtrQueue::byte_offset_of_active()),
tmp); tmp);
} }
// Check on whether to annul. // Check on whether to annul.
br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, tmp, filtered); br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, tmp, filtered);
delayed() -> nop(); delayed() -> nop();
@ -4215,13 +4216,13 @@ void MacroAssembler::g1_write_barrier_pre(Register obj, Register index, int offs
// satb_log_barrier_work1(tmp, offset); // satb_log_barrier_work1(tmp, offset);
if (index == noreg) { if (index == noreg) {
if (Assembler::is_simm13(offset)) { if (Assembler::is_simm13(offset)) {
ld_ptr(obj, offset, tmp); load_heap_oop(obj, offset, tmp);
} else { } else {
set(offset, tmp); set(offset, tmp);
ld_ptr(obj, tmp, tmp); load_heap_oop(obj, tmp, tmp);
} }
} else { } else {
ld_ptr(obj, index, tmp); load_heap_oop(obj, index, tmp);
} }
// satb_log_barrier_work2(obj, tmp, offset); // satb_log_barrier_work2(obj, tmp, offset);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -371,7 +371,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
} }
__ move(value.result(), array_addr, null_check_info); __ move(value.result(), array_addr, null_check_info);
if (obj_store) { if (obj_store) {
// Is this precise? // Precise card mark
post_barrier(LIR_OprFact::address(array_addr), value.result()); post_barrier(LIR_OprFact::address(array_addr), value.result());
} }
} }
@ -685,11 +685,8 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
LIR_Opr result = rlock_result(x); LIR_Opr result = rlock_result(x);
__ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result); __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result);
if (type == objectType) { // Write-barrier needed for Object fields. if (type == objectType) { // Write-barrier needed for Object fields.
#ifdef PRECISE_CARDMARK // Precise card mark since could either be object or array
post_barrier(addr, val.result()); post_barrier(addr, val.result());
#else
post_barrier(obj.result(), val.result());
#endif // PRECISE_CARDMARK
} }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1891,17 +1891,17 @@ RegMask Matcher::modL_proj_mask() {
// The intptr_t operand types, defined by textual substitution. // The intptr_t operand types, defined by textual substitution.
// (Cf. opto/type.hpp. This lets us avoid many, many other ifdefs.) // (Cf. opto/type.hpp. This lets us avoid many, many other ifdefs.)
#ifdef _LP64 #ifdef _LP64
#define immX immL #define immX immL
#define immX13 immL13 #define immX13 immL13
#define immX13m7 immL13m7 #define immX13m7 immL13m7
#define iRegX iRegL #define iRegX iRegL
#define g1RegX g1RegL #define g1RegX g1RegL
#else #else
#define immX immI #define immX immI
#define immX13 immI13 #define immX13 immI13
#define immX13m7 immI13m7 #define immX13m7 immI13m7
#define iRegX iRegI #define iRegX iRegI
#define g1RegX g1RegI #define g1RegX g1RegI
#endif #endif
//----------ENCODING BLOCK----------------------------------------------------- //----------ENCODING BLOCK-----------------------------------------------------
@ -3446,6 +3446,15 @@ operand immI() %{
interface(CONST_INTER); interface(CONST_INTER);
%} %}
// Integer Immediate: 8-bit
operand immI8() %{
predicate(Assembler::is_simm(n->get_int(), 8));
match(ConI);
op_cost(0);
format %{ %}
interface(CONST_INTER);
%}
// Integer Immediate: 13-bit // Integer Immediate: 13-bit
operand immI13() %{ operand immI13() %{
predicate(Assembler::is_simm13(n->get_int())); predicate(Assembler::is_simm13(n->get_int()));
@ -3466,6 +3475,15 @@ operand immI13m7() %{
interface(CONST_INTER); interface(CONST_INTER);
%} %}
// Integer Immediate: 16-bit
operand immI16() %{
predicate(Assembler::is_simm(n->get_int(), 16));
match(ConI);
op_cost(0);
format %{ %}
interface(CONST_INTER);
%}
// Unsigned (positive) Integer Immediate: 13-bit // Unsigned (positive) Integer Immediate: 13-bit
operand immU13() %{ operand immU13() %{
predicate((0 <= n->get_int()) && Assembler::is_simm13(n->get_int())); predicate((0 <= n->get_int()) && Assembler::is_simm13(n->get_int()));
@ -5544,7 +5562,7 @@ instruct loadUB(iRegI dst, memory mem) %{
ins_encode %{ ins_encode %{
__ ldub($mem$$Address, $dst$$Register); __ ldub($mem$$Address, $dst$$Register);
%} %}
ins_pipe(iload_mask_mem); ins_pipe(iload_mem);
%} %}
// Load Unsigned Byte (8bit UNsigned) into a Long Register // Load Unsigned Byte (8bit UNsigned) into a Long Register
@ -5557,7 +5575,22 @@ instruct loadUB2L(iRegL dst, memory mem) %{
ins_encode %{ ins_encode %{
__ ldub($mem$$Address, $dst$$Register); __ ldub($mem$$Address, $dst$$Register);
%} %}
ins_pipe(iload_mask_mem); ins_pipe(iload_mem);
%}
// Load Unsigned Byte (8 bit UNsigned) with 8-bit mask into Long Register
instruct loadUB2L_immI8(iRegL dst, memory mem, immI8 mask) %{
match(Set dst (ConvI2L (AndI (LoadUB mem) mask)));
ins_cost(MEMORY_REF_COST + DEFAULT_COST);
size(2*4);
format %{ "LDUB $mem,$dst\t# ubyte & 8-bit mask -> long\n\t"
"AND $dst,$mask,$dst" %}
ins_encode %{
__ ldub($mem$$Address, $dst$$Register);
__ and3($dst$$Register, $mask$$constant, $dst$$Register);
%}
ins_pipe(iload_mem);
%} %}
// Load Short (16bit signed) // Load Short (16bit signed)
@ -5610,7 +5643,7 @@ instruct loadUS(iRegI dst, memory mem) %{
ins_encode %{ ins_encode %{
__ lduh($mem$$Address, $dst$$Register); __ lduh($mem$$Address, $dst$$Register);
%} %}
ins_pipe(iload_mask_mem); ins_pipe(iload_mem);
%} %}
// Load Unsigned Short/Char (16 bit UNsigned) to Byte (8 bit signed) // Load Unsigned Short/Char (16 bit UNsigned) to Byte (8 bit signed)
@ -5636,7 +5669,56 @@ instruct loadUS2L(iRegL dst, memory mem) %{
ins_encode %{ ins_encode %{
__ lduh($mem$$Address, $dst$$Register); __ lduh($mem$$Address, $dst$$Register);
%} %}
ins_pipe(iload_mask_mem); ins_pipe(iload_mem);
%}
// Load Unsigned Short/Char (16bit UNsigned) with mask 0xFF into a Long Register
instruct loadUS2L_immI_255(iRegL dst, indOffset13m7 mem, immI_255 mask) %{
match(Set dst (ConvI2L (AndI (LoadUS mem) mask)));
ins_cost(MEMORY_REF_COST);
size(4);
format %{ "LDUB $mem+1,$dst\t! ushort/char & 0xFF -> long" %}
ins_encode %{
__ ldub($mem$$Address, $dst$$Register, 1); // LSB is index+1 on BE
%}
ins_pipe(iload_mem);
%}
// Load Unsigned Short/Char (16bit UNsigned) with a 13-bit mask into a Long Register
instruct loadUS2L_immI13(iRegL dst, memory mem, immI13 mask) %{
match(Set dst (ConvI2L (AndI (LoadUS mem) mask)));
ins_cost(MEMORY_REF_COST + DEFAULT_COST);
size(2*4);
format %{ "LDUH $mem,$dst\t! ushort/char & 13-bit mask -> long\n\t"
"AND $dst,$mask,$dst" %}
ins_encode %{
Register Rdst = $dst$$Register;
__ lduh($mem$$Address, Rdst);
__ and3(Rdst, $mask$$constant, Rdst);
%}
ins_pipe(iload_mem);
%}
// Load Unsigned Short/Char (16bit UNsigned) with a 16-bit mask into a Long Register
instruct loadUS2L_immI16(iRegL dst, memory mem, immI16 mask, iRegL tmp) %{
match(Set dst (ConvI2L (AndI (LoadUS mem) mask)));
effect(TEMP dst, TEMP tmp);
ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST);
size(3*4);
format %{ "LDUH $mem,$dst\t! ushort/char & 16-bit mask -> long\n\t"
"SET $mask,$tmp\n\t"
"AND $dst,$tmp,$dst" %}
ins_encode %{
Register Rdst = $dst$$Register;
Register Rtmp = $tmp$$Register;
__ lduh($mem$$Address, Rdst);
__ set($mask$$constant, Rtmp);
__ and3(Rdst, Rtmp, Rdst);
%}
ins_pipe(iload_mem);
%} %}
// Load Integer // Load Integer
@ -5718,6 +5800,68 @@ instruct loadI2L(iRegL dst, memory mem) %{
ins_encode %{ ins_encode %{
__ ldsw($mem$$Address, $dst$$Register); __ ldsw($mem$$Address, $dst$$Register);
%} %}
ins_pipe(iload_mask_mem);
%}
// Load Integer with mask 0xFF into a Long Register
instruct loadI2L_immI_255(iRegL dst, indOffset13m7 mem, immI_255 mask) %{
match(Set dst (ConvI2L (AndI (LoadI mem) mask)));
ins_cost(MEMORY_REF_COST);
size(4);
format %{ "LDUB $mem+3,$dst\t! int & 0xFF -> long" %}
ins_encode %{
__ ldub($mem$$Address, $dst$$Register, 3); // LSB is index+3 on BE
%}
ins_pipe(iload_mem);
%}
// Load Integer with mask 0xFFFF into a Long Register
instruct loadI2L_immI_65535(iRegL dst, indOffset13m7 mem, immI_65535 mask) %{
match(Set dst (ConvI2L (AndI (LoadI mem) mask)));
ins_cost(MEMORY_REF_COST);
size(4);
format %{ "LDUH $mem+2,$dst\t! int & 0xFFFF -> long" %}
ins_encode %{
__ lduh($mem$$Address, $dst$$Register, 2); // LSW is index+2 on BE
%}
ins_pipe(iload_mem);
%}
// Load Integer with a 13-bit mask into a Long Register
instruct loadI2L_immI13(iRegL dst, memory mem, immI13 mask) %{
match(Set dst (ConvI2L (AndI (LoadI mem) mask)));
ins_cost(MEMORY_REF_COST + DEFAULT_COST);
size(2*4);
format %{ "LDUW $mem,$dst\t! int & 13-bit mask -> long\n\t"
"AND $dst,$mask,$dst" %}
ins_encode %{
Register Rdst = $dst$$Register;
__ lduw($mem$$Address, Rdst);
__ and3(Rdst, $mask$$constant, Rdst);
%}
ins_pipe(iload_mem);
%}
// Load Integer with a 32-bit mask into a Long Register
instruct loadI2L_immI(iRegL dst, memory mem, immI mask, iRegL tmp) %{
match(Set dst (ConvI2L (AndI (LoadI mem) mask)));
effect(TEMP dst, TEMP tmp);
ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST);
size(3*4);
format %{ "LDUW $mem,$dst\t! int & 32-bit mask -> long\n\t"
"SET $mask,$tmp\n\t"
"AND $dst,$tmp,$dst" %}
ins_encode %{
Register Rdst = $dst$$Register;
Register Rtmp = $tmp$$Register;
__ lduw($mem$$Address, Rdst);
__ set($mask$$constant, Rtmp);
__ and3(Rdst, Rtmp, Rdst);
%}
ins_pipe(iload_mem); ins_pipe(iload_mem);
%} %}

View File

@ -6805,14 +6805,18 @@ void MacroAssembler::g1_write_barrier_pre(Register obj,
jcc(Assembler::equal, done); jcc(Assembler::equal, done);
// if (x.f == NULL) goto done; // if (x.f == NULL) goto done;
cmpptr(Address(obj, 0), NULL_WORD); #ifdef _LP64
load_heap_oop(tmp2, Address(obj, 0));
#else
movptr(tmp2, Address(obj, 0));
#endif
cmpptr(tmp2, (int32_t) NULL_WORD);
jcc(Assembler::equal, done); jcc(Assembler::equal, done);
// Can we store original value in the thread's buffer? // Can we store original value in the thread's buffer?
LP64_ONLY(movslq(tmp, index);)
movptr(tmp2, Address(obj, 0));
#ifdef _LP64 #ifdef _LP64
movslq(tmp, index);
cmpq(tmp, 0); cmpq(tmp, 0);
#else #else
cmpl(index, 0); cmpl(index, 0);
@ -6834,8 +6838,7 @@ void MacroAssembler::g1_write_barrier_pre(Register obj,
if(tosca_live) push(rax); if(tosca_live) push(rax);
push(obj); push(obj);
#ifdef _LP64 #ifdef _LP64
movq(c_rarg0, Address(obj, 0)); call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), tmp2, r15_thread);
call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), c_rarg0, r15_thread);
#else #else
push(thread); push(thread);
call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), tmp2, thread); call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), tmp2, thread);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it

View File

@ -1372,6 +1372,8 @@ void InterpreterMacroAssembler::profile_null_seen(Register mdp) {
// If no method data exists, go to profile_continue. // If no method data exists, go to profile_continue.
test_method_data_pointer(mdp, profile_continue); test_method_data_pointer(mdp, profile_continue);
set_mdp_flag_at(mdp, BitData::null_seen_byte_constant());
// The method data pointer needs to be updated. // The method data pointer needs to be updated.
int mdp_delta = in_bytes(BitData::bit_data_size()); int mdp_delta = in_bytes(BitData::bit_data_size());
if (TypeProfileCasts) { if (TypeProfileCasts) {

Some files were not shown because too many files have changed in this diff Show More