Merge

Wed, 22 Jan 2014 17:42:23 -0800

author
kvn
date
Wed, 22 Jan 2014 17:42:23 -0800
changeset 6503
a9becfeecd1b
parent 6502
3514ee402842
parent 6225
22cfca978a03
child 6504
3f3c97187f82

Merge

agent/src/os/linux/libproc.h file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/c2_globals_sparc.hpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/globalDefinitions_sparc.hpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/globals_sparc.hpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/sharedRuntime_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/sparc.ad file | annotate | diff | comparison | revisions
src/cpu/x86/vm/c2_globals_x86.hpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/globalDefinitions_x86.hpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/sharedRuntime_x86_32.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/sharedRuntime_x86_64.cpp file | annotate | diff | comparison | revisions
src/cpu/zero/vm/cppInterpreter_zero.cpp file | annotate | diff | comparison | revisions
src/cpu/zero/vm/globals_zero.hpp file | annotate | diff | comparison | revisions
src/cpu/zero/vm/sharedRuntime_zero.cpp file | annotate | diff | comparison | revisions
src/os/posix/vm/os_posix.hpp file | annotate | diff | comparison | revisions
src/share/tools/hsdis/hsdis.c file | annotate | diff | comparison | revisions
src/share/vm/adlc/adlparse.cpp file | annotate | diff | comparison | revisions
src/share/vm/adlc/archDesc.cpp file | annotate | diff | comparison | revisions
src/share/vm/adlc/formssel.cpp file | annotate | diff | comparison | revisions
src/share/vm/adlc/formssel.hpp file | annotate | diff | comparison | revisions
src/share/vm/adlc/output_c.cpp file | annotate | diff | comparison | revisions
src/share/vm/adlc/output_h.cpp file | annotate | diff | comparison | revisions
src/share/vm/asm/assembler.hpp file | annotate | diff | comparison | revisions
src/share/vm/c1/c1_FrameMap.cpp file | annotate | diff | comparison | revisions
src/share/vm/c1/c1_globals.hpp file | annotate | diff | comparison | revisions
src/share/vm/code/relocInfo.cpp file | annotate | diff | comparison | revisions
src/share/vm/code/stubs.hpp file | annotate | diff | comparison | revisions
src/share/vm/compiler/compileBroker.cpp file | annotate | diff | comparison | revisions
src/share/vm/compiler/disassembler.hpp file | annotate | diff | comparison | revisions
src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp file | annotate | diff | comparison | revisions
src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp file | annotate | diff | comparison | revisions
src/share/vm/interpreter/bytecodeInterpreter.cpp file | annotate | diff | comparison | revisions
src/share/vm/interpreter/templateTable.hpp file | annotate | diff | comparison | revisions
src/share/vm/memory/allocation.cpp file | annotate | diff | comparison | revisions
src/share/vm/memory/space.hpp file | annotate | diff | comparison | revisions
src/share/vm/oops/instanceKlass.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/block.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/block.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/c2compiler.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/callGenerator.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/callnode.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/chaitin.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/classes.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/compile.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/compile.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/gcm.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/generateOptoStub.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/graphKit.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/graphKit.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/idealKit.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/idealKit.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/lcm.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/loopTransform.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/macro.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/matcher.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/memnode.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/memnode.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/node.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/output.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/output.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/parse.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/parse1.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/parse2.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/phase.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/phase.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/regalloc.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/type.cpp file | annotate | diff | comparison | revisions
src/share/vm/prims/forte.cpp file | annotate | diff | comparison | revisions
src/share/vm/prims/nativeLookup.cpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/arguments.cpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/atomic.cpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/deoptimization.cpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/globals.hpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/sharedRuntime.cpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/sharedRuntime.hpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/sweeper.cpp file | annotate | diff | comparison | revisions
src/share/vm/utilities/bitMap.cpp file | annotate | diff | comparison | revisions
src/share/vm/utilities/decoder.cpp file | annotate | diff | comparison | revisions
src/share/vm/utilities/elfFile.cpp file | annotate | diff | comparison | revisions
src/share/vm/utilities/elfFile.hpp file | annotate | diff | comparison | revisions
src/share/vm/utilities/macros.hpp file | annotate | diff | comparison | revisions
     1.1 --- a/.hgtags	Thu Jan 16 14:25:51 2014 +0100
     1.2 +++ b/.hgtags	Wed Jan 22 17:42:23 2014 -0800
     1.3 @@ -404,3 +404,10 @@
     1.4  fca262db9c4309f99d2f5542ab0780e45c2f1578 jdk8-b120
     1.5  41f4cad94c581034d4c427d2aaabcc20f26342d0 hs25-b63
     1.6  5f07ec8bb982c48567693d3ef8bdfd4bdf1836d4 jdk8-b121
     1.7 +61ee6bab0763028be1dfbb8513232f1c85628945 hs25-b64
     1.8 +55fb97c4c58d6ed4db8ec02a382ba518d9265815 hs25-b65
     1.9 +d3521d8e562a782f66fc0dfdebeffba2c7e3471d jdk8-b122
    1.10 +591135a7d6f96c0ef281d078cee9a8d8c342d45c jdk8-b123
    1.11 +c89630a122b43d0eabd78b74f6498a1c3cf04ca3 jdk8u20-b00
    1.12 +c89630a122b43d0eabd78b74f6498a1c3cf04ca3 hs25.20-b00
    1.13 +412d3b5fe90e54c0ff9d9ac7374b98607c561d5a hs25.20-b01
     2.1 --- a/agent/make/Makefile	Thu Jan 16 14:25:51 2014 +0100
     2.2 +++ b/agent/make/Makefile	Wed Jan 22 17:42:23 2014 -0800
     2.3 @@ -1,5 +1,5 @@
     2.4  #
     2.5 -# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
     2.6 +# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
     2.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     2.8  #
     2.9  # This code is free software; you can redistribute it and/or modify it
     3.1 --- a/agent/src/os/linux/libproc.h	Thu Jan 16 14:25:51 2014 +0100
     3.2 +++ b/agent/src/os/linux/libproc.h	Wed Jan 22 17:42:23 2014 -0800
     3.3 @@ -1,5 +1,5 @@
     3.4  /*
     3.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
     3.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
     3.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3.8   *
     3.9   * This code is free software; you can redistribute it and/or modify it
     4.1 --- a/agent/src/os/linux/salibelf.c	Thu Jan 16 14:25:51 2014 +0100
     4.2 +++ b/agent/src/os/linux/salibelf.c	Wed Jan 22 17:42:23 2014 -0800
     4.3 @@ -1,5 +1,5 @@
     4.4  /*
     4.5 - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
     4.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
     4.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4.8   *
     4.9   * This code is free software; you can redistribute it and/or modify it
     5.1 --- a/agent/src/os/linux/symtab.c	Thu Jan 16 14:25:51 2014 +0100
     5.2 +++ b/agent/src/os/linux/symtab.c	Wed Jan 22 17:42:23 2014 -0800
     5.3 @@ -1,5 +1,5 @@
     5.4  /*
     5.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
     5.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
     5.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5.8   *
     5.9   * This code is free software; you can redistribute it and/or modify it
     6.1 --- a/agent/src/os/solaris/proc/saproc.cpp	Thu Jan 16 14:25:51 2014 +0100
     6.2 +++ b/agent/src/os/solaris/proc/saproc.cpp	Wed Jan 22 17:42:23 2014 -0800
     6.3 @@ -1,5 +1,5 @@
     6.4  /*
     6.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
     6.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
     6.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     6.8   *
     6.9   * This code is free software; you can redistribute it and/or modify it
     7.1 --- a/agent/src/os/win32/windbg/sawindbg.cpp	Thu Jan 16 14:25:51 2014 +0100
     7.2 +++ b/agent/src/os/win32/windbg/sawindbg.cpp	Wed Jan 22 17:42:23 2014 -0800
     7.3 @@ -1,5 +1,5 @@
     7.4  /*
     7.5 - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
     7.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
     7.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     7.8   *
     7.9   * This code is free software; you can redistribute it and/or modify it
     8.1 --- a/agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java	Thu Jan 16 14:25:51 2014 +0100
     8.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java	Wed Jan 22 17:42:23 2014 -0800
     8.3 @@ -1,5 +1,5 @@
     8.4  /*
     8.5 - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
     8.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
     8.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     8.8   *
     8.9   * This code is free software; you can redistribute it and/or modify it
     9.1 --- a/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java	Thu Jan 16 14:25:51 2014 +0100
     9.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java	Wed Jan 22 17:42:23 2014 -0800
     9.3 @@ -1,5 +1,5 @@
     9.4  /*
     9.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
     9.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
     9.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     9.8   *
     9.9   * This code is free software; you can redistribute it and/or modify it
    10.1 --- a/agent/src/share/classes/sun/jvm/hotspot/HSDB.java	Thu Jan 16 14:25:51 2014 +0100
    10.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/HSDB.java	Wed Jan 22 17:42:23 2014 -0800
    10.3 @@ -1,5 +1,5 @@
    10.4  /*
    10.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    10.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    10.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    10.8   *
    10.9   * This code is free software; you can redistribute it and/or modify it
    11.1 --- a/agent/src/share/classes/sun/jvm/hotspot/LinuxVtblAccess.java	Thu Jan 16 14:25:51 2014 +0100
    11.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/LinuxVtblAccess.java	Wed Jan 22 17:42:23 2014 -0800
    11.3 @@ -1,5 +1,5 @@
    11.4  /*
    11.5 - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
    11.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    11.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    11.8   *
    11.9   * This code is free software; you can redistribute it and/or modify it
    12.1 --- a/agent/src/share/classes/sun/jvm/hotspot/asm/Disassembler.java	Thu Jan 16 14:25:51 2014 +0100
    12.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/asm/Disassembler.java	Wed Jan 22 17:42:23 2014 -0800
    12.3 @@ -1,5 +1,5 @@
    12.4  /*
    12.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
    12.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    12.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    12.8   *
    12.9   * This code is free software; you can redistribute it and/or modify it
    13.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ci/ciEnv.java	Thu Jan 16 14:25:51 2014 +0100
    13.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ci/ciEnv.java	Wed Jan 22 17:42:23 2014 -0800
    13.3 @@ -1,5 +1,5 @@
    13.4  /*
    13.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
    13.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
    13.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    13.8   *
    13.9   * This code is free software; you can redistribute it and/or modify it
   13.10 @@ -95,9 +95,15 @@
   13.11      int entryBci = task.osrBci();
   13.12      int compLevel = task.compLevel();
   13.13      Klass holder = method.getMethodHolder();
   13.14 -    out.println("compile " + holder.getName().asString() + " " +
   13.15 -                OopUtilities.escapeString(method.getName().asString()) + " " +
   13.16 -                method.getSignature().asString() + " " +
   13.17 -                entryBci + " " + compLevel);
   13.18 +    out.print("compile " + holder.getName().asString() + " " +
   13.19 +              OopUtilities.escapeString(method.getName().asString()) + " " +
   13.20 +              method.getSignature().asString() + " " +
   13.21 +              entryBci + " " + compLevel);
   13.22 +    Compile compiler = compilerData();
   13.23 +    if (compiler != null) {
   13.24 +      // Dump inlining data.
   13.25 +      compiler.dumpInlineData(out);
   13.26 +    }
   13.27 +    out.println();
   13.28    }
   13.29  }
    14.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java	Thu Jan 16 14:25:51 2014 +0100
    14.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java	Wed Jan 22 17:42:23 2014 -0800
    14.3 @@ -1,5 +1,5 @@
    14.4  /*
    14.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
    14.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
    14.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    14.8   *
    14.9   * This code is free software; you can redistribute it and/or modify it
    15.1 --- a/agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java	Thu Jan 16 14:25:51 2014 +0100
    15.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java	Wed Jan 22 17:42:23 2014 -0800
    15.3 @@ -1,5 +1,5 @@
    15.4  /*
    15.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    15.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    15.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.8   *
    15.9   * This code is free software; you can redistribute it and/or modify it
    16.1 --- a/agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java	Thu Jan 16 14:25:51 2014 +0100
    16.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java	Wed Jan 22 17:42:23 2014 -0800
    16.3 @@ -1,5 +1,5 @@
    16.4  /*
    16.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
    16.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
    16.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    16.8   *
    16.9   * This code is free software; you can redistribute it and/or modify it
    17.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdAddress.java	Thu Jan 16 14:25:51 2014 +0100
    17.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdAddress.java	Wed Jan 22 17:42:23 2014 -0800
    17.3 @@ -1,5 +1,5 @@
    17.4  /*
    17.5 - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
    17.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    17.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    17.8   *
    17.9   * This code is free software; you can redistribute it and/or modify it
    18.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java	Thu Jan 16 14:25:51 2014 +0100
    18.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java	Wed Jan 22 17:42:23 2014 -0800
    18.3 @@ -1,5 +1,5 @@
    18.4  /*
    18.5 - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
    18.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    18.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    18.8   *
    18.9   * This code is free software; you can redistribute it and/or modify it
    19.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java	Thu Jan 16 14:25:51 2014 +0100
    19.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java	Wed Jan 22 17:42:23 2014 -0800
    19.3 @@ -1,5 +1,5 @@
    19.4  /*
    19.5 - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
    19.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    19.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    19.8   *
    19.9   * This code is free software; you can redistribute it and/or modify it
    20.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java	Thu Jan 16 14:25:51 2014 +0100
    20.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java	Wed Jan 22 17:42:23 2014 -0800
    20.3 @@ -1,5 +1,5 @@
    20.4  /*
    20.5 - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
    20.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    20.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    20.8   *
    20.9   * This code is free software; you can redistribute it and/or modify it
    21.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxOopHandle.java	Thu Jan 16 14:25:51 2014 +0100
    21.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxOopHandle.java	Wed Jan 22 17:42:23 2014 -0800
    21.3 @@ -1,5 +1,5 @@
    21.4  /*
    21.5 - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
    21.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    21.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    21.8   *
    21.9   * This code is free software; you can redistribute it and/or modify it
    22.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java	Thu Jan 16 14:25:51 2014 +0100
    22.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java	Wed Jan 22 17:42:23 2014 -0800
    22.3 @@ -1,5 +1,5 @@
    22.4  /*
    22.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    22.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    22.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    22.8   *
    22.9   * This code is free software; you can redistribute it and/or modify it
    23.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/x86/LinuxX86CFrame.java	Thu Jan 16 14:25:51 2014 +0100
    23.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/x86/LinuxX86CFrame.java	Wed Jan 22 17:42:23 2014 -0800
    23.3 @@ -1,5 +1,5 @@
    23.4  /*
    23.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    23.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    23.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    23.8   *
    23.9   * This code is free software; you can redistribute it and/or modify it
    24.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgCDebugger.java	Thu Jan 16 14:25:51 2014 +0100
    24.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgCDebugger.java	Wed Jan 22 17:42:23 2014 -0800
    24.3 @@ -1,5 +1,5 @@
    24.4  /*
    24.5 - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
    24.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    24.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    24.8   *
    24.9   * This code is free software; you can redistribute it and/or modify it
    25.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java	Thu Jan 16 14:25:51 2014 +0100
    25.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java	Wed Jan 22 17:42:23 2014 -0800
    25.3 @@ -1,5 +1,5 @@
    25.4  /*
    25.5 - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
    25.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    25.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    25.8   *
    25.9   * This code is free software; you can redistribute it and/or modify it
    26.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/windows/amd64/WindowsAMD64CFrame.java	Thu Jan 16 14:25:51 2014 +0100
    26.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/windows/amd64/WindowsAMD64CFrame.java	Wed Jan 22 17:42:23 2014 -0800
    26.3 @@ -1,5 +1,5 @@
    26.4  /*
    26.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    26.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    26.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    26.8   *
    26.9   * This code is free software; you can redistribute it and/or modify it
    27.1 --- a/agent/src/share/classes/sun/jvm/hotspot/debugger/windows/x86/WindowsX86CFrame.java	Thu Jan 16 14:25:51 2014 +0100
    27.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/windows/x86/WindowsX86CFrame.java	Wed Jan 22 17:42:23 2014 -0800
    27.3 @@ -1,5 +1,5 @@
    27.4  /*
    27.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
    27.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
    27.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    27.8   *
    27.9   * This code is free software; you can redistribute it and/or modify it
    28.1 --- a/agent/src/share/classes/sun/jvm/hotspot/jdi/JVMTIThreadState.java	Thu Jan 16 14:25:51 2014 +0100
    28.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/jdi/JVMTIThreadState.java	Wed Jan 22 17:42:23 2014 -0800
    28.3 @@ -1,5 +1,5 @@
    28.4  /*
    28.5 - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
    28.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    28.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    28.8   *
    28.9   * This code is free software; you can redistribute it and/or modify it
    29.1 --- a/agent/src/share/classes/sun/jvm/hotspot/memory/CMSCollector.java	Thu Jan 16 14:25:51 2014 +0100
    29.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/CMSCollector.java	Wed Jan 22 17:42:23 2014 -0800
    29.3 @@ -1,5 +1,5 @@
    29.4  /*
    29.5 - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
    29.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
    29.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    29.8   *
    29.9   * This code is free software; you can redistribute it and/or modify it
    30.1 --- a/agent/src/share/classes/sun/jvm/hotspot/memory/DictionaryEntry.java	Thu Jan 16 14:25:51 2014 +0100
    30.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/DictionaryEntry.java	Wed Jan 22 17:42:23 2014 -0800
    30.3 @@ -1,5 +1,5 @@
    30.4  /*
    30.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    30.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    30.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    30.8   *
    30.9   * This code is free software; you can redistribute it and/or modify it
    31.1 --- a/agent/src/share/classes/sun/jvm/hotspot/memory/SymbolTable.java	Thu Jan 16 14:25:51 2014 +0100
    31.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/SymbolTable.java	Wed Jan 22 17:42:23 2014 -0800
    31.3 @@ -1,5 +1,5 @@
    31.4  /*
    31.5 - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
    31.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
    31.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    31.8   *
    31.9   * This code is free software; you can redistribute it and/or modify it
    32.1 --- a/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java	Thu Jan 16 14:25:51 2014 +0100
    32.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java	Wed Jan 22 17:42:23 2014 -0800
    32.3 @@ -1,5 +1,5 @@
    32.4  /*
    32.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    32.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    32.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    32.8   *
    32.9   * This code is free software; you can redistribute it and/or modify it
    33.1 --- a/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java	Thu Jan 16 14:25:51 2014 +0100
    33.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java	Wed Jan 22 17:42:23 2014 -0800
    33.3 @@ -1,5 +1,5 @@
    33.4  /*
    33.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    33.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    33.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    33.8   *
    33.9   * This code is free software; you can redistribute it and/or modify it
    34.1 --- a/agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java	Thu Jan 16 14:25:51 2014 +0100
    34.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java	Wed Jan 22 17:42:23 2014 -0800
    34.3 @@ -1,5 +1,5 @@
    34.4  /*
    34.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    34.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    34.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    34.8   *
    34.9   * This code is free software; you can redistribute it and/or modify it
    35.1 --- a/agent/src/share/classes/sun/jvm/hotspot/oops/MethodCounters.java	Thu Jan 16 14:25:51 2014 +0100
    35.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/MethodCounters.java	Wed Jan 22 17:42:23 2014 -0800
    35.3 @@ -1,5 +1,5 @@
    35.4  /*
    35.5 - * Copyright (c) 2013, 2013, Oracle and/or its affiliates. All rights reserved.
    35.6 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
    35.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    35.8   *
    35.9   * This code is free software; you can redistribute it and/or modify it
    36.1 --- a/agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java	Thu Jan 16 14:25:51 2014 +0100
    36.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java	Wed Jan 22 17:42:23 2014 -0800
    36.3 @@ -1,5 +1,5 @@
    36.4  /*
    36.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    36.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    36.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    36.8   *
    36.9   * This code is free software; you can redistribute it and/or modify it
    37.1 --- a/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java	Thu Jan 16 14:25:51 2014 +0100
    37.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java	Wed Jan 22 17:42:23 2014 -0800
    37.3 @@ -1,5 +1,5 @@
    37.4  /*
    37.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    37.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    37.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    37.8   *
    37.9   * This code is free software; you can redistribute it and/or modify it
    38.1 --- a/agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java	Thu Jan 16 14:25:51 2014 +0100
    38.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java	Wed Jan 22 17:42:23 2014 -0800
    38.3 @@ -25,6 +25,7 @@
    38.4  package sun.jvm.hotspot.opto;
    38.5  
    38.6  import java.util.*;
    38.7 +import java.io.PrintStream;
    38.8  import sun.jvm.hotspot.ci.*;
    38.9  import sun.jvm.hotspot.debugger.*;
   38.10  import sun.jvm.hotspot.runtime.*;
   38.11 @@ -92,4 +93,13 @@
   38.12      }
   38.13      return null;
   38.14    }
   38.15 +
   38.16 +  public void dumpInlineData(PrintStream out) {
   38.17 +    InlineTree inlTree = ilt();
   38.18 +    if (inlTree != null) {
   38.19 +      out.print(" inline " + inlTree.count());
   38.20 +      inlTree.dumpReplayData(out);
   38.21 +    }
   38.22 +  }
   38.23 +
   38.24  }
    39.1 --- a/agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java	Thu Jan 16 14:25:51 2014 +0100
    39.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java	Wed Jan 22 17:42:23 2014 -0800
    39.3 @@ -87,6 +87,11 @@
    39.4      return GrowableArray.create(addr, inlineTreeConstructor);
    39.5    }
    39.6  
    39.7 +  public int inlineLevel() {
    39.8 +    JVMState jvms = callerJvms();
    39.9 +    return (jvms != null) ? jvms.depth() : 0;
   39.10 +  }
   39.11 +
   39.12    public void printImpl(PrintStream st, int indent) {
   39.13      for (int i = 0; i < indent; i++) st.print(" ");
   39.14      st.printf(" @ %d ", callerBci());
   39.15 @@ -101,4 +106,28 @@
   39.16    public void print(PrintStream st) {
   39.17      printImpl(st, 2);
   39.18    }
   39.19 +
   39.20 +  // Count number of nodes in this subtree
   39.21 +  public int count() {
   39.22 +    int result = 1;
   39.23 +    GrowableArray<InlineTree> subt = subtrees();
   39.24 +    for (int i = 0 ; i < subt.length(); i++) {
   39.25 +      result += subt.at(i).count();
   39.26 +    }
   39.27 +    return result;
   39.28 +  }
   39.29 +
   39.30 +  public void dumpReplayData(PrintStream out) {
   39.31 +    out.printf(" %d %d ", inlineLevel(), callerBci());
   39.32 +    Method method = (Method)method().getMetadata();
   39.33 +    Klass holder = method.getMethodHolder();
   39.34 +    out.print(holder.getName().asString() + " " +
   39.35 +              OopUtilities.escapeString(method.getName().asString()) + " " +
   39.36 +              method.getSignature().asString());
   39.37 +
   39.38 +    GrowableArray<InlineTree> subt = subtrees();
   39.39 +    for (int i = 0 ; i < subt.length(); i++) {
   39.40 +      subt.at(i).dumpReplayData(out);
   39.41 +    }
   39.42 +  }
   39.43  }
    40.1 --- a/agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java	Thu Jan 16 14:25:51 2014 +0100
    40.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java	Wed Jan 22 17:42:23 2014 -0800
    40.3 @@ -88,6 +88,10 @@
    40.4      return (int)bciField.getValue(getAddress());
    40.5    }
    40.6  
    40.7 +  public int depth() {
    40.8 +    return (int)depthField.getValue(getAddress());
    40.9 +  }
   40.10 +
   40.11    public JVMState caller() {
   40.12      return create(callerField.getValue(getAddress()));
   40.13    }
    41.1 --- a/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java	Thu Jan 16 14:25:51 2014 +0100
    41.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java	Wed Jan 22 17:42:23 2014 -0800
    41.3 @@ -1,5 +1,5 @@
    41.4  /*
    41.5 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
    41.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
    41.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    41.8   *
    41.9   * This code is free software; you can redistribute it and/or modify it
    42.1 --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java	Thu Jan 16 14:25:51 2014 +0100
    42.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java	Wed Jan 22 17:42:23 2014 -0800
    42.3 @@ -1,5 +1,5 @@
    42.4  /*
    42.5 - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
    42.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    42.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    42.8   *
    42.9   * This code is free software; you can redistribute it and/or modify it
    43.1 --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java	Thu Jan 16 14:25:51 2014 +0100
    43.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java	Wed Jan 22 17:42:23 2014 -0800
    43.3 @@ -1,5 +1,5 @@
    43.4  /*
    43.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    43.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    43.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    43.8   *
    43.9   * This code is free software; you can redistribute it and/or modify it
    44.1 --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java	Thu Jan 16 14:25:51 2014 +0100
    44.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java	Wed Jan 22 17:42:23 2014 -0800
    44.3 @@ -1,5 +1,5 @@
    44.4  /*
    44.5 - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
    44.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    44.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    44.8   *
    44.9   * This code is free software; you can redistribute it and/or modify it
    45.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/FinalizerInfo.java	Thu Jan 16 14:25:51 2014 +0100
    45.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/FinalizerInfo.java	Wed Jan 22 17:42:23 2014 -0800
    45.3 @@ -1,5 +1,5 @@
    45.4  /*
    45.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
    45.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    45.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    45.8   *
    45.9   * This code is free software; you can redistribute it and/or modify it
    46.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/FlagDumper.java	Thu Jan 16 14:25:51 2014 +0100
    46.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/FlagDumper.java	Wed Jan 22 17:42:23 2014 -0800
    46.3 @@ -1,5 +1,5 @@
    46.4  /*
    46.5 - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
    46.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    46.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    46.8   *
    46.9   * This code is free software; you can redistribute it and/or modify it
    47.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/HeapDumper.java	Thu Jan 16 14:25:51 2014 +0100
    47.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/HeapDumper.java	Wed Jan 22 17:42:23 2014 -0800
    47.3 @@ -1,5 +1,5 @@
    47.4  /*
    47.5 - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
    47.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
    47.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    47.8   *
    47.9   * This code is free software; you can redistribute it and/or modify it
    48.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java	Thu Jan 16 14:25:51 2014 +0100
    48.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java	Wed Jan 22 17:42:23 2014 -0800
    48.3 @@ -1,5 +1,5 @@
    48.4  /*
    48.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    48.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    48.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    48.8   *
    48.9   * This code is free software; you can redistribute it and/or modify it
    49.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/JInfo.java	Thu Jan 16 14:25:51 2014 +0100
    49.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/JInfo.java	Wed Jan 22 17:42:23 2014 -0800
    49.3 @@ -1,5 +1,5 @@
    49.4  /*
    49.5 - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
    49.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    49.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    49.8   *
    49.9   * This code is free software; you can redistribute it and/or modify it
    50.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/JSnap.java	Thu Jan 16 14:25:51 2014 +0100
    50.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/JSnap.java	Wed Jan 22 17:42:23 2014 -0800
    50.3 @@ -1,5 +1,5 @@
    50.4  /*
    50.5 - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
    50.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    50.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    50.8   *
    50.9   * This code is free software; you can redistribute it and/or modify it
    51.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/JStack.java	Thu Jan 16 14:25:51 2014 +0100
    51.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/JStack.java	Wed Jan 22 17:42:23 2014 -0800
    51.3 @@ -1,5 +1,5 @@
    51.4  /*
    51.5 - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
    51.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    51.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    51.8   *
    51.9   * This code is free software; you can redistribute it and/or modify it
    52.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/ObjectHistogram.java	Thu Jan 16 14:25:51 2014 +0100
    52.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/ObjectHistogram.java	Wed Jan 22 17:42:23 2014 -0800
    52.3 @@ -1,5 +1,5 @@
    52.4  /*
    52.5 - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
    52.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    52.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    52.8   *
    52.9   * This code is free software; you can redistribute it and/or modify it
    53.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/PMap.java	Thu Jan 16 14:25:51 2014 +0100
    53.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/PMap.java	Wed Jan 22 17:42:23 2014 -0800
    53.3 @@ -1,5 +1,5 @@
    53.4  /*
    53.5 - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
    53.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    53.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    53.8   *
    53.9   * This code is free software; you can redistribute it and/or modify it
    54.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/StackTrace.java	Thu Jan 16 14:25:51 2014 +0100
    54.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/StackTrace.java	Wed Jan 22 17:42:23 2014 -0800
    54.3 @@ -1,5 +1,5 @@
    54.4  /*
    54.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
    54.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    54.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    54.8   *
    54.9   * This code is free software; you can redistribute it and/or modify it
    55.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/SysPropsDumper.java	Thu Jan 16 14:25:51 2014 +0100
    55.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/SysPropsDumper.java	Wed Jan 22 17:42:23 2014 -0800
    55.3 @@ -1,5 +1,5 @@
    55.4  /*
    55.5 - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
    55.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    55.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    55.8   *
    55.9   * This code is free software; you can redistribute it and/or modify it
    56.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/Tool.java	Thu Jan 16 14:25:51 2014 +0100
    56.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/Tool.java	Wed Jan 22 17:42:23 2014 -0800
    56.3 @@ -1,5 +1,5 @@
    56.4  /*
    56.5 - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
    56.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
    56.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    56.8   *
    56.9   * This code is free software; you can redistribute it and/or modify it
    57.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/soql/JSDB.java	Thu Jan 16 14:25:51 2014 +0100
    57.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/soql/JSDB.java	Wed Jan 22 17:42:23 2014 -0800
    57.3 @@ -1,5 +1,5 @@
    57.4  /*
    57.5 - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
    57.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    57.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    57.8   *
    57.9   * This code is free software; you can redistribute it and/or modify it
    58.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java	Thu Jan 16 14:25:51 2014 +0100
    58.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java	Wed Jan 22 17:42:23 2014 -0800
    58.3 @@ -1,5 +1,5 @@
    58.4  /*
    58.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    58.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    58.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    58.8   *
    58.9   * This code is free software; you can redistribute it and/or modify it
    59.1 --- a/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java	Thu Jan 16 14:25:51 2014 +0100
    59.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java	Wed Jan 22 17:42:23 2014 -0800
    59.3 @@ -1,5 +1,5 @@
    59.4  /*
    59.5 - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
    59.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    59.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    59.8   *
    59.9   * This code is free software; you can redistribute it and/or modify it
    60.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ui/SAPanel.java	Thu Jan 16 14:25:51 2014 +0100
    60.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/SAPanel.java	Wed Jan 22 17:42:23 2014 -0800
    60.3 @@ -1,5 +1,5 @@
    60.4  /*
    60.5 - * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
    60.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    60.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    60.8   *
    60.9   * This code is free software; you can redistribute it and/or modify it
    61.1 --- a/agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java	Thu Jan 16 14:25:51 2014 +0100
    61.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java	Wed Jan 22 17:42:23 2014 -0800
    61.3 @@ -1,5 +1,5 @@
    61.4  /*
    61.5 - * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
    61.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    61.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    61.8   *
    61.9   * This code is free software; you can redistribute it and/or modify it
    62.1 --- a/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGXLWriter.java	Thu Jan 16 14:25:51 2014 +0100
    62.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGXLWriter.java	Wed Jan 22 17:42:23 2014 -0800
    62.3 @@ -1,5 +1,5 @@
    62.4  /*
    62.5 - * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
    62.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    62.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    62.8   *
    62.9   * This code is free software; you can redistribute it and/or modify it
    63.1 --- a/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java	Thu Jan 16 14:25:51 2014 +0100
    63.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java	Wed Jan 22 17:42:23 2014 -0800
    63.3 @@ -1,5 +1,5 @@
    63.4  /*
    63.5 - * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
    63.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    63.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    63.8   *
    63.9   * This code is free software; you can redistribute it and/or modify it
    64.1 --- a/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass.java	Thu Jan 16 14:25:51 2014 +0100
    64.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass.java	Wed Jan 22 17:42:23 2014 -0800
    64.3 @@ -1,5 +1,5 @@
    64.4  /*
    64.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    64.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    64.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    64.8   *
    64.9   * This code is free software; you can redistribute it and/or modify it
    65.1 --- a/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js	Thu Jan 16 14:25:51 2014 +0100
    65.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js	Wed Jan 22 17:42:23 2014 -0800
    65.3 @@ -1,5 +1,5 @@
    65.4  /*
    65.5 - * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
    65.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
    65.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    65.8   *
    65.9   * This code is free software; you can redistribute it and/or modify it
    66.1 --- a/make/bsd/makefiles/adlc.make	Thu Jan 16 14:25:51 2014 +0100
    66.2 +++ b/make/bsd/makefiles/adlc.make	Wed Jan 22 17:42:23 2014 -0800
    66.3 @@ -1,5 +1,5 @@
    66.4  #
    66.5 -# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
    66.6 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
    66.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    66.8  #
    66.9  # This code is free software; you can redistribute it and/or modify it
    67.1 --- a/make/bsd/makefiles/minimal1.make	Thu Jan 16 14:25:51 2014 +0100
    67.2 +++ b/make/bsd/makefiles/minimal1.make	Wed Jan 22 17:42:23 2014 -0800
    67.3 @@ -1,5 +1,5 @@
    67.4  #
    67.5 -# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    67.6 +# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
    67.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    67.8  #
    67.9  # This code is free software; you can redistribute it and/or modify it
    68.1 --- a/make/hotspot.script	Thu Jan 16 14:25:51 2014 +0100
    68.2 +++ b/make/hotspot.script	Wed Jan 22 17:42:23 2014 -0800
    68.3 @@ -1,6 +1,6 @@
    68.4  #!/bin/sh
    68.5  
    68.6 -# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
    68.7 +# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
    68.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    68.9  #
   68.10  # This code is free software; you can redistribute it and/or modify it
    69.1 --- a/make/hotspot_version	Thu Jan 16 14:25:51 2014 +0100
    69.2 +++ b/make/hotspot_version	Wed Jan 22 17:42:23 2014 -0800
    69.3 @@ -34,8 +34,8 @@
    69.4  HOTSPOT_VM_COPYRIGHT=Copyright 2013
    69.5  
    69.6  HS_MAJOR_VER=25
    69.7 -HS_MINOR_VER=0
    69.8 -HS_BUILD_NUMBER=63
    69.9 +HS_MINOR_VER=20
   69.10 +HS_BUILD_NUMBER=01
   69.11  
   69.12  JDK_MAJOR_VER=1
   69.13  JDK_MINOR_VER=8
    70.1 --- a/make/linux/makefiles/adlc.make	Thu Jan 16 14:25:51 2014 +0100
    70.2 +++ b/make/linux/makefiles/adlc.make	Wed Jan 22 17:42:23 2014 -0800
    70.3 @@ -1,5 +1,5 @@
    70.4  #
    70.5 -# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
    70.6 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
    70.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    70.8  #
    70.9  # This code is free software; you can redistribute it and/or modify it
    71.1 --- a/make/linux/makefiles/jsig.make	Thu Jan 16 14:25:51 2014 +0100
    71.2 +++ b/make/linux/makefiles/jsig.make	Wed Jan 22 17:42:23 2014 -0800
    71.3 @@ -1,5 +1,5 @@
    71.4  #
    71.5 -# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
    71.6 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
    71.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    71.8  #
    71.9  # This code is free software; you can redistribute it and/or modify it
    72.1 --- a/make/linux/makefiles/minimal1.make	Thu Jan 16 14:25:51 2014 +0100
    72.2 +++ b/make/linux/makefiles/minimal1.make	Wed Jan 22 17:42:23 2014 -0800
    72.3 @@ -1,5 +1,5 @@
    72.4  #
    72.5 -# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    72.6 +# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
    72.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    72.8  #
    72.9  # This code is free software; you can redistribute it and/or modify it
    73.1 --- a/make/linux/makefiles/saproc.make	Thu Jan 16 14:25:51 2014 +0100
    73.2 +++ b/make/linux/makefiles/saproc.make	Wed Jan 22 17:42:23 2014 -0800
    73.3 @@ -1,5 +1,5 @@
    73.4  #
    73.5 -# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
    73.6 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
    73.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    73.8  #
    73.9  # This code is free software; you can redistribute it and/or modify it
    74.1 --- a/make/sa.files	Thu Jan 16 14:25:51 2014 +0100
    74.2 +++ b/make/sa.files	Wed Jan 22 17:42:23 2014 -0800
    74.3 @@ -1,5 +1,5 @@
    74.4  #
    74.5 -# Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    74.6 +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    74.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    74.8  #
    74.9  # This code is free software; you can redistribute it and/or modify it
    75.1 --- a/make/solaris/makefiles/adlc.make	Thu Jan 16 14:25:51 2014 +0100
    75.2 +++ b/make/solaris/makefiles/adlc.make	Wed Jan 22 17:42:23 2014 -0800
    75.3 @@ -1,5 +1,5 @@
    75.4  #
    75.5 -# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
    75.6 +# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
    75.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    75.8  #
    75.9  # This code is free software; you can redistribute it and/or modify it
    76.1 --- a/make/solaris/makefiles/gcc.make	Thu Jan 16 14:25:51 2014 +0100
    76.2 +++ b/make/solaris/makefiles/gcc.make	Wed Jan 22 17:42:23 2014 -0800
    76.3 @@ -1,5 +1,5 @@
    76.4  #
    76.5 -# Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
    76.6 +# Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
    76.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    76.8  #
    76.9  # This code is free software; you can redistribute it and/or modify it
    77.1 --- a/make/windows/build_vm_def.sh	Thu Jan 16 14:25:51 2014 +0100
    77.2 +++ b/make/windows/build_vm_def.sh	Wed Jan 22 17:42:23 2014 -0800
    77.3 @@ -1,5 +1,5 @@
    77.4  #
    77.5 -# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    77.6 +# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    77.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    77.8  #
    77.9  # This code is free software; you can redistribute it and/or modify it
    78.1 --- a/make/windows/makefiles/adlc.make	Thu Jan 16 14:25:51 2014 +0100
    78.2 +++ b/make/windows/makefiles/adlc.make	Wed Jan 22 17:42:23 2014 -0800
    78.3 @@ -1,5 +1,5 @@
    78.4  #
    78.5 -# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
    78.6 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
    78.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    78.8  #
    78.9  # This code is free software; you can redistribute it and/or modify it
    79.1 --- a/make/windows/makefiles/debug.make	Thu Jan 16 14:25:51 2014 +0100
    79.2 +++ b/make/windows/makefiles/debug.make	Wed Jan 22 17:42:23 2014 -0800
    79.3 @@ -1,5 +1,5 @@
    79.4  #
    79.5 -# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
    79.6 +# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
    79.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    79.8  #
    79.9  # This code is free software; you can redistribute it and/or modify it
    80.1 --- a/make/windows/makefiles/product.make	Thu Jan 16 14:25:51 2014 +0100
    80.2 +++ b/make/windows/makefiles/product.make	Wed Jan 22 17:42:23 2014 -0800
    80.3 @@ -1,5 +1,5 @@
    80.4  #
    80.5 -# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
    80.6 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
    80.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    80.8  #
    80.9  # This code is free software; you can redistribute it and/or modify it
    81.1 --- a/make/windows/makefiles/rules.make	Thu Jan 16 14:25:51 2014 +0100
    81.2 +++ b/make/windows/makefiles/rules.make	Wed Jan 22 17:42:23 2014 -0800
    81.3 @@ -1,5 +1,5 @@
    81.4  #
    81.5 -# Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    81.6 +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    81.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    81.8  #
    81.9  # This code is free software; you can redistribute it and/or modify it
    82.1 --- a/make/windows/makefiles/sa.make	Thu Jan 16 14:25:51 2014 +0100
    82.2 +++ b/make/windows/makefiles/sa.make	Wed Jan 22 17:42:23 2014 -0800
    82.3 @@ -1,5 +1,5 @@
    82.4  #
    82.5 -# Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    82.6 +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    82.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    82.8  #
    82.9  # This code is free software; you can redistribute it and/or modify it
    83.1 --- a/src/cpu/sparc/vm/assembler_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
    83.2 +++ b/src/cpu/sparc/vm/assembler_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
    83.3 @@ -1,5 +1,5 @@
    83.4  /*
    83.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
    83.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
    83.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    83.8   *
    83.9   * This code is free software; you can redistribute it and/or modify it
    84.1 --- a/src/cpu/sparc/vm/assembler_sparc.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
    84.2 +++ b/src/cpu/sparc/vm/assembler_sparc.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
    84.3 @@ -1,5 +1,5 @@
    84.4  /*
    84.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
    84.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
    84.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    84.8   *
    84.9   * This code is free software; you can redistribute it and/or modify it
    85.1 --- a/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
    85.2 +++ b/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
    85.3 @@ -1,5 +1,5 @@
    85.4  /*
    85.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
    85.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
    85.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    85.8   *
    85.9   * This code is free software; you can redistribute it and/or modify it
    86.1 --- a/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
    86.2 +++ b/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
    86.3 @@ -1,5 +1,5 @@
    86.4  /*
    86.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
    86.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
    86.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    86.8   *
    86.9   * This code is free software; you can redistribute it and/or modify it
    87.1 --- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
    87.2 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
    87.3 @@ -1315,7 +1315,7 @@
    87.4  }
    87.5  
    87.6  Address LIR_Assembler::as_Address(LIR_Address* addr) {
    87.7 -  Register reg = addr->base()->as_register();
    87.8 +  Register reg = addr->base()->as_pointer_register();
    87.9    LIR_Opr index = addr->index();
   87.10    if (index->is_illegal()) {
   87.11      return Address(reg, addr->disp());
   87.12 @@ -3101,7 +3101,145 @@
   87.13  }
   87.14  
   87.15  void LIR_Assembler::emit_profile_type(LIR_OpProfileType* op) {
   87.16 -  fatal("Type profiling not implemented on this platform");
   87.17 +  Register obj = op->obj()->as_register();
   87.18 +  Register tmp1 = op->tmp()->as_pointer_register();
   87.19 +  Register tmp2 = G1;
   87.20 +  Address mdo_addr = as_Address(op->mdp()->as_address_ptr());
   87.21 +  ciKlass* exact_klass = op->exact_klass();
   87.22 +  intptr_t current_klass = op->current_klass();
   87.23 +  bool not_null = op->not_null();
   87.24 +  bool no_conflict = op->no_conflict();
   87.25 +
   87.26 +  Label update, next, none;
   87.27 +
   87.28 +  bool do_null = !not_null;
   87.29 +  bool exact_klass_set = exact_klass != NULL && ciTypeEntries::valid_ciklass(current_klass) == exact_klass;
   87.30 +  bool do_update = !TypeEntries::is_type_unknown(current_klass) && !exact_klass_set;
   87.31 +
   87.32 +  assert(do_null || do_update, "why are we here?");
   87.33 +  assert(!TypeEntries::was_null_seen(current_klass) || do_update, "why are we here?");
   87.34 +
   87.35 +  __ verify_oop(obj);
   87.36 +
   87.37 +  if (tmp1 != obj) {
   87.38 +    __ mov(obj, tmp1);
   87.39 +  }
   87.40 +  if (do_null) {
   87.41 +    __ br_notnull_short(tmp1, Assembler::pt, update);
   87.42 +    if (!TypeEntries::was_null_seen(current_klass)) {
   87.43 +      __ ld_ptr(mdo_addr, tmp1);
   87.44 +      __ or3(tmp1, TypeEntries::null_seen, tmp1);
   87.45 +      __ st_ptr(tmp1, mdo_addr);
   87.46 +    }
   87.47 +    if (do_update) {
   87.48 +      __ ba(next);
   87.49 +      __ delayed()->nop();
   87.50 +    }
   87.51 +#ifdef ASSERT
   87.52 +  } else {
   87.53 +    __ br_notnull_short(tmp1, Assembler::pt, update);
   87.54 +    __ stop("unexpect null obj");
   87.55 +#endif
   87.56 +  }
   87.57 +
   87.58 +  __ bind(update);
   87.59 +
   87.60 +  if (do_update) {
   87.61 +#ifdef ASSERT
   87.62 +    if (exact_klass != NULL) {
   87.63 +      Label ok;
   87.64 +      __ load_klass(tmp1, tmp1);
   87.65 +      metadata2reg(exact_klass->constant_encoding(), tmp2);
   87.66 +      __ cmp_and_br_short(tmp1, tmp2, Assembler::equal, Assembler::pt, ok);
   87.67 +      __ stop("exact klass and actual klass differ");
   87.68 +      __ bind(ok);
   87.69 +    }
   87.70 +#endif
   87.71 +
   87.72 +    Label do_update;
   87.73 +    __ ld_ptr(mdo_addr, tmp2);
   87.74 +
   87.75 +    if (!no_conflict) {
   87.76 +      if (exact_klass == NULL || TypeEntries::is_type_none(current_klass)) {
   87.77 +        if (exact_klass != NULL) {
   87.78 +          metadata2reg(exact_klass->constant_encoding(), tmp1);
   87.79 +        } else {
   87.80 +          __ load_klass(tmp1, tmp1);
   87.81 +        }
   87.82 +
   87.83 +        __ xor3(tmp1, tmp2, tmp1);
   87.84 +        __ btst(TypeEntries::type_klass_mask, tmp1);
   87.85 +        // klass seen before, nothing to do. The unknown bit may have been
   87.86 +        // set already but no need to check.
   87.87 +        __ brx(Assembler::zero, false, Assembler::pt, next);
   87.88 +        __ delayed()->
   87.89 +
   87.90 +           btst(TypeEntries::type_unknown, tmp1);
   87.91 +        // already unknown. Nothing to do anymore.
   87.92 +        __ brx(Assembler::notZero, false, Assembler::pt, next);
   87.93 +
   87.94 +        if (TypeEntries::is_type_none(current_klass)) {
   87.95 +          __ delayed()->btst(TypeEntries::type_mask, tmp2);
   87.96 +          __ brx(Assembler::zero, true, Assembler::pt, do_update);
   87.97 +          // first time here. Set profile type.
   87.98 +          __ delayed()->or3(tmp2, tmp1, tmp2);
   87.99 +        } else {
  87.100 +          __ delayed()->nop();
  87.101 +        }
  87.102 +      } else {
  87.103 +        assert(ciTypeEntries::valid_ciklass(current_klass) != NULL &&
  87.104 +               ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "conflict only");
  87.105 +
  87.106 +        __ btst(TypeEntries::type_unknown, tmp2);
  87.107 +        // already unknown. Nothing to do anymore.
  87.108 +        __ brx(Assembler::notZero, false, Assembler::pt, next);
  87.109 +        __ delayed()->nop();
  87.110 +      }
  87.111 +
  87.112 +      // different than before. Cannot keep accurate profile.
  87.113 +      __ or3(tmp2, TypeEntries::type_unknown, tmp2);
  87.114 +    } else {
  87.115 +      // There's a single possible klass at this profile point
  87.116 +      assert(exact_klass != NULL, "should be");
  87.117 +      if (TypeEntries::is_type_none(current_klass)) {
  87.118 +        metadata2reg(exact_klass->constant_encoding(), tmp1);
  87.119 +        __ xor3(tmp1, tmp2, tmp1);
  87.120 +        __ btst(TypeEntries::type_klass_mask, tmp1);
  87.121 +        __ brx(Assembler::zero, false, Assembler::pt, next);
  87.122 +#ifdef ASSERT
  87.123 +
  87.124 +        {
  87.125 +          Label ok;
  87.126 +          __ delayed()->btst(TypeEntries::type_mask, tmp2);
  87.127 +          __ brx(Assembler::zero, true, Assembler::pt, ok);
  87.128 +          __ delayed()->nop();
  87.129 +
  87.130 +          __ stop("unexpected profiling mismatch");
  87.131 +          __ bind(ok);
  87.132 +        }
  87.133 +        // first time here. Set profile type.
  87.134 +        __ or3(tmp2, tmp1, tmp2);
  87.135 +#else
  87.136 +        // first time here. Set profile type.
  87.137 +        __ delayed()->or3(tmp2, tmp1, tmp2);
  87.138 +#endif
  87.139 +
  87.140 +      } else {
  87.141 +        assert(ciTypeEntries::valid_ciklass(current_klass) != NULL &&
  87.142 +               ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "inconsistent");
  87.143 +
  87.144 +        // already unknown. Nothing to do anymore.
  87.145 +        __ btst(TypeEntries::type_unknown, tmp2);
  87.146 +        __ brx(Assembler::notZero, false, Assembler::pt, next);
  87.147 +        __ delayed()->or3(tmp2, TypeEntries::type_unknown, tmp2);
  87.148 +      }
  87.149 +    }
  87.150 +
  87.151 +    __ bind(do_update);
  87.152 +    __ st_ptr(tmp2, mdo_addr);
  87.153 +
  87.154 +    __ bind(next);
  87.155 +  }
  87.156  }
  87.157  
  87.158  void LIR_Assembler::align_backward_branch_target() {
  87.159 @@ -3321,9 +3459,14 @@
  87.160  
  87.161  void LIR_Assembler::leal(LIR_Opr addr_opr, LIR_Opr dest) {
  87.162    LIR_Address* addr = addr_opr->as_address_ptr();
  87.163 -  assert(addr->index()->is_illegal() && addr->scale() == LIR_Address::times_1 && Assembler::is_simm13(addr->disp()), "can't handle complex addresses yet");
  87.164 -
  87.165 -  __ add(addr->base()->as_pointer_register(), addr->disp(), dest->as_pointer_register());
  87.166 +  assert(addr->index()->is_illegal() && addr->scale() == LIR_Address::times_1, "can't handle complex addresses yet");
  87.167 +
  87.168 +  if (Assembler::is_simm13(addr->disp())) {
  87.169 +    __ add(addr->base()->as_pointer_register(), addr->disp(), dest->as_pointer_register());
  87.170 +  } else {
  87.171 +    __ set(addr->disp(), G3_scratch);
  87.172 +    __ add(addr->base()->as_pointer_register(), G3_scratch, dest->as_pointer_register());
  87.173 +  }
  87.174  }
  87.175  
  87.176  
    88.1 --- a/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
    88.2 +++ b/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
    88.3 @@ -1,5 +1,5 @@
    88.4  /*
    88.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
    88.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
    88.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    88.8   *
    88.9   * This code is free software; you can redistribute it and/or modify it
    89.1 --- a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
    89.2 +++ b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
    89.3 @@ -1,5 +1,5 @@
    89.4  /*
    89.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
    89.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
    89.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    89.8   *
    89.9   * This code is free software; you can redistribute it and/or modify it
    90.1 --- a/src/cpu/sparc/vm/c1_globals_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
    90.2 +++ b/src/cpu/sparc/vm/c1_globals_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
    90.3 @@ -1,5 +1,5 @@
    90.4  /*
    90.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    90.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    90.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    90.8   *
    90.9   * This code is free software; you can redistribute it and/or modify it
    91.1 --- a/src/cpu/sparc/vm/c2_globals_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
    91.2 +++ b/src/cpu/sparc/vm/c2_globals_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
    91.3 @@ -1,5 +1,5 @@
    91.4  /*
    91.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    91.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    91.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    91.8   *
    91.9   * This code is free software; you can redistribute it and/or modify it
    92.1 --- a/src/cpu/sparc/vm/c2_init_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
    92.2 +++ b/src/cpu/sparc/vm/c2_init_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
    92.3 @@ -1,5 +1,5 @@
    92.4  /*
    92.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    92.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    92.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    92.8   *
    92.9   * This code is free software; you can redistribute it and/or modify it
    93.1 --- a/src/cpu/sparc/vm/disassembler_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
    93.2 +++ b/src/cpu/sparc/vm/disassembler_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
    93.3 @@ -1,5 +1,5 @@
    93.4  /*
    93.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
    93.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
    93.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    93.8   *
    93.9   * This code is free software; you can redistribute it and/or modify it
    94.1 --- a/src/cpu/sparc/vm/frame_sparc.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
    94.2 +++ b/src/cpu/sparc/vm/frame_sparc.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
    94.3 @@ -1,5 +1,5 @@
    94.4  /*
    94.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
    94.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
    94.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    94.8   *
    94.9   * This code is free software; you can redistribute it and/or modify it
    95.1 --- a/src/cpu/sparc/vm/globalDefinitions_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
    95.2 +++ b/src/cpu/sparc/vm/globalDefinitions_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
    95.3 @@ -1,5 +1,5 @@
    95.4  /*
    95.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
    95.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
    95.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    95.8   *
    95.9   * This code is free software; you can redistribute it and/or modify it
    96.1 --- a/src/cpu/sparc/vm/globals_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
    96.2 +++ b/src/cpu/sparc/vm/globals_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
    96.3 @@ -1,5 +1,5 @@
    96.4  /*
    96.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    96.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    96.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    96.8   *
    96.9   * This code is free software; you can redistribute it and/or modify it
    97.1 --- a/src/cpu/sparc/vm/interp_masm_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
    97.2 +++ b/src/cpu/sparc/vm/interp_masm_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
    97.3 @@ -1892,6 +1892,220 @@
    97.4    }
    97.5  }
    97.6  
    97.7 +void InterpreterMacroAssembler::profile_obj_type(Register obj, const Address& mdo_addr, Register tmp) {
    97.8 +  Label not_null, do_nothing, do_update;
    97.9 +
   97.10 +  assert_different_registers(obj, mdo_addr.base(), tmp);
   97.11 +
   97.12 +  verify_oop(obj);
   97.13 +
   97.14 +  ld_ptr(mdo_addr, tmp);
   97.15 +
   97.16 +  br_notnull_short(obj, pt, not_null);
   97.17 +  or3(tmp, TypeEntries::null_seen, tmp);
   97.18 +  ba_short(do_update);
   97.19 +
   97.20 +  bind(not_null);
   97.21 +  load_klass(obj, obj);
   97.22 +
   97.23 +  xor3(obj, tmp, obj);
   97.24 +  btst(TypeEntries::type_klass_mask, obj);
   97.25 +  // klass seen before, nothing to do. The unknown bit may have been
   97.26 +  // set already but no need to check.
   97.27 +  brx(zero, false, pt, do_nothing);
   97.28 +  delayed()->
   97.29 +
   97.30 +  btst(TypeEntries::type_unknown, obj);
   97.31 +  // already unknown. Nothing to do anymore.
   97.32 +  brx(notZero, false, pt, do_nothing);
   97.33 +  delayed()->
   97.34 +
   97.35 +  btst(TypeEntries::type_mask, tmp);
   97.36 +  brx(zero, true, pt, do_update);
   97.37 +  // first time here. Set profile type.
   97.38 +  delayed()->or3(tmp, obj, tmp);
   97.39 +
   97.40 +  // different than before. Cannot keep accurate profile.
   97.41 +  or3(tmp, TypeEntries::type_unknown, tmp);
   97.42 +
   97.43 +  bind(do_update);
   97.44 +  // update profile
   97.45 +  st_ptr(tmp, mdo_addr);
   97.46 +
   97.47 +  bind(do_nothing);
   97.48 +}
   97.49 +
   97.50 +void InterpreterMacroAssembler::profile_arguments_type(Register callee, Register tmp1, Register tmp2, bool is_virtual) {
   97.51 +  if (!ProfileInterpreter) {
   97.52 +    return;
   97.53 +  }
   97.54 +
   97.55 +  assert_different_registers(callee, tmp1, tmp2, ImethodDataPtr);
   97.56 +
   97.57 +  if (MethodData::profile_arguments() || MethodData::profile_return()) {
   97.58 +    Label profile_continue;
   97.59 +
   97.60 +    test_method_data_pointer(profile_continue);
   97.61 +
   97.62 +    int off_to_start = is_virtual ? in_bytes(VirtualCallData::virtual_call_data_size()) : in_bytes(CounterData::counter_data_size());
   97.63 +
   97.64 +    ldub(ImethodDataPtr, in_bytes(DataLayout::tag_offset()) - off_to_start, tmp1);
   97.65 +    cmp_and_br_short(tmp1, is_virtual ? DataLayout::virtual_call_type_data_tag : DataLayout::call_type_data_tag, notEqual, pn, profile_continue);
   97.66 +
   97.67 +    if (MethodData::profile_arguments()) {
   97.68 +      Label done;
   97.69 +      int off_to_args = in_bytes(TypeEntriesAtCall::args_data_offset());
   97.70 +      add(ImethodDataPtr, off_to_args, ImethodDataPtr);
   97.71 +
   97.72 +      for (int i = 0; i < TypeProfileArgsLimit; i++) {
   97.73 +        if (i > 0 || MethodData::profile_return()) {
   97.74 +          // If return value type is profiled we may have no argument to profile
   97.75 +          ld_ptr(ImethodDataPtr, in_bytes(TypeEntriesAtCall::cell_count_offset())-off_to_args, tmp1);
   97.76 +          sub(tmp1, i*TypeStackSlotEntries::per_arg_count(), tmp1);
   97.77 +          cmp_and_br_short(tmp1, TypeStackSlotEntries::per_arg_count(), less, pn, done);
   97.78 +        }
   97.79 +        ld_ptr(Address(callee, Method::const_offset()), tmp1);
   97.80 +        lduh(Address(tmp1, ConstMethod::size_of_parameters_offset()), tmp1);
   97.81 +        // stack offset o (zero based) from the start of the argument
   97.82 +        // list, for n arguments translates into offset n - o - 1 from
   97.83 +        // the end of the argument list. But there's an extra slot at
   97.84 +        // the stop of the stack. So the offset is n - o from Lesp.
   97.85 +        ld_ptr(ImethodDataPtr, in_bytes(TypeEntriesAtCall::stack_slot_offset(i))-off_to_args, tmp2);
   97.86 +        sub(tmp1, tmp2, tmp1);
   97.87 +
   97.88 +        // Can't use MacroAssembler::argument_address() which needs Gargs to be set up
   97.89 +        sll(tmp1, Interpreter::logStackElementSize, tmp1);
   97.90 +        ld_ptr(Lesp, tmp1, tmp1);
   97.91 +
   97.92 +        Address mdo_arg_addr(ImethodDataPtr, in_bytes(TypeEntriesAtCall::argument_type_offset(i))-off_to_args);
   97.93 +        profile_obj_type(tmp1, mdo_arg_addr, tmp2);
   97.94 +
   97.95 +        int to_add = in_bytes(TypeStackSlotEntries::per_arg_size());
   97.96 +        add(ImethodDataPtr, to_add, ImethodDataPtr);
   97.97 +        off_to_args += to_add;
   97.98 +      }
   97.99 +
  97.100 +      if (MethodData::profile_return()) {
  97.101 +        ld_ptr(ImethodDataPtr, in_bytes(TypeEntriesAtCall::cell_count_offset())-off_to_args, tmp1);
  97.102 +        sub(tmp1, TypeProfileArgsLimit*TypeStackSlotEntries::per_arg_count(), tmp1);
  97.103 +      }
  97.104 +
  97.105 +      bind(done);
  97.106 +
  97.107 +      if (MethodData::profile_return()) {
  97.108 +        // We're right after the type profile for the last
  97.109 +        // argument. tmp1 is the number of cells left in the
  97.110 +        // CallTypeData/VirtualCallTypeData to reach its end. Non null
  97.111 +        // if there's a return to profile.
  97.112 +        assert(ReturnTypeEntry::static_cell_count() < TypeStackSlotEntries::per_arg_count(), "can't move past ret type");
  97.113 +        sll(tmp1, exact_log2(DataLayout::cell_size), tmp1);
  97.114 +        add(ImethodDataPtr, tmp1, ImethodDataPtr);
  97.115 +      }
  97.116 +    } else {
  97.117 +      assert(MethodData::profile_return(), "either profile call args or call ret");
  97.118 +      update_mdp_by_constant(in_bytes(ReturnTypeEntry::size()));
  97.119 +    }
  97.120 +
  97.121 +    // mdp points right after the end of the
  97.122 +    // CallTypeData/VirtualCallTypeData, right after the cells for the
  97.123 +    // return value type if there's one.
  97.124 +
  97.125 +    bind(profile_continue);
  97.126 +  }
  97.127 +}
  97.128 +
  97.129 +void InterpreterMacroAssembler::profile_return_type(Register ret, Register tmp1, Register tmp2) {
  97.130 +  assert_different_registers(ret, tmp1, tmp2);
  97.131 +  if (ProfileInterpreter && MethodData::profile_return()) {
  97.132 +    Label profile_continue, done;
  97.133 +
  97.134 +    test_method_data_pointer(profile_continue);
  97.135 +
  97.136 +    if (MethodData::profile_return_jsr292_only()) {
  97.137 +      // If we don't profile all invoke bytecodes we must make sure
  97.138 +      // it's a bytecode we indeed profile. We can't go back to the
  97.139 +      // begining of the ProfileData we intend to update to check its
  97.140 +      // type because we're right after it and we don't known its
  97.141 +      // length.
  97.142 +      Label do_profile;
  97.143 +      ldub(Lbcp, 0, tmp1);
  97.144 +      cmp_and_br_short(tmp1, Bytecodes::_invokedynamic, equal, pn, do_profile);
  97.145 +      cmp(tmp1, Bytecodes::_invokehandle);
  97.146 +      br(equal, false, pn, do_profile);
  97.147 +      delayed()->ldub(Lmethod, Method::intrinsic_id_offset_in_bytes(), tmp1);
  97.148 +      cmp_and_br_short(tmp1, vmIntrinsics::_compiledLambdaForm, notEqual, pt, profile_continue);
  97.149 +
  97.150 +      bind(do_profile);
  97.151 +    }
  97.152 +
  97.153 +    Address mdo_ret_addr(ImethodDataPtr, -in_bytes(ReturnTypeEntry::size()));
  97.154 +    mov(ret, tmp1);
  97.155 +    profile_obj_type(tmp1, mdo_ret_addr, tmp2);
  97.156 +
  97.157 +    bind(profile_continue);
  97.158 +  }
  97.159 +}
  97.160 +
  97.161 +void InterpreterMacroAssembler::profile_parameters_type(Register tmp1, Register tmp2, Register tmp3, Register tmp4) {
  97.162 +  if (ProfileInterpreter && MethodData::profile_parameters()) {
  97.163 +    Label profile_continue, done;
  97.164 +
  97.165 +    test_method_data_pointer(profile_continue);
  97.166 +
  97.167 +    // Load the offset of the area within the MDO used for
  97.168 +    // parameters. If it's negative we're not profiling any parameters.
  97.169 +    lduw(ImethodDataPtr, in_bytes(MethodData::parameters_type_data_di_offset()) - in_bytes(MethodData::data_offset()), tmp1);
  97.170 +    cmp_and_br_short(tmp1, 0, less, pn, profile_continue);
  97.171 +
  97.172 +    // Compute a pointer to the area for parameters from the offset
  97.173 +    // and move the pointer to the slot for the last
  97.174 +    // parameters. Collect profiling from last parameter down.
  97.175 +    // mdo start + parameters offset + array length - 1
  97.176 +
  97.177 +    // Pointer to the parameter area in the MDO
  97.178 +    Register mdp = tmp1;
  97.179 +    add(ImethodDataPtr, tmp1, mdp);
  97.180 +
  97.181 +    // offset of the current profile entry to update
  97.182 +    Register entry_offset = tmp2;
  97.183 +    // entry_offset = array len in number of cells
  97.184 +    ld_ptr(mdp, ArrayData::array_len_offset(), entry_offset);
  97.185 +
  97.186 +    int off_base = in_bytes(ParametersTypeData::stack_slot_offset(0));
  97.187 +    assert(off_base % DataLayout::cell_size == 0, "should be a number of cells");
  97.188 +
  97.189 +    // entry_offset (number of cells)  = array len - size of 1 entry + offset of the stack slot field
  97.190 +    sub(entry_offset, TypeStackSlotEntries::per_arg_count() - (off_base / DataLayout::cell_size), entry_offset);
  97.191 +    // entry_offset in bytes
  97.192 +    sll(entry_offset, exact_log2(DataLayout::cell_size), entry_offset);
  97.193 +
  97.194 +    Label loop;
  97.195 +    bind(loop);
  97.196 +
  97.197 +    // load offset on the stack from the slot for this parameter
  97.198 +    ld_ptr(mdp, entry_offset, tmp3);
  97.199 +    sll(tmp3,Interpreter::logStackElementSize, tmp3);
  97.200 +    neg(tmp3);
  97.201 +    // read the parameter from the local area
  97.202 +    ld_ptr(Llocals, tmp3, tmp3);
  97.203 +
  97.204 +    // make entry_offset now point to the type field for this parameter
  97.205 +    int type_base = in_bytes(ParametersTypeData::type_offset(0));
  97.206 +    assert(type_base > off_base, "unexpected");
  97.207 +    add(entry_offset, type_base - off_base, entry_offset);
  97.208 +
  97.209 +    // profile the parameter
  97.210 +    Address arg_type(mdp, entry_offset);
  97.211 +    profile_obj_type(tmp3, arg_type, tmp4);
  97.212 +
  97.213 +    // go to next parameter
  97.214 +    sub(entry_offset, TypeStackSlotEntries::per_arg_count() * DataLayout::cell_size + (type_base - off_base), entry_offset);
  97.215 +    cmp_and_br_short(entry_offset, off_base, greaterEqual, pt, loop);
  97.216 +
  97.217 +    bind(profile_continue);
  97.218 +  }
  97.219 +}
  97.220 +
  97.221  // add a InterpMonitorElem to stack (see frame_sparc.hpp)
  97.222  
  97.223  void InterpreterMacroAssembler::add_monitor_to_stack( bool stack_is_empty,
    98.1 --- a/src/cpu/sparc/vm/interp_masm_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
    98.2 +++ b/src/cpu/sparc/vm/interp_masm_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
    98.3 @@ -323,6 +323,11 @@
    98.4                             Register scratch2,
    98.5                             Register scratch3);
    98.6  
    98.7 +  void profile_obj_type(Register obj, const Address& mdo_addr, Register tmp);
    98.8 +  void profile_arguments_type(Register callee, Register tmp1, Register tmp2, bool is_virtual);
    98.9 +  void profile_return_type(Register ret, Register tmp1, Register tmp2);
   98.10 +  void profile_parameters_type(Register tmp1, Register tmp2, Register tmp3, Register tmp4);
   98.11 +
   98.12    // Debugging
   98.13    void interp_verify_oop(Register reg, TosState state, const char * file, int line);    // only if +VerifyOops && state == atos
   98.14    void verify_oop_or_return_address(Register reg, Register rtmp); // for astore
    99.1 --- a/src/cpu/sparc/vm/jni_sparc.h	Thu Jan 16 14:25:51 2014 +0100
    99.2 +++ b/src/cpu/sparc/vm/jni_sparc.h	Wed Jan 22 17:42:23 2014 -0800
    99.3 @@ -1,5 +1,5 @@
    99.4  /*
    99.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
    99.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
    99.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    99.8   *
    99.9   * This code is free software; you can redistribute it and/or modify it
   100.1 --- a/src/cpu/sparc/vm/nativeInst_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   100.2 +++ b/src/cpu/sparc/vm/nativeInst_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   100.3 @@ -1,5 +1,5 @@
   100.4  /*
   100.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   100.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   100.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   100.8   *
   100.9   * This code is free software; you can redistribute it and/or modify it
   101.1 --- a/src/cpu/sparc/vm/register_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   101.2 +++ b/src/cpu/sparc/vm/register_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   101.3 @@ -1,5 +1,5 @@
   101.4  /*
   101.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
   101.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   101.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   101.8   *
   101.9   * This code is free software; you can redistribute it and/or modify it
   102.1 --- a/src/cpu/sparc/vm/sharedRuntime_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
   102.2 +++ b/src/cpu/sparc/vm/sharedRuntime_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
   102.3 @@ -1,5 +1,5 @@
   102.4  /*
   102.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   102.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   102.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   102.8   *
   102.9   * This code is free software; you can redistribute it and/or modify it
   103.1 --- a/src/cpu/sparc/vm/sparc.ad	Thu Jan 16 14:25:51 2014 +0100
   103.2 +++ b/src/cpu/sparc/vm/sparc.ad	Wed Jan 22 17:42:23 2014 -0800
   103.3 @@ -757,7 +757,7 @@
   103.4  #endif
   103.5  
   103.6  
   103.7 -void emit_form3_mem_reg(CodeBuffer &cbuf, const MachNode* n, int primary, int tertiary,
   103.8 +void emit_form3_mem_reg(CodeBuffer &cbuf, PhaseRegAlloc* ra, const MachNode* n, int primary, int tertiary,
   103.9                          int src1_enc, int disp32, int src2_enc, int dst_enc) {
  103.10  
  103.11  #ifdef ASSERT
  103.12 @@ -912,8 +912,14 @@
  103.13    uint index = src2_enc;
  103.14    int disp = disp32;
  103.15  
  103.16 -  if (src1_enc == R_SP_enc || src1_enc == R_FP_enc)
  103.17 +  if (src1_enc == R_SP_enc || src1_enc == R_FP_enc) {
  103.18      disp += STACK_BIAS;
  103.19 +    // Quick fix for JDK-8029668: check that stack offset fits, bailout if not
  103.20 +    if (!Assembler::is_simm13(disp)) {
  103.21 +      ra->C->record_method_not_compilable("unable to handle large constant offsets");
  103.22 +      return;
  103.23 +    }
  103.24 +  }
  103.25  
  103.26    // We should have a compiler bailout here rather than a guarantee.
  103.27    // Better yet would be some mechanism to handle variable-size matches correctly.
  103.28 @@ -1284,20 +1290,15 @@
  103.29    return rc_float;
  103.30  }
  103.31  
  103.32 -static int impl_helper( const MachNode *mach, CodeBuffer *cbuf, PhaseRegAlloc *ra_, bool do_size, bool is_load, int offset, int reg, int opcode, const char *op_str, int size, outputStream* st ) {
  103.33 -  if( cbuf ) {
  103.34 -    // Better yet would be some mechanism to handle variable-size matches correctly
  103.35 -    if (!Assembler::is_simm13(offset + STACK_BIAS)) {
  103.36 -      ra_->C->record_method_not_compilable("unable to handle large constant offsets");
  103.37 -    } else {
  103.38 -      emit_form3_mem_reg(*cbuf, mach, opcode, -1, R_SP_enc, offset, 0, Matcher::_regEncode[reg]);
  103.39 -    }
  103.40 +static int impl_helper(const MachNode* mach, CodeBuffer* cbuf, PhaseRegAlloc* ra, bool do_size, bool is_load, int offset, int reg, int opcode, const char *op_str, int size, outputStream* st ) {
  103.41 +  if (cbuf) {
  103.42 +    emit_form3_mem_reg(*cbuf, ra, mach, opcode, -1, R_SP_enc, offset, 0, Matcher::_regEncode[reg]);
  103.43    }
  103.44  #ifndef PRODUCT
  103.45 -  else if( !do_size ) {
  103.46 -    if( size != 0 ) st->print("\n\t");
  103.47 -    if( is_load ) st->print("%s   [R_SP + #%d],R_%s\t! spill",op_str,offset,OptoReg::regname(reg));
  103.48 -    else          st->print("%s   R_%s,[R_SP + #%d]\t! spill",op_str,OptoReg::regname(reg),offset);
  103.49 +  else if (!do_size) {
  103.50 +    if (size != 0) st->print("\n\t");
  103.51 +    if (is_load) st->print("%s   [R_SP + #%d],R_%s\t! spill",op_str,offset,OptoReg::regname(reg));
  103.52 +    else         st->print("%s   R_%s,[R_SP + #%d]\t! spill",op_str,OptoReg::regname(reg),offset);
  103.53    }
  103.54  #endif
  103.55    return size+4;
  103.56 @@ -2095,22 +2096,22 @@
  103.57    %}
  103.58  
  103.59    enc_class form3_mem_reg( memory mem, iRegI dst ) %{
  103.60 -    emit_form3_mem_reg(cbuf, this, $primary, $tertiary,
  103.61 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, $tertiary,
  103.62                         $mem$$base, $mem$$disp, $mem$$index, $dst$$reg);
  103.63    %}
  103.64  
  103.65    enc_class simple_form3_mem_reg( memory mem, iRegI dst ) %{
  103.66 -    emit_form3_mem_reg(cbuf, this, $primary, -1,
  103.67 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, -1,
  103.68                         $mem$$base, $mem$$disp, $mem$$index, $dst$$reg);
  103.69    %}
  103.70  
  103.71    enc_class form3_mem_prefetch_read( memory mem ) %{
  103.72 -    emit_form3_mem_reg(cbuf, this, $primary, -1,
  103.73 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, -1,
  103.74                         $mem$$base, $mem$$disp, $mem$$index, 0/*prefetch function many-reads*/);
  103.75    %}
  103.76  
  103.77    enc_class form3_mem_prefetch_write( memory mem ) %{
  103.78 -    emit_form3_mem_reg(cbuf, this, $primary, -1,
  103.79 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, -1,
  103.80                         $mem$$base, $mem$$disp, $mem$$index, 2/*prefetch function many-writes*/);
  103.81    %}
  103.82  
  103.83 @@ -2118,8 +2119,8 @@
  103.84      assert(Assembler::is_simm13($mem$$disp  ), "need disp and disp+4");
  103.85      assert(Assembler::is_simm13($mem$$disp+4), "need disp and disp+4");
  103.86      guarantee($mem$$index == R_G0_enc, "double index?");
  103.87 -    emit_form3_mem_reg(cbuf, this, $primary, -1, $mem$$base, $mem$$disp+4, R_G0_enc, R_O7_enc );
  103.88 -    emit_form3_mem_reg(cbuf, this, $primary, -1, $mem$$base, $mem$$disp,   R_G0_enc, $reg$$reg );
  103.89 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, -1, $mem$$base, $mem$$disp+4, R_G0_enc, R_O7_enc );
  103.90 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, -1, $mem$$base, $mem$$disp,   R_G0_enc, $reg$$reg );
  103.91      emit3_simm13( cbuf, Assembler::arith_op, $reg$$reg, Assembler::sllx_op3, $reg$$reg, 0x1020 );
  103.92      emit3( cbuf, Assembler::arith_op, $reg$$reg, Assembler::or_op3, $reg$$reg, 0, R_O7_enc );
  103.93    %}
  103.94 @@ -2129,14 +2130,14 @@
  103.95      assert(Assembler::is_simm13($mem$$disp+4), "need disp and disp+4");
  103.96      guarantee($mem$$index == R_G0_enc, "double index?");
  103.97      // Load long with 2 instructions
  103.98 -    emit_form3_mem_reg(cbuf, this, $primary, -1, $mem$$base, $mem$$disp,   R_G0_enc, $reg$$reg+0 );
  103.99 -    emit_form3_mem_reg(cbuf, this, $primary, -1, $mem$$base, $mem$$disp+4, R_G0_enc, $reg$$reg+1 );
 103.100 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, -1, $mem$$base, $mem$$disp,   R_G0_enc, $reg$$reg+0 );
 103.101 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, -1, $mem$$base, $mem$$disp+4, R_G0_enc, $reg$$reg+1 );
 103.102    %}
 103.103  
 103.104    //%%% form3_mem_plus_4_reg is a hack--get rid of it
 103.105    enc_class form3_mem_plus_4_reg( memory mem, iRegI dst ) %{
 103.106      guarantee($mem$$disp, "cannot offset a reg-reg operand by 4");
 103.107 -    emit_form3_mem_reg(cbuf, this, $primary, -1, $mem$$base, $mem$$disp + 4, $mem$$index, $dst$$reg);
 103.108 +    emit_form3_mem_reg(cbuf, ra_, this, $primary, -1, $mem$$base, $mem$$disp + 4, $mem$$index, $dst$$reg);
 103.109    %}
 103.110  
 103.111    enc_class form3_g0_rs2_rd_move( iRegI rs2, iRegI rd ) %{
   104.1 --- a/src/cpu/sparc/vm/stubGenerator_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
   104.2 +++ b/src/cpu/sparc/vm/stubGenerator_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
   104.3 @@ -1,5 +1,5 @@
   104.4  /*
   104.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   104.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   104.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   104.8   *
   104.9   * This code is free software; you can redistribute it and/or modify it
   105.1 --- a/src/cpu/sparc/vm/stubRoutines_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
   105.2 +++ b/src/cpu/sparc/vm/stubRoutines_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
   105.3 @@ -1,5 +1,5 @@
   105.4  /*
   105.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   105.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   105.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   105.8   *
   105.9   * This code is free software; you can redistribute it and/or modify it
   106.1 --- a/src/cpu/sparc/vm/stubRoutines_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   106.2 +++ b/src/cpu/sparc/vm/stubRoutines_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   106.3 @@ -1,5 +1,5 @@
   106.4  /*
   106.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
   106.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   106.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   106.8   *
   106.9   * This code is free software; you can redistribute it and/or modify it
   107.1 --- a/src/cpu/sparc/vm/templateInterpreter_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
   107.2 +++ b/src/cpu/sparc/vm/templateInterpreter_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
   107.3 @@ -156,6 +156,10 @@
   107.4  address TemplateInterpreterGenerator::generate_return_entry_for(TosState state, int step, size_t index_size) {
   107.5    address entry = __ pc();
   107.6  
   107.7 +  if (state == atos) {
   107.8 +    __ profile_return_type(O0, G3_scratch, G1_scratch);
   107.9 +  }
  107.10 +
  107.11  #if !defined(_LP64) && defined(COMPILER2)
  107.12    // All return values are where we want them, except for Longs.  C2 returns
  107.13    // longs in G1 in the 32-bit build whereas the interpreter wants them in O0/O1.
  107.14 @@ -1333,6 +1337,7 @@
  107.15    __ movbool(true, G3_scratch);
  107.16    __ stbool(G3_scratch, do_not_unlock_if_synchronized);
  107.17  
  107.18 +  __ profile_parameters_type(G1_scratch, G3_scratch, G4_scratch, Lscratch);
  107.19    // increment invocation counter and check for overflow
  107.20    //
  107.21    // Note: checking for negative value instead of overflow
   108.1 --- a/src/cpu/sparc/vm/templateTable_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
   108.2 +++ b/src/cpu/sparc/vm/templateTable_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
   108.3 @@ -2942,12 +2942,12 @@
   108.4  
   108.5  
   108.6  void TemplateTable::generate_vtable_call(Register Rrecv, Register Rindex, Register Rret) {
   108.7 -  Register Rtemp = G4_scratch;
   108.8    Register Rcall = Rindex;
   108.9    assert_different_registers(Rcall, G5_method, Gargs, Rret);
  108.10  
  108.11    // get target Method* & entry point
  108.12    __ lookup_virtual_method(Rrecv, Rindex, G5_method);
  108.13 +  __ profile_arguments_type(G5_method, Rcall, Gargs, true);
  108.14    __ call_from_interpreter(Rcall, Gargs, Rret);
  108.15  }
  108.16  
  108.17 @@ -3022,6 +3022,7 @@
  108.18    __ null_check(O0);
  108.19  
  108.20    __ profile_final_call(O4);
  108.21 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, true);
  108.22  
  108.23    // get return address
  108.24    AddressLiteral table(Interpreter::invoke_return_entry_table());
  108.25 @@ -3051,6 +3052,7 @@
  108.26  
  108.27    // do the call
  108.28    __ profile_call(O4);
  108.29 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, false);
  108.30    __ call_from_interpreter(Rscratch, Gargs, Rret);
  108.31  }
  108.32  
  108.33 @@ -3066,6 +3068,7 @@
  108.34  
  108.35    // do the call
  108.36    __ profile_call(O4);
  108.37 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, false);
  108.38    __ call_from_interpreter(Rscratch, Gargs, Rret);
  108.39  }
  108.40  
  108.41 @@ -3091,6 +3094,7 @@
  108.42    // do the call - the index (f2) contains the Method*
  108.43    assert_different_registers(G5_method, Gargs, Rcall);
  108.44    __ mov(Rindex, G5_method);
  108.45 +  __ profile_arguments_type(G5_method, Rcall, Gargs, true);
  108.46    __ call_from_interpreter(Rcall, Gargs, Rret);
  108.47    __ bind(notFinal);
  108.48  
  108.49 @@ -3197,6 +3201,7 @@
  108.50    Register Rcall = Rinterface;
  108.51    assert_different_registers(Rcall, G5_method, Gargs, Rret);
  108.52  
  108.53 +  __ profile_arguments_type(G5_method, Rcall, Gargs, true);
  108.54    __ call_from_interpreter(Rcall, Gargs, Rret);
  108.55  }
  108.56  
  108.57 @@ -3226,6 +3231,7 @@
  108.58    // do the call
  108.59    __ verify_oop(G4_mtype);
  108.60    __ profile_final_call(O4);  // FIXME: profile the LambdaForm also
  108.61 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, true);
  108.62    __ call_from_interpreter(Rscratch, Gargs, Rret);
  108.63  }
  108.64  
  108.65 @@ -3262,6 +3268,7 @@
  108.66  
  108.67    // do the call
  108.68    __ verify_oop(G4_callsite);
  108.69 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, false);
  108.70    __ call_from_interpreter(Rscratch, Gargs, Rret);
  108.71  }
  108.72  
   109.1 --- a/src/cpu/sparc/vm/vmStructs_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   109.2 +++ b/src/cpu/sparc/vm/vmStructs_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   109.3 @@ -1,5 +1,5 @@
   109.4  /*
   109.5 - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
   109.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   109.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   109.8   *
   109.9   * This code is free software; you can redistribute it and/or modify it
   110.1 --- a/src/cpu/sparc/vm/vm_version_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
   110.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
   110.3 @@ -1,5 +1,5 @@
   110.4  /*
   110.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   110.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   110.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   110.8   *
   110.9   * This code is free software; you can redistribute it and/or modify it
   111.1 --- a/src/cpu/sparc/vm/vm_version_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   111.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   111.3 @@ -1,5 +1,5 @@
   111.4  /*
   111.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   111.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   111.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   111.8   *
   111.9   * This code is free software; you can redistribute it and/or modify it
   112.1 --- a/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   112.2 +++ b/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   112.3 @@ -1,5 +1,5 @@
   112.4  /*
   112.5 - * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
   112.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   112.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   112.8   *
   112.9   * This code is free software; you can redistribute it and/or modify it
   113.1 --- a/src/cpu/x86/vm/c1_CodeStubs_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   113.2 +++ b/src/cpu/x86/vm/c1_CodeStubs_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   113.3 @@ -1,5 +1,5 @@
   113.4  /*
   113.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   113.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   113.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   113.8   *
   113.9   * This code is free software; you can redistribute it and/or modify it
   114.1 --- a/src/cpu/x86/vm/c1_FrameMap_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   114.2 +++ b/src/cpu/x86/vm/c1_FrameMap_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   114.3 @@ -1,5 +1,5 @@
   114.4  /*
   114.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   114.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   114.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   114.8   *
   114.9   * This code is free software; you can redistribute it and/or modify it
   115.1 --- a/src/cpu/x86/vm/c1_FrameMap_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   115.2 +++ b/src/cpu/x86/vm/c1_FrameMap_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   115.3 @@ -1,5 +1,5 @@
   115.4  /*
   115.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   115.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   115.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   115.8   *
   115.9   * This code is free software; you can redistribute it and/or modify it
   116.1 --- a/src/cpu/x86/vm/c1_LinearScan_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   116.2 +++ b/src/cpu/x86/vm/c1_LinearScan_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   116.3 @@ -1,5 +1,5 @@
   116.4  /*
   116.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   116.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   116.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   116.8   *
   116.9   * This code is free software; you can redistribute it and/or modify it
   117.1 --- a/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   117.2 +++ b/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   117.3 @@ -1,5 +1,5 @@
   117.4  /*
   117.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   117.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   117.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   117.8   *
   117.9   * This code is free software; you can redistribute it and/or modify it
   118.1 --- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   118.2 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   118.3 @@ -1,5 +1,5 @@
   118.4  /*
   118.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   118.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   118.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   118.8   *
   118.9   * This code is free software; you can redistribute it and/or modify it
   119.1 --- a/src/cpu/x86/vm/c1_globals_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   119.2 +++ b/src/cpu/x86/vm/c1_globals_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   119.3 @@ -1,5 +1,5 @@
   119.4  /*
   119.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   119.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   119.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   119.8   *
   119.9   * This code is free software; you can redistribute it and/or modify it
   120.1 --- a/src/cpu/x86/vm/c2_globals_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   120.2 +++ b/src/cpu/x86/vm/c2_globals_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   120.3 @@ -1,5 +1,5 @@
   120.4  /*
   120.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   120.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   120.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   120.8   *
   120.9   * This code is free software; you can redistribute it and/or modify it
   121.1 --- a/src/cpu/x86/vm/frame_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   121.2 +++ b/src/cpu/x86/vm/frame_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   121.3 @@ -1,5 +1,5 @@
   121.4  /*
   121.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   121.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   121.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   121.8   *
   121.9   * This code is free software; you can redistribute it and/or modify it
   122.1 --- a/src/cpu/x86/vm/frame_x86.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   122.2 +++ b/src/cpu/x86/vm/frame_x86.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   122.3 @@ -1,5 +1,5 @@
   122.4  /*
   122.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   122.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   122.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   122.8   *
   122.9   * This code is free software; you can redistribute it and/or modify it
   123.1 --- a/src/cpu/x86/vm/globalDefinitions_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   123.2 +++ b/src/cpu/x86/vm/globalDefinitions_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   123.3 @@ -1,5 +1,5 @@
   123.4  /*
   123.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   123.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   123.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   123.8   *
   123.9   * This code is free software; you can redistribute it and/or modify it
   124.1 --- a/src/cpu/x86/vm/interp_masm_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   124.2 +++ b/src/cpu/x86/vm/interp_masm_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   124.3 @@ -127,7 +127,7 @@
   124.4  
   124.5        if (MethodData::profile_return()) {
   124.6          // We're right after the type profile for the last
   124.7 -        // argument. tmp is the number of cell left in the
   124.8 +        // argument. tmp is the number of cells left in the
   124.9          // CallTypeData/VirtualCallTypeData to reach its end. Non null
  124.10          // if there's a return to profile.
  124.11          assert(ReturnTypeEntry::static_cell_count() < TypeStackSlotEntries::per_arg_count(), "can't move past ret type");
  124.12 @@ -198,7 +198,7 @@
  124.13      // parameters. Collect profiling from last parameter down.
  124.14      // mdo start + parameters offset + array length - 1
  124.15      addptr(mdp, tmp1);
  124.16 -    movptr(tmp1, Address(mdp, in_bytes(ArrayData::array_len_offset())));
  124.17 +    movptr(tmp1, Address(mdp, ArrayData::array_len_offset()));
  124.18      decrement(tmp1, TypeStackSlotEntries::per_arg_count());
  124.19  
  124.20      Label loop;
   125.1 --- a/src/cpu/x86/vm/register_definitions_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   125.2 +++ b/src/cpu/x86/vm/register_definitions_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   125.3 @@ -1,5 +1,5 @@
   125.4  /*
   125.5 - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
   125.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   125.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   125.8   *
   125.9   * This code is free software; you can redistribute it and/or modify it
   126.1 --- a/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Thu Jan 16 14:25:51 2014 +0100
   126.2 +++ b/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Wed Jan 22 17:42:23 2014 -0800
   126.3 @@ -1,5 +1,5 @@
   126.4  /*
   126.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   126.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   126.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   126.8   *
   126.9   * This code is free software; you can redistribute it and/or modify it
   127.1 --- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Thu Jan 16 14:25:51 2014 +0100
   127.2 +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Wed Jan 22 17:42:23 2014 -0800
   127.3 @@ -1,5 +1,5 @@
   127.4  /*
   127.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   127.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   127.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   127.8   *
   127.9   * This code is free software; you can redistribute it and/or modify it
   128.1 --- a/src/cpu/x86/vm/templateInterpreter_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   128.2 +++ b/src/cpu/x86/vm/templateInterpreter_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   128.3 @@ -1,5 +1,5 @@
   128.4  /*
   128.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   128.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   128.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   128.8   *
   128.9   * This code is free software; you can redistribute it and/or modify it
   129.1 --- a/src/cpu/x86/vm/vmStructs_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   129.2 +++ b/src/cpu/x86/vm/vmStructs_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   129.3 @@ -1,5 +1,5 @@
   129.4  /*
   129.5 - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
   129.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   129.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   129.8   *
   129.9   * This code is free software; you can redistribute it and/or modify it
   130.1 --- a/src/cpu/x86/vm/vtableStubs_x86_32.cpp	Thu Jan 16 14:25:51 2014 +0100
   130.2 +++ b/src/cpu/x86/vm/vtableStubs_x86_32.cpp	Wed Jan 22 17:42:23 2014 -0800
   130.3 @@ -1,5 +1,5 @@
   130.4  /*
   130.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   130.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   130.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   130.8   *
   130.9   * This code is free software; you can redistribute it and/or modify it
   131.1 --- a/src/cpu/x86/vm/vtableStubs_x86_64.cpp	Thu Jan 16 14:25:51 2014 +0100
   131.2 +++ b/src/cpu/x86/vm/vtableStubs_x86_64.cpp	Wed Jan 22 17:42:23 2014 -0800
   131.3 @@ -1,5 +1,5 @@
   131.4  /*
   131.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   131.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   131.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   131.8   *
   131.9   * This code is free software; you can redistribute it and/or modify it
   132.1 --- a/src/cpu/zero/vm/assembler_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   132.2 +++ b/src/cpu/zero/vm/assembler_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   132.3 @@ -1,5 +1,5 @@
   132.4  /*
   132.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   132.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   132.7   * Copyright 2007, 2008, 2009 Red Hat, Inc.
   132.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   132.9   *
   133.1 --- a/src/cpu/zero/vm/cppInterpreter_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   133.2 +++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   133.3 @@ -1,5 +1,5 @@
   133.4  /*
   133.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   133.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   133.7   * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
   133.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   133.9   *
   134.1 --- a/src/cpu/zero/vm/entryFrame_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   134.2 +++ b/src/cpu/zero/vm/entryFrame_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   134.3 @@ -1,5 +1,5 @@
   134.4  /*
   134.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   134.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   134.7   * Copyright 2008, 2010 Red Hat, Inc.
   134.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   134.9   *
   135.1 --- a/src/cpu/zero/vm/frame_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   135.2 +++ b/src/cpu/zero/vm/frame_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   135.3 @@ -1,5 +1,5 @@
   135.4  /*
   135.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   135.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   135.7   * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
   135.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   135.9   *
   136.1 --- a/src/cpu/zero/vm/frame_zero.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   136.2 +++ b/src/cpu/zero/vm/frame_zero.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   136.3 @@ -1,5 +1,5 @@
   136.4  /*
   136.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   136.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   136.7   * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
   136.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   136.9   *
   137.1 --- a/src/cpu/zero/vm/globals_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   137.2 +++ b/src/cpu/zero/vm/globals_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   137.3 @@ -1,5 +1,5 @@
   137.4  /*
   137.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   137.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   137.7   * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
   137.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   137.9   *
   138.1 --- a/src/cpu/zero/vm/icBuffer_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   138.2 +++ b/src/cpu/zero/vm/icBuffer_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   138.3 @@ -1,5 +1,5 @@
   138.4  /*
   138.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   138.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   138.7   * Copyright 2007 Red Hat, Inc.
   138.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   138.9   *
   139.1 --- a/src/cpu/zero/vm/interp_masm_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   139.2 +++ b/src/cpu/zero/vm/interp_masm_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   139.3 @@ -1,5 +1,5 @@
   139.4  /*
   139.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   139.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   139.7   * Copyright 2007 Red Hat, Inc.
   139.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   139.9   *
   140.1 --- a/src/cpu/zero/vm/interpreter_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   140.2 +++ b/src/cpu/zero/vm/interpreter_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   140.3 @@ -1,5 +1,5 @@
   140.4  /*
   140.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   140.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   140.7   * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
   140.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   140.9   *
   141.1 --- a/src/cpu/zero/vm/jni_zero.h	Thu Jan 16 14:25:51 2014 +0100
   141.2 +++ b/src/cpu/zero/vm/jni_zero.h	Wed Jan 22 17:42:23 2014 -0800
   141.3 @@ -1,5 +1,5 @@
   141.4  /*
   141.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
   141.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   141.7   * Copyright 2009 Red Hat, Inc.
   141.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   141.9   *
   142.1 --- a/src/cpu/zero/vm/nativeInst_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   142.2 +++ b/src/cpu/zero/vm/nativeInst_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   142.3 @@ -1,5 +1,5 @@
   142.4  /*
   142.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   142.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   142.7   * Copyright 2007 Red Hat, Inc.
   142.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   142.9   *
   143.1 --- a/src/cpu/zero/vm/register_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   143.2 +++ b/src/cpu/zero/vm/register_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   143.3 @@ -1,5 +1,5 @@
   143.4  /*
   143.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
   143.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   143.7   * Copyright 2007 Red Hat, Inc.
   143.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   143.9   *
   144.1 --- a/src/cpu/zero/vm/relocInfo_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   144.2 +++ b/src/cpu/zero/vm/relocInfo_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   144.3 @@ -1,5 +1,5 @@
   144.4  /*
   144.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   144.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   144.7   * Copyright 2007, 2009, 2010, 2011 Red Hat, Inc.
   144.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   144.9   *
   145.1 --- a/src/cpu/zero/vm/sharedRuntime_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   145.2 +++ b/src/cpu/zero/vm/sharedRuntime_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   145.3 @@ -1,5 +1,5 @@
   145.4  /*
   145.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   145.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   145.7   * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
   145.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   145.9   *
   146.1 --- a/src/cpu/zero/vm/sharkFrame_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   146.2 +++ b/src/cpu/zero/vm/sharkFrame_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   146.3 @@ -1,5 +1,5 @@
   146.4  /*
   146.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   146.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   146.7   * Copyright 2008, 2009 Red Hat, Inc.
   146.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   146.9   *
   147.1 --- a/src/cpu/zero/vm/stubGenerator_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   147.2 +++ b/src/cpu/zero/vm/stubGenerator_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   147.3 @@ -1,5 +1,5 @@
   147.4  /*
   147.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   147.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   147.7   * Copyright 2007, 2008, 2010 Red Hat, Inc.
   147.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   147.9   *
   148.1 --- a/src/cpu/zero/vm/vmStructs_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   148.2 +++ b/src/cpu/zero/vm/vmStructs_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   148.3 @@ -1,5 +1,5 @@
   148.4  /*
   148.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   148.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   148.7   * Copyright 2007 Red Hat, Inc.
   148.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   148.9   *
   149.1 --- a/src/cpu/zero/vm/vtableStubs_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   149.2 +++ b/src/cpu/zero/vm/vtableStubs_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   149.3 @@ -1,5 +1,5 @@
   149.4  /*
   149.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   149.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   149.7   * Copyright 2007 Red Hat, Inc.
   149.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   149.9   *
   150.1 --- a/src/os/bsd/dtrace/jvm_dtrace.c	Thu Jan 16 14:25:51 2014 +0100
   150.2 +++ b/src/os/bsd/dtrace/jvm_dtrace.c	Wed Jan 22 17:42:23 2014 -0800
   150.3 @@ -1,5 +1,5 @@
   150.4  /*
   150.5 - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
   150.6 + * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
   150.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   150.8   *
   150.9   * This code is free software; you can redistribute it and/or modify it
   151.1 --- a/src/os/posix/vm/os_posix.hpp	Thu Jan 16 14:25:51 2014 +0100
   151.2 +++ b/src/os/posix/vm/os_posix.hpp	Wed Jan 22 17:42:23 2014 -0800
   151.3 @@ -1,5 +1,5 @@
   151.4  /*
   151.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   151.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   151.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   151.8   *
   151.9   * This code is free software; you can redistribute it and/or modify it
   152.1 --- a/src/os/solaris/dtrace/jvm_dtrace.c	Thu Jan 16 14:25:51 2014 +0100
   152.2 +++ b/src/os/solaris/dtrace/jvm_dtrace.c	Wed Jan 22 17:42:23 2014 -0800
   152.3 @@ -1,5 +1,5 @@
   152.4  /*
   152.5 - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
   152.6 + * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
   152.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   152.8   *
   152.9   * This code is free software; you can redistribute it and/or modify it
   153.1 --- a/src/os/solaris/vm/globals_solaris.hpp	Thu Jan 16 14:25:51 2014 +0100
   153.2 +++ b/src/os/solaris/vm/globals_solaris.hpp	Wed Jan 22 17:42:23 2014 -0800
   153.3 @@ -1,5 +1,5 @@
   153.4  /*
   153.5 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
   153.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   153.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   153.8   *
   153.9   * This code is free software; you can redistribute it and/or modify it
   154.1 --- a/src/os/windows/vm/decoder_windows.hpp	Thu Jan 16 14:25:51 2014 +0100
   154.2 +++ b/src/os/windows/vm/decoder_windows.hpp	Wed Jan 22 17:42:23 2014 -0800
   154.3 @@ -1,5 +1,5 @@
   154.4  /*
   154.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   154.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   154.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   154.8   *
   154.9   * This code is free software; you can redistribute it and/or modify it
   155.1 --- a/src/os_cpu/bsd_x86/vm/bsd_x86_32.s	Thu Jan 16 14:25:51 2014 +0100
   155.2 +++ b/src/os_cpu/bsd_x86/vm/bsd_x86_32.s	Wed Jan 22 17:42:23 2014 -0800
   155.3 @@ -1,5 +1,5 @@
   155.4  #
   155.5 -# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
   155.6 +# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
   155.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   155.8  #
   155.9  # This code is free software; you can redistribute it and/or modify it
   156.1 --- a/src/os_cpu/bsd_x86/vm/bsd_x86_64.s	Thu Jan 16 14:25:51 2014 +0100
   156.2 +++ b/src/os_cpu/bsd_x86/vm/bsd_x86_64.s	Wed Jan 22 17:42:23 2014 -0800
   156.3 @@ -1,5 +1,5 @@
   156.4  # 
   156.5 -# Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
   156.6 +# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
   156.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   156.8  #
   156.9  # This code is free software; you can redistribute it and/or modify it
   157.1 --- a/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   157.2 +++ b/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   157.3 @@ -1,5 +1,5 @@
   157.4  /*
   157.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   157.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   157.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   157.8   *
   157.9   * This code is free software; you can redistribute it and/or modify it
   158.1 --- a/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   158.2 +++ b/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   158.3 @@ -1,5 +1,5 @@
   158.4  /*
   158.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   158.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   158.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   158.8   *
   158.9   * This code is free software; you can redistribute it and/or modify it
   159.1 --- a/src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   159.2 +++ b/src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   159.3 @@ -1,5 +1,5 @@
   159.4  /*
   159.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   159.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   159.7   * Copyright 2007, 2008, 2010 Red Hat, Inc.
   159.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   159.9   *
   160.1 --- a/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   160.2 +++ b/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   160.3 @@ -1,5 +1,5 @@
   160.4  /*
   160.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   160.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   160.7   * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
   160.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   160.9   *
   161.1 --- a/src/os_cpu/bsd_zero/vm/thread_bsd_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   161.2 +++ b/src/os_cpu/bsd_zero/vm/thread_bsd_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   161.3 @@ -1,5 +1,5 @@
   161.4  /*
   161.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
   161.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   161.7   * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
   161.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   161.9   *
   162.1 --- a/src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   162.2 +++ b/src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   162.3 @@ -1,5 +1,5 @@
   162.4  /*
   162.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   162.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   162.7   * Copyright 2007 Red Hat, Inc.
   162.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   162.9   *
   163.1 --- a/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   163.2 +++ b/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   163.3 @@ -1,5 +1,5 @@
   163.4  /*
   163.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   163.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   163.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   163.8   *
   163.9   * This code is free software; you can redistribute it and/or modify it
   164.1 --- a/src/os_cpu/linux_sparc/vm/linux_sparc.s	Thu Jan 16 14:25:51 2014 +0100
   164.2 +++ b/src/os_cpu/linux_sparc/vm/linux_sparc.s	Wed Jan 22 17:42:23 2014 -0800
   164.3 @@ -1,5 +1,5 @@
   164.4  #
   164.5 -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
   164.6 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   164.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   164.8  #
   164.9  # This code is free software; you can redistribute it and/or modify it
   165.1 --- a/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp	Thu Jan 16 14:25:51 2014 +0100
   165.2 +++ b/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp	Wed Jan 22 17:42:23 2014 -0800
   165.3 @@ -1,5 +1,5 @@
   165.4  /*
   165.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   165.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   165.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   165.8   *
   165.9   * This code is free software; you can redistribute it and/or modify it
   166.1 --- a/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   166.2 +++ b/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   166.3 @@ -1,5 +1,5 @@
   166.4  /*
   166.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   166.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   166.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   166.8   *
   166.9   * This code is free software; you can redistribute it and/or modify it
   167.1 --- a/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   167.2 +++ b/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   167.3 @@ -1,5 +1,5 @@
   167.4  /*
   167.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   167.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   167.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   167.8   *
   167.9   * This code is free software; you can redistribute it and/or modify it
   168.1 --- a/src/os_cpu/linux_x86/vm/linux_x86_32.s	Thu Jan 16 14:25:51 2014 +0100
   168.2 +++ b/src/os_cpu/linux_x86/vm/linux_x86_32.s	Wed Jan 22 17:42:23 2014 -0800
   168.3 @@ -1,5 +1,5 @@
   168.4  # 
   168.5 -# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
   168.6 +# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
   168.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   168.8  #
   168.9  # This code is free software; you can redistribute it and/or modify it
   169.1 --- a/src/os_cpu/linux_x86/vm/linux_x86_64.s	Thu Jan 16 14:25:51 2014 +0100
   169.2 +++ b/src/os_cpu/linux_x86/vm/linux_x86_64.s	Wed Jan 22 17:42:23 2014 -0800
   169.3 @@ -1,5 +1,5 @@
   169.4  # 
   169.5 -# Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
   169.6 +# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
   169.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   169.8  #
   169.9  # This code is free software; you can redistribute it and/or modify it
   170.1 --- a/src/os_cpu/linux_x86/vm/os_linux_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   170.2 +++ b/src/os_cpu/linux_x86/vm/os_linux_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   170.3 @@ -1,5 +1,5 @@
   170.4  /*
   170.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   170.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   170.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   170.8   *
   170.9   * This code is free software; you can redistribute it and/or modify it
   171.1 --- a/src/os_cpu/linux_x86/vm/os_linux_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   171.2 +++ b/src/os_cpu/linux_x86/vm/os_linux_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   171.3 @@ -1,5 +1,5 @@
   171.4  /*
   171.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   171.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   171.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   171.8   *
   171.9   * This code is free software; you can redistribute it and/or modify it
   172.1 --- a/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   172.2 +++ b/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   172.3 @@ -1,5 +1,5 @@
   172.4  /*
   172.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   172.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   172.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   172.8   *
   172.9   * This code is free software; you can redistribute it and/or modify it
   173.1 --- a/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   173.2 +++ b/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   173.3 @@ -1,5 +1,5 @@
   173.4  /*
   173.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   173.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   173.7   * Copyright 2007, 2008, 2010 Red Hat, Inc.
   173.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   173.9   *
   174.1 --- a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	Thu Jan 16 14:25:51 2014 +0100
   174.2 +++ b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	Wed Jan 22 17:42:23 2014 -0800
   174.3 @@ -1,5 +1,5 @@
   174.4  /*
   174.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   174.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   174.7   * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
   174.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   174.9   *
   175.1 --- a/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp	Thu Jan 16 14:25:51 2014 +0100
   175.2 +++ b/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp	Wed Jan 22 17:42:23 2014 -0800
   175.3 @@ -1,5 +1,5 @@
   175.4  /*
   175.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   175.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   175.7   * Copyright 2007 Red Hat, Inc.
   175.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   175.9   *
   176.1 --- a/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   176.2 +++ b/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   176.3 @@ -1,5 +1,5 @@
   176.4  /*
   176.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   176.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   176.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   176.8   *
   176.9   * This code is free software; you can redistribute it and/or modify it
   177.1 --- a/src/os_cpu/solaris_sparc/vm/solaris_sparc.il	Thu Jan 16 14:25:51 2014 +0100
   177.2 +++ b/src/os_cpu/solaris_sparc/vm/solaris_sparc.il	Wed Jan 22 17:42:23 2014 -0800
   177.3 @@ -1,5 +1,5 @@
   177.4  //
   177.5 -// Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
   177.6 +// Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   177.7  // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   177.8  //
   177.9  // This code is free software; you can redistribute it and/or modify it
   178.1 --- a/src/os_cpu/solaris_sparc/vm/solaris_sparc.s	Thu Jan 16 14:25:51 2014 +0100
   178.2 +++ b/src/os_cpu/solaris_sparc/vm/solaris_sparc.s	Wed Jan 22 17:42:23 2014 -0800
   178.3 @@ -1,5 +1,5 @@
   178.4  !!
   178.5 -!! Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
   178.6 +!! Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   178.7  !! DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   178.8  !!
   178.9  !! This code is free software; you can redistribute it and/or modify it
   179.1 --- a/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp	Thu Jan 16 14:25:51 2014 +0100
   179.2 +++ b/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp	Wed Jan 22 17:42:23 2014 -0800
   179.3 @@ -1,5 +1,5 @@
   179.4  /*
   179.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   179.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   179.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   179.8   *
   179.9   * This code is free software; you can redistribute it and/or modify it
   180.1 --- a/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   180.2 +++ b/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   180.3 @@ -1,5 +1,5 @@
   180.4  /*
   180.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   180.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   180.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   180.8   *
   180.9   * This code is free software; you can redistribute it and/or modify it
   181.1 --- a/src/os_cpu/solaris_x86/vm/solaris_x86_32.s	Thu Jan 16 14:25:51 2014 +0100
   181.2 +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_32.s	Wed Jan 22 17:42:23 2014 -0800
   181.3 @@ -1,5 +1,5 @@
   181.4  //
   181.5 -// Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
   181.6 +// Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
   181.7  // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   181.8  //
   181.9  // This code is free software; you can redistribute it and/or modify it
   182.1 --- a/src/os_cpu/solaris_x86/vm/solaris_x86_64.s	Thu Jan 16 14:25:51 2014 +0100
   182.2 +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_64.s	Wed Jan 22 17:42:23 2014 -0800
   182.3 @@ -1,5 +1,5 @@
   182.4  /
   182.5 -/ Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
   182.6 +/ Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
   182.7  / DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   182.8  /
   182.9  / This code is free software; you can redistribute it and/or modify it
   183.1 --- a/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   183.2 +++ b/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   183.3 @@ -1,5 +1,5 @@
   183.4  /*
   183.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   183.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   183.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   183.8   *
   183.9   * This code is free software; you can redistribute it and/or modify it
   184.1 --- a/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   184.2 +++ b/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   184.3 @@ -1,5 +1,5 @@
   184.4  /*
   184.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   184.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   184.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   184.8   *
   184.9   * This code is free software; you can redistribute it and/or modify it
   185.1 --- a/src/os_cpu/windows_x86/vm/os_windows_x86.cpp	Thu Jan 16 14:25:51 2014 +0100
   185.2 +++ b/src/os_cpu/windows_x86/vm/os_windows_x86.cpp	Wed Jan 22 17:42:23 2014 -0800
   185.3 @@ -1,5 +1,5 @@
   185.4  /*
   185.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   185.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   185.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   185.8   *
   185.9   * This code is free software; you can redistribute it and/or modify it
   186.1 --- a/src/os_cpu/windows_x86/vm/os_windows_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   186.2 +++ b/src/os_cpu/windows_x86/vm/os_windows_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   186.3 @@ -1,5 +1,5 @@
   186.4  /*
   186.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   186.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   186.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   186.8   *
   186.9   * This code is free software; you can redistribute it and/or modify it
   187.1 --- a/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp	Thu Jan 16 14:25:51 2014 +0100
   187.2 +++ b/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp	Wed Jan 22 17:42:23 2014 -0800
   187.3 @@ -1,5 +1,5 @@
   187.4  /*
   187.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   187.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   187.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   187.8   *
   187.9   * This code is free software; you can redistribute it and/or modify it
   188.1 --- a/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java	Thu Jan 16 14:25:51 2014 +0100
   188.2 +++ b/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java	Wed Jan 22 17:42:23 2014 -0800
   188.3 @@ -1,5 +1,5 @@
   188.4  /*
   188.5 - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
   188.6 + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
   188.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   188.8   *
   188.9   * This code is free software; you can redistribute it and/or modify it
   189.1 --- a/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java	Thu Jan 16 14:25:51 2014 +0100
   189.2 +++ b/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java	Wed Jan 22 17:42:23 2014 -0800
   189.3 @@ -1,5 +1,5 @@
   189.4  /*
   189.5 - * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
   189.6 + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
   189.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   189.8   *
   189.9   * This code is free software; you can redistribute it and/or modify it
   190.1 --- a/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java	Thu Jan 16 14:25:51 2014 +0100
   190.2 +++ b/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java	Wed Jan 22 17:42:23 2014 -0800
   190.3 @@ -1,5 +1,5 @@
   190.4  /*
   190.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   190.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   190.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   190.8   *
   190.9   * This code is free software; you can redistribute it and/or modify it
   191.1 --- a/src/share/vm/adlc/adlparse.cpp	Thu Jan 16 14:25:51 2014 +0100
   191.2 +++ b/src/share/vm/adlc/adlparse.cpp	Wed Jan 22 17:42:23 2014 -0800
   191.3 @@ -1,5 +1,5 @@
   191.4  /*
   191.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   191.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   191.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   191.8   *
   191.9   * This code is free software; you can redistribute it and/or modify it
   192.1 --- a/src/share/vm/adlc/archDesc.cpp	Thu Jan 16 14:25:51 2014 +0100
   192.2 +++ b/src/share/vm/adlc/archDesc.cpp	Wed Jan 22 17:42:23 2014 -0800
   192.3 @@ -1,5 +1,5 @@
   192.4  //
   192.5 -// Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   192.6 +// Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   192.7  // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   192.8  //
   192.9  // This code is free software; you can redistribute it and/or modify it
   193.1 --- a/src/share/vm/adlc/dfa.cpp	Thu Jan 16 14:25:51 2014 +0100
   193.2 +++ b/src/share/vm/adlc/dfa.cpp	Wed Jan 22 17:42:23 2014 -0800
   193.3 @@ -1,5 +1,5 @@
   193.4  /*
   193.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   193.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   193.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   193.8   *
   193.9   * This code is free software; you can redistribute it and/or modify it
   194.1 --- a/src/share/vm/adlc/dict2.cpp	Thu Jan 16 14:25:51 2014 +0100
   194.2 +++ b/src/share/vm/adlc/dict2.cpp	Wed Jan 22 17:42:23 2014 -0800
   194.3 @@ -1,5 +1,5 @@
   194.4  /*
   194.5 - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
   194.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   194.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   194.8   *
   194.9   * This code is free software; you can redistribute it and/or modify it
   195.1 --- a/src/share/vm/adlc/formssel.cpp	Thu Jan 16 14:25:51 2014 +0100
   195.2 +++ b/src/share/vm/adlc/formssel.cpp	Wed Jan 22 17:42:23 2014 -0800
   195.3 @@ -1,5 +1,5 @@
   195.4  /*
   195.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   195.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   195.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   195.8   *
   195.9   * This code is free software; you can redistribute it and/or modify it
   196.1 --- a/src/share/vm/adlc/formssel.hpp	Thu Jan 16 14:25:51 2014 +0100
   196.2 +++ b/src/share/vm/adlc/formssel.hpp	Wed Jan 22 17:42:23 2014 -0800
   196.3 @@ -1,5 +1,5 @@
   196.4  /*
   196.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   196.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   196.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   196.8   *
   196.9   * This code is free software; you can redistribute it and/or modify it
   197.1 --- a/src/share/vm/adlc/output_c.cpp	Thu Jan 16 14:25:51 2014 +0100
   197.2 +++ b/src/share/vm/adlc/output_c.cpp	Wed Jan 22 17:42:23 2014 -0800
   197.3 @@ -1,5 +1,5 @@
   197.4  /*
   197.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   197.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   197.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   197.8   *
   197.9   * This code is free software; you can redistribute it and/or modify it
   198.1 --- a/src/share/vm/adlc/output_h.cpp	Thu Jan 16 14:25:51 2014 +0100
   198.2 +++ b/src/share/vm/adlc/output_h.cpp	Wed Jan 22 17:42:23 2014 -0800
   198.3 @@ -1,5 +1,5 @@
   198.4  /*
   198.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   198.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   198.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   198.8   *
   198.9   * This code is free software; you can redistribute it and/or modify it
   199.1 --- a/src/share/vm/asm/assembler.cpp	Thu Jan 16 14:25:51 2014 +0100
   199.2 +++ b/src/share/vm/asm/assembler.cpp	Wed Jan 22 17:42:23 2014 -0800
   199.3 @@ -1,5 +1,5 @@
   199.4  /*
   199.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   199.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   199.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   199.8   *
   199.9   * This code is free software; you can redistribute it and/or modify it
   200.1 --- a/src/share/vm/asm/assembler.hpp	Thu Jan 16 14:25:51 2014 +0100
   200.2 +++ b/src/share/vm/asm/assembler.hpp	Wed Jan 22 17:42:23 2014 -0800
   200.3 @@ -1,5 +1,5 @@
   200.4  /*
   200.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   200.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   200.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   200.8   *
   200.9   * This code is free software; you can redistribute it and/or modify it
   201.1 --- a/src/share/vm/asm/codeBuffer.cpp	Thu Jan 16 14:25:51 2014 +0100
   201.2 +++ b/src/share/vm/asm/codeBuffer.cpp	Wed Jan 22 17:42:23 2014 -0800
   201.3 @@ -1,5 +1,5 @@
   201.4  /*
   201.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   201.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   201.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   201.8   *
   201.9   * This code is free software; you can redistribute it and/or modify it
   202.1 --- a/src/share/vm/asm/macroAssembler.hpp	Thu Jan 16 14:25:51 2014 +0100
   202.2 +++ b/src/share/vm/asm/macroAssembler.hpp	Wed Jan 22 17:42:23 2014 -0800
   202.3 @@ -1,5 +1,5 @@
   202.4  /*
   202.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   202.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   202.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   202.8   *
   202.9   * This code is free software; you can redistribute it and/or modify it
   203.1 --- a/src/share/vm/asm/macroAssembler.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   203.2 +++ b/src/share/vm/asm/macroAssembler.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   203.3 @@ -1,5 +1,5 @@
   203.4  /*
   203.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   203.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   203.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   203.8   *
   203.9   * This code is free software; you can redistribute it and/or modify it
   204.1 --- a/src/share/vm/c1/c1_Canonicalizer.cpp	Thu Jan 16 14:25:51 2014 +0100
   204.2 +++ b/src/share/vm/c1/c1_Canonicalizer.cpp	Wed Jan 22 17:42:23 2014 -0800
   204.3 @@ -1,5 +1,5 @@
   204.4  /*
   204.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   204.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   204.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   204.8   *
   204.9   * This code is free software; you can redistribute it and/or modify it
   205.1 --- a/src/share/vm/c1/c1_Canonicalizer.hpp	Thu Jan 16 14:25:51 2014 +0100
   205.2 +++ b/src/share/vm/c1/c1_Canonicalizer.hpp	Wed Jan 22 17:42:23 2014 -0800
   205.3 @@ -1,5 +1,5 @@
   205.4  /*
   205.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   205.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   205.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   205.8   *
   205.9   * This code is free software; you can redistribute it and/or modify it
   206.1 --- a/src/share/vm/c1/c1_CodeStubs.hpp	Thu Jan 16 14:25:51 2014 +0100
   206.2 +++ b/src/share/vm/c1/c1_CodeStubs.hpp	Wed Jan 22 17:42:23 2014 -0800
   206.3 @@ -1,5 +1,5 @@
   206.4  /*
   206.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   206.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   206.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   206.8   *
   206.9   * This code is free software; you can redistribute it and/or modify it
   207.1 --- a/src/share/vm/c1/c1_Compilation.cpp	Thu Jan 16 14:25:51 2014 +0100
   207.2 +++ b/src/share/vm/c1/c1_Compilation.cpp	Wed Jan 22 17:42:23 2014 -0800
   207.3 @@ -1,5 +1,5 @@
   207.4  /*
   207.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   207.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   207.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   207.8   *
   207.9   * This code is free software; you can redistribute it and/or modify it
   208.1 --- a/src/share/vm/c1/c1_Compilation.hpp	Thu Jan 16 14:25:51 2014 +0100
   208.2 +++ b/src/share/vm/c1/c1_Compilation.hpp	Wed Jan 22 17:42:23 2014 -0800
   208.3 @@ -259,6 +259,9 @@
   208.4    }
   208.5  
   208.6    ciKlass* cha_exact_type(ciType* type);
   208.7 +
   208.8 +  // Dump inlining replay data to the stream.
   208.9 +  void dump_inline_data(outputStream* out) { /* do nothing now */ }
  208.10  };
  208.11  
  208.12  
   209.1 --- a/src/share/vm/c1/c1_Compiler.cpp	Thu Jan 16 14:25:51 2014 +0100
   209.2 +++ b/src/share/vm/c1/c1_Compiler.cpp	Wed Jan 22 17:42:23 2014 -0800
   209.3 @@ -1,5 +1,5 @@
   209.4  /*
   209.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   209.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   209.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   209.8   *
   209.9   * This code is free software; you can redistribute it and/or modify it
   210.1 --- a/src/share/vm/c1/c1_Compiler.hpp	Thu Jan 16 14:25:51 2014 +0100
   210.2 +++ b/src/share/vm/c1/c1_Compiler.hpp	Wed Jan 22 17:42:23 2014 -0800
   210.3 @@ -1,5 +1,5 @@
   210.4  /*
   210.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   210.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   210.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   210.8   *
   210.9   * This code is free software; you can redistribute it and/or modify it
   211.1 --- a/src/share/vm/c1/c1_FrameMap.cpp	Thu Jan 16 14:25:51 2014 +0100
   211.2 +++ b/src/share/vm/c1/c1_FrameMap.cpp	Wed Jan 22 17:42:23 2014 -0800
   211.3 @@ -1,5 +1,5 @@
   211.4  /*
   211.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   211.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   211.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   211.8   *
   211.9   * This code is free software; you can redistribute it and/or modify it
   212.1 --- a/src/share/vm/c1/c1_FrameMap.hpp	Thu Jan 16 14:25:51 2014 +0100
   212.2 +++ b/src/share/vm/c1/c1_FrameMap.hpp	Wed Jan 22 17:42:23 2014 -0800
   212.3 @@ -1,5 +1,5 @@
   212.4  /*
   212.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   212.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   212.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   212.8   *
   212.9   * This code is free software; you can redistribute it and/or modify it
   213.1 --- a/src/share/vm/c1/c1_GraphBuilder.cpp	Thu Jan 16 14:25:51 2014 +0100
   213.2 +++ b/src/share/vm/c1/c1_GraphBuilder.cpp	Wed Jan 22 17:42:23 2014 -0800
   213.3 @@ -4338,11 +4338,15 @@
   213.4  #endif // PRODUCT
   213.5  
   213.6  void GraphBuilder::profile_call(ciMethod* callee, Value recv, ciKlass* known_holder, Values* obj_args, bool inlined) {
   213.7 -  // A default method's holder is an interface
   213.8 -  if (known_holder != NULL && known_holder->is_interface()) {
   213.9 -    assert(known_holder->is_instance_klass() && ((ciInstanceKlass*)known_holder)->has_default_methods(), "should be default method");
  213.10 -    known_holder = NULL;
  213.11 +  assert(known_holder == NULL || (known_holder->is_instance_klass() &&
  213.12 +                                  (!known_holder->is_interface() ||
  213.13 +                                   ((ciInstanceKlass*)known_holder)->has_default_methods())), "should be default method");
  213.14 +  if (known_holder != NULL) {
  213.15 +    if (known_holder->exact_klass() == NULL) {
  213.16 +      known_holder = compilation()->cha_exact_type(known_holder);
  213.17 +    }
  213.18    }
  213.19 +
  213.20    append(new ProfileCall(method(), bci(), callee, recv, known_holder, obj_args, inlined));
  213.21  }
  213.22  
   214.1 --- a/src/share/vm/c1/c1_GraphBuilder.hpp	Thu Jan 16 14:25:51 2014 +0100
   214.2 +++ b/src/share/vm/c1/c1_GraphBuilder.hpp	Wed Jan 22 17:42:23 2014 -0800
   214.3 @@ -1,5 +1,5 @@
   214.4  /*
   214.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   214.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   214.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   214.8   *
   214.9   * This code is free software; you can redistribute it and/or modify it
   215.1 --- a/src/share/vm/c1/c1_IR.cpp	Thu Jan 16 14:25:51 2014 +0100
   215.2 +++ b/src/share/vm/c1/c1_IR.cpp	Wed Jan 22 17:42:23 2014 -0800
   215.3 @@ -1,5 +1,5 @@
   215.4  /*
   215.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   215.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   215.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   215.8   *
   215.9   * This code is free software; you can redistribute it and/or modify it
   216.1 --- a/src/share/vm/c1/c1_IR.hpp	Thu Jan 16 14:25:51 2014 +0100
   216.2 +++ b/src/share/vm/c1/c1_IR.hpp	Wed Jan 22 17:42:23 2014 -0800
   216.3 @@ -1,5 +1,5 @@
   216.4  /*
   216.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   216.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   216.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   216.8   *
   216.9   * This code is free software; you can redistribute it and/or modify it
   217.1 --- a/src/share/vm/c1/c1_Instruction.cpp	Thu Jan 16 14:25:51 2014 +0100
   217.2 +++ b/src/share/vm/c1/c1_Instruction.cpp	Wed Jan 22 17:42:23 2014 -0800
   217.3 @@ -1,5 +1,5 @@
   217.4  /*
   217.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   217.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   217.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   217.8   *
   217.9   * This code is free software; you can redistribute it and/or modify it
   218.1 --- a/src/share/vm/c1/c1_InstructionPrinter.hpp	Thu Jan 16 14:25:51 2014 +0100
   218.2 +++ b/src/share/vm/c1/c1_InstructionPrinter.hpp	Wed Jan 22 17:42:23 2014 -0800
   218.3 @@ -1,5 +1,5 @@
   218.4  /*
   218.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   218.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   218.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   218.8   *
   218.9   * This code is free software; you can redistribute it and/or modify it
   219.1 --- a/src/share/vm/c1/c1_LIRAssembler.cpp	Thu Jan 16 14:25:51 2014 +0100
   219.2 +++ b/src/share/vm/c1/c1_LIRAssembler.cpp	Wed Jan 22 17:42:23 2014 -0800
   219.3 @@ -1,5 +1,5 @@
   219.4  /*
   219.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   219.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   219.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   219.8   *
   219.9   * This code is free software; you can redistribute it and/or modify it
  219.10 @@ -858,9 +858,7 @@
  219.11  
  219.12  void LIR_Assembler::verify_oop_map(CodeEmitInfo* info) {
  219.13  #ifndef PRODUCT
  219.14 -  if (VerifyOopMaps || VerifyOops) {
  219.15 -    bool v = VerifyOops;
  219.16 -    VerifyOops = true;
  219.17 +  if (VerifyOops) {
  219.18      OopMapStream s(info->oop_map());
  219.19      while (!s.is_done()) {
  219.20        OopMapValue v = s.current();
  219.21 @@ -883,7 +881,6 @@
  219.22  
  219.23        s.next();
  219.24      }
  219.25 -    VerifyOops = v;
  219.26    }
  219.27  #endif
  219.28  }
   220.1 --- a/src/share/vm/c1/c1_LIRGenerator.cpp	Thu Jan 16 14:25:51 2014 +0100
   220.2 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp	Wed Jan 22 17:42:23 2014 -0800
   220.3 @@ -3288,7 +3288,10 @@
   220.4    ciSignature* signature_at_call = NULL;
   220.5    x->method()->get_method_at_bci(bci, ignored_will_link, &signature_at_call);
   220.6  
   220.7 -  ciKlass* exact = profile_type(md, 0, md->byte_offset_of_slot(data, ret->type_offset()),
   220.8 +  // The offset within the MDO of the entry to update may be too large
   220.9 +  // to be used in load/store instructions on some platforms. So have
  220.10 +  // profile_type() compute the address of the profile in a register.
  220.11 +  ciKlass* exact = profile_type(md, md->byte_offset_of_slot(data, ret->type_offset()), 0,
  220.12                                  ret->type(), x->ret(), mdp,
  220.13                                  !x->needs_null_check(),
  220.14                                  signature_at_call->return_type()->as_klass(),
   221.1 --- a/src/share/vm/c1/c1_LinearScan.cpp	Thu Jan 16 14:25:51 2014 +0100
   221.2 +++ b/src/share/vm/c1/c1_LinearScan.cpp	Wed Jan 22 17:42:23 2014 -0800
   221.3 @@ -1,5 +1,5 @@
   221.4  /*
   221.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   221.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   221.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   221.8   *
   221.9   * This code is free software; you can redistribute it and/or modify it
   222.1 --- a/src/share/vm/c1/c1_Optimizer.cpp	Thu Jan 16 14:25:51 2014 +0100
   222.2 +++ b/src/share/vm/c1/c1_Optimizer.cpp	Wed Jan 22 17:42:23 2014 -0800
   222.3 @@ -1,5 +1,5 @@
   222.4  /*
   222.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   222.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   222.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   222.8   *
   222.9   * This code is free software; you can redistribute it and/or modify it
   223.1 --- a/src/share/vm/c1/c1_RangeCheckElimination.cpp	Thu Jan 16 14:25:51 2014 +0100
   223.2 +++ b/src/share/vm/c1/c1_RangeCheckElimination.cpp	Wed Jan 22 17:42:23 2014 -0800
   223.3 @@ -1,5 +1,5 @@
   223.4  /*
   223.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   223.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   223.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   223.8   *
   223.9   * This code is free software; you can redistribute it and/or modify it
   224.1 --- a/src/share/vm/c1/c1_RangeCheckElimination.hpp	Thu Jan 16 14:25:51 2014 +0100
   224.2 +++ b/src/share/vm/c1/c1_RangeCheckElimination.hpp	Wed Jan 22 17:42:23 2014 -0800
   224.3 @@ -1,5 +1,5 @@
   224.4  /*
   224.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   224.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   224.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   224.8   *
   224.9   * This code is free software; you can redistribute it and/or modify it
   225.1 --- a/src/share/vm/c1/c1_Runtime1.hpp	Thu Jan 16 14:25:51 2014 +0100
   225.2 +++ b/src/share/vm/c1/c1_Runtime1.hpp	Wed Jan 22 17:42:23 2014 -0800
   225.3 @@ -1,5 +1,5 @@
   225.4  /*
   225.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   225.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   225.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   225.8   *
   225.9   * This code is free software; you can redistribute it and/or modify it
   226.1 --- a/src/share/vm/c1/c1_ValueMap.cpp	Thu Jan 16 14:25:51 2014 +0100
   226.2 +++ b/src/share/vm/c1/c1_ValueMap.cpp	Wed Jan 22 17:42:23 2014 -0800
   226.3 @@ -1,5 +1,5 @@
   226.4  /*
   226.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   226.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   226.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   226.8   *
   226.9   * This code is free software; you can redistribute it and/or modify it
   227.1 --- a/src/share/vm/c1/c1_ValueMap.hpp	Thu Jan 16 14:25:51 2014 +0100
   227.2 +++ b/src/share/vm/c1/c1_ValueMap.hpp	Wed Jan 22 17:42:23 2014 -0800
   227.3 @@ -1,5 +1,5 @@
   227.4  /*
   227.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   227.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   227.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   227.8   *
   227.9   * This code is free software; you can redistribute it and/or modify it
   228.1 --- a/src/share/vm/c1/c1_globals.cpp	Thu Jan 16 14:25:51 2014 +0100
   228.2 +++ b/src/share/vm/c1/c1_globals.cpp	Wed Jan 22 17:42:23 2014 -0800
   228.3 @@ -1,5 +1,5 @@
   228.4  /*
   228.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
   228.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   228.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   228.8   *
   228.9   * This code is free software; you can redistribute it and/or modify it
   229.1 --- a/src/share/vm/c1/c1_globals.hpp	Thu Jan 16 14:25:51 2014 +0100
   229.2 +++ b/src/share/vm/c1/c1_globals.hpp	Wed Jan 22 17:42:23 2014 -0800
   229.3 @@ -1,5 +1,5 @@
   229.4  /*
   229.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   229.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   229.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   229.8   *
   229.9   * This code is free software; you can redistribute it and/or modify it
  229.10 @@ -272,9 +272,6 @@
  229.11    develop(bool, PrintNotLoaded, false,                                      \
  229.12            "Prints where classes are not loaded during code generation")     \
  229.13                                                                              \
  229.14 -  notproduct(bool, VerifyOopMaps, false,                                    \
  229.15 -          "Adds oopmap verification code to the generated code")            \
  229.16 -                                                                            \
  229.17    develop(bool, PrintLIR, false,                                            \
  229.18            "print low-level IR")                                             \
  229.19                                                                              \
   230.1 --- a/src/share/vm/ci/bcEscapeAnalyzer.cpp	Thu Jan 16 14:25:51 2014 +0100
   230.2 +++ b/src/share/vm/ci/bcEscapeAnalyzer.cpp	Wed Jan 22 17:42:23 2014 -0800
   230.3 @@ -1,5 +1,5 @@
   230.4  /*
   230.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   230.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   230.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   230.8   *
   230.9   * This code is free software; you can redistribute it and/or modify it
   231.1 --- a/src/share/vm/ci/bcEscapeAnalyzer.hpp	Thu Jan 16 14:25:51 2014 +0100
   231.2 +++ b/src/share/vm/ci/bcEscapeAnalyzer.hpp	Wed Jan 22 17:42:23 2014 -0800
   231.3 @@ -1,5 +1,5 @@
   231.4  /*
   231.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   231.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   231.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   231.8   *
   231.9   * This code is free software; you can redistribute it and/or modify it
   232.1 --- a/src/share/vm/ci/ciArray.cpp	Thu Jan 16 14:25:51 2014 +0100
   232.2 +++ b/src/share/vm/ci/ciArray.cpp	Wed Jan 22 17:42:23 2014 -0800
   232.3 @@ -1,5 +1,5 @@
   232.4  /*
   232.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   232.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   232.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   232.8   *
   232.9   * This code is free software; you can redistribute it and/or modify it
   233.1 --- a/src/share/vm/ci/ciArray.hpp	Thu Jan 16 14:25:51 2014 +0100
   233.2 +++ b/src/share/vm/ci/ciArray.hpp	Wed Jan 22 17:42:23 2014 -0800
   233.3 @@ -1,5 +1,5 @@
   233.4  /*
   233.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   233.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   233.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   233.8   *
   233.9   * This code is free software; you can redistribute it and/or modify it
   234.1 --- a/src/share/vm/ci/ciClassList.hpp	Thu Jan 16 14:25:51 2014 +0100
   234.2 +++ b/src/share/vm/ci/ciClassList.hpp	Wed Jan 22 17:42:23 2014 -0800
   234.3 @@ -1,5 +1,5 @@
   234.4  /*
   234.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   234.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   234.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   234.8   *
   234.9   * This code is free software; you can redistribute it and/or modify it
   235.1 --- a/src/share/vm/ci/ciConstant.hpp	Thu Jan 16 14:25:51 2014 +0100
   235.2 +++ b/src/share/vm/ci/ciConstant.hpp	Wed Jan 22 17:42:23 2014 -0800
   235.3 @@ -1,5 +1,5 @@
   235.4  /*
   235.5 - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
   235.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   235.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   235.8   *
   235.9   * This code is free software; you can redistribute it and/or modify it
   236.1 --- a/src/share/vm/ci/ciEnv.cpp	Thu Jan 16 14:25:51 2014 +0100
   236.2 +++ b/src/share/vm/ci/ciEnv.cpp	Wed Jan 22 17:42:23 2014 -0800
   236.3 @@ -1147,6 +1147,33 @@
   236.4  
   236.5  // Don't change thread state and acquire any locks.
   236.6  // Safe to call from VM error reporter.
   236.7 +
   236.8 +void ciEnv::dump_compile_data(outputStream* out) {
   236.9 +  CompileTask* task = this->task();
  236.10 +  Method* method = task->method();
  236.11 +  int entry_bci = task->osr_bci();
  236.12 +  int comp_level = task->comp_level();
  236.13 +  out->print("compile %s %s %s %d %d",
  236.14 +                method->klass_name()->as_quoted_ascii(),
  236.15 +                method->name()->as_quoted_ascii(),
  236.16 +                method->signature()->as_quoted_ascii(),
  236.17 +                entry_bci, comp_level);
  236.18 +  if (compiler_data() != NULL) {
  236.19 +    if (is_c2_compile(comp_level)) { // C2 or Shark
  236.20 +#ifdef COMPILER2
  236.21 +      // Dump C2 inlining data.
  236.22 +      ((Compile*)compiler_data())->dump_inline_data(out);
  236.23 +#endif
  236.24 +    } else if (is_c1_compile(comp_level)) { // C1
  236.25 +#ifdef COMPILER1
  236.26 +      // Dump C1 inlining data.
  236.27 +      ((Compilation*)compiler_data())->dump_inline_data(out);
  236.28 +#endif
  236.29 +    }
  236.30 +  }
  236.31 +  out->cr();
  236.32 +}
  236.33 +
  236.34  void ciEnv::dump_replay_data_unsafe(outputStream* out) {
  236.35    ResourceMark rm;
  236.36  #if INCLUDE_JVMTI
  236.37 @@ -1160,16 +1187,7 @@
  236.38    for (int i = 0; i < objects->length(); i++) {
  236.39      objects->at(i)->dump_replay_data(out);
  236.40    }
  236.41 -  CompileTask* task = this->task();
  236.42 -  Method* method = task->method();
  236.43 -  int entry_bci = task->osr_bci();
  236.44 -  int comp_level = task->comp_level();
  236.45 -  // Klass holder = method->method_holder();
  236.46 -  out->print_cr("compile %s %s %s %d %d",
  236.47 -                method->klass_name()->as_quoted_ascii(),
  236.48 -                method->name()->as_quoted_ascii(),
  236.49 -                method->signature()->as_quoted_ascii(),
  236.50 -                entry_bci, comp_level);
  236.51 +  dump_compile_data(out);
  236.52    out->flush();
  236.53  }
  236.54  
  236.55 @@ -1179,3 +1197,45 @@
  236.56      dump_replay_data_unsafe(out);
  236.57    )
  236.58  }
  236.59 +
  236.60 +void ciEnv::dump_replay_data(int compile_id) {
  236.61 +  static char buffer[O_BUFLEN];
  236.62 +  int ret = jio_snprintf(buffer, O_BUFLEN, "replay_pid%p_compid%d.log", os::current_process_id(), compile_id);
  236.63 +  if (ret > 0) {
  236.64 +    int fd = open(buffer, O_RDWR | O_CREAT | O_TRUNC, 0666);
  236.65 +    if (fd != -1) {
  236.66 +      FILE* replay_data_file = os::open(fd, "w");
  236.67 +      if (replay_data_file != NULL) {
  236.68 +        fileStream replay_data_stream(replay_data_file, /*need_close=*/true);
  236.69 +        dump_replay_data(&replay_data_stream);
  236.70 +        tty->print("# Compiler replay data is saved as: ");
  236.71 +        tty->print_cr(buffer);
  236.72 +      } else {
  236.73 +        tty->print_cr("# Can't open file to dump replay data.");
  236.74 +      }
  236.75 +    }
  236.76 +  }
  236.77 +}
  236.78 +
  236.79 +void ciEnv::dump_inline_data(int compile_id) {
  236.80 +  static char buffer[O_BUFLEN];
  236.81 +  int ret = jio_snprintf(buffer, O_BUFLEN, "inline_pid%p_compid%d.log", os::current_process_id(), compile_id);
  236.82 +  if (ret > 0) {
  236.83 +    int fd = open(buffer, O_RDWR | O_CREAT | O_TRUNC, 0666);
  236.84 +    if (fd != -1) {
  236.85 +      FILE* inline_data_file = os::open(fd, "w");
  236.86 +      if (inline_data_file != NULL) {
  236.87 +        fileStream replay_data_stream(inline_data_file, /*need_close=*/true);
  236.88 +        GUARDED_VM_ENTRY(
  236.89 +          MutexLocker ml(Compile_lock);
  236.90 +          dump_compile_data(&replay_data_stream);
  236.91 +        )
  236.92 +        replay_data_stream.flush();
  236.93 +        tty->print("# Compiler inline data is saved as: ");
  236.94 +        tty->print_cr(buffer);
  236.95 +      } else {
  236.96 +        tty->print_cr("# Can't open file to dump inline data.");
  236.97 +      }
  236.98 +    }
  236.99 +  }
 236.100 +}
   237.1 --- a/src/share/vm/ci/ciEnv.hpp	Thu Jan 16 14:25:51 2014 +0100
   237.2 +++ b/src/share/vm/ci/ciEnv.hpp	Wed Jan 22 17:42:23 2014 -0800
   237.3 @@ -1,5 +1,5 @@
   237.4  /*
   237.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   237.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   237.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   237.8   *
   237.9   * This code is free software; you can redistribute it and/or modify it
  237.10 @@ -451,8 +451,11 @@
  237.11    void metadata_do(void f(Metadata*)) { _factory->metadata_do(f); }
  237.12  
  237.13    // Dump the compilation replay data for the ciEnv to the stream.
  237.14 +  void dump_replay_data(int compile_id);
  237.15 +  void dump_inline_data(int compile_id);
  237.16    void dump_replay_data(outputStream* out);
  237.17    void dump_replay_data_unsafe(outputStream* out);
  237.18 +  void dump_compile_data(outputStream* out);
  237.19  };
  237.20  
  237.21  #endif // SHARE_VM_CI_CIENV_HPP
   238.1 --- a/src/share/vm/ci/ciFlags.hpp	Thu Jan 16 14:25:51 2014 +0100
   238.2 +++ b/src/share/vm/ci/ciFlags.hpp	Wed Jan 22 17:42:23 2014 -0800
   238.3 @@ -1,5 +1,5 @@
   238.4  /*
   238.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   238.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   238.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   238.8   *
   238.9   * This code is free software; you can redistribute it and/or modify it
   239.1 --- a/src/share/vm/ci/ciInstance.cpp	Thu Jan 16 14:25:51 2014 +0100
   239.2 +++ b/src/share/vm/ci/ciInstance.cpp	Wed Jan 22 17:42:23 2014 -0800
   239.3 @@ -1,5 +1,5 @@
   239.4  /*
   239.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   239.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   239.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   239.8   *
   239.9   * This code is free software; you can redistribute it and/or modify it
   240.1 --- a/src/share/vm/ci/ciInstanceKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   240.2 +++ b/src/share/vm/ci/ciInstanceKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   240.3 @@ -1,5 +1,5 @@
   240.4  /*
   240.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   240.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   240.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   240.8   *
   240.9   * This code is free software; you can redistribute it and/or modify it
   241.1 --- a/src/share/vm/ci/ciKlass.cpp	Thu Jan 16 14:25:51 2014 +0100
   241.2 +++ b/src/share/vm/ci/ciKlass.cpp	Wed Jan 22 17:42:23 2014 -0800
   241.3 @@ -1,5 +1,5 @@
   241.4  /*
   241.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   241.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   241.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   241.8   *
   241.9   * This code is free software; you can redistribute it and/or modify it
   242.1 --- a/src/share/vm/ci/ciKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   242.2 +++ b/src/share/vm/ci/ciKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   242.3 @@ -1,5 +1,5 @@
   242.4  /*
   242.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   242.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   242.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   242.8   *
   242.9   * This code is free software; you can redistribute it and/or modify it
   243.1 --- a/src/share/vm/ci/ciMethod.cpp	Thu Jan 16 14:25:51 2014 +0100
   243.2 +++ b/src/share/vm/ci/ciMethod.cpp	Wed Jan 22 17:42:23 2014 -0800
   243.3 @@ -1357,15 +1357,21 @@
   243.4  
   243.5  #undef FETCH_FLAG_FROM_VM
   243.6  
   243.7 +void ciMethod::dump_name_as_ascii(outputStream* st) {
   243.8 +  Method* method = get_Method();
   243.9 +  st->print("%s %s %s",
  243.10 +            method->klass_name()->as_quoted_ascii(),
  243.11 +            method->name()->as_quoted_ascii(),
  243.12 +            method->signature()->as_quoted_ascii());
  243.13 +}
  243.14 +
  243.15  void ciMethod::dump_replay_data(outputStream* st) {
  243.16    ResourceMark rm;
  243.17    Method* method = get_Method();
  243.18    MethodCounters* mcs = method->method_counters();
  243.19 -  Klass*  holder = method->method_holder();
  243.20 -  st->print_cr("ciMethod %s %s %s %d %d %d %d %d",
  243.21 -               holder->name()->as_quoted_ascii(),
  243.22 -               method->name()->as_quoted_ascii(),
  243.23 -               method->signature()->as_quoted_ascii(),
  243.24 +  st->print("ciMethod ");
  243.25 +  dump_name_as_ascii(st);
  243.26 +  st->print_cr(" %d %d %d %d %d",
  243.27                 mcs == NULL ? 0 : mcs->invocation_counter()->raw_counter(),
  243.28                 mcs == NULL ? 0 : mcs->backedge_counter()->raw_counter(),
  243.29                 interpreter_invocation_count(),
   244.1 --- a/src/share/vm/ci/ciMethod.hpp	Thu Jan 16 14:25:51 2014 +0100
   244.2 +++ b/src/share/vm/ci/ciMethod.hpp	Wed Jan 22 17:42:23 2014 -0800
   244.3 @@ -310,10 +310,13 @@
   244.4    bool is_accessor    () const;
   244.5    bool is_initializer () const;
   244.6    bool can_be_statically_bound() const           { return _can_be_statically_bound; }
   244.7 -  void dump_replay_data(outputStream* st);
   244.8    bool is_boxing_method() const;
   244.9    bool is_unboxing_method() const;
  244.10  
  244.11 +  // Replay data methods
  244.12 +  void dump_name_as_ascii(outputStream* st);
  244.13 +  void dump_replay_data(outputStream* st);
  244.14 +
  244.15    // Print the bytecodes of this method.
  244.16    void print_codes_on(outputStream* st);
  244.17    void print_codes() {
   245.1 --- a/src/share/vm/ci/ciMethodData.cpp	Thu Jan 16 14:25:51 2014 +0100
   245.2 +++ b/src/share/vm/ci/ciMethodData.cpp	Wed Jan 22 17:42:23 2014 -0800
   245.3 @@ -1,5 +1,5 @@
   245.4  /*
   245.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   245.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   245.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   245.8   *
   245.9   * This code is free software; you can redistribute it and/or modify it
   246.1 --- a/src/share/vm/ci/ciMethodData.hpp	Thu Jan 16 14:25:51 2014 +0100
   246.2 +++ b/src/share/vm/ci/ciMethodData.hpp	Wed Jan 22 17:42:23 2014 -0800
   246.3 @@ -1,5 +1,5 @@
   246.4  /*
   246.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   246.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   246.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   246.8   *
   246.9   * This code is free software; you can redistribute it and/or modify it
   247.1 --- a/src/share/vm/ci/ciObjArrayKlass.cpp	Thu Jan 16 14:25:51 2014 +0100
   247.2 +++ b/src/share/vm/ci/ciObjArrayKlass.cpp	Wed Jan 22 17:42:23 2014 -0800
   247.3 @@ -1,5 +1,5 @@
   247.4  /*
   247.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   247.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   247.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   247.8   *
   247.9   * This code is free software; you can redistribute it and/or modify it
   248.1 --- a/src/share/vm/ci/ciObjArrayKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   248.2 +++ b/src/share/vm/ci/ciObjArrayKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   248.3 @@ -1,5 +1,5 @@
   248.4  /*
   248.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   248.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   248.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   248.8   *
   248.9   * This code is free software; you can redistribute it and/or modify it
   249.1 --- a/src/share/vm/ci/ciObjectFactory.cpp	Thu Jan 16 14:25:51 2014 +0100
   249.2 +++ b/src/share/vm/ci/ciObjectFactory.cpp	Wed Jan 22 17:42:23 2014 -0800
   249.3 @@ -1,5 +1,5 @@
   249.4  /*
   249.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   249.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   249.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   249.8   *
   249.9   * This code is free software; you can redistribute it and/or modify it
   250.1 --- a/src/share/vm/ci/ciObjectFactory.hpp	Thu Jan 16 14:25:51 2014 +0100
   250.2 +++ b/src/share/vm/ci/ciObjectFactory.hpp	Wed Jan 22 17:42:23 2014 -0800
   250.3 @@ -1,5 +1,5 @@
   250.4  /*
   250.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   250.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   250.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   250.8   *
   250.9   * This code is free software; you can redistribute it and/or modify it
   251.1 --- a/src/share/vm/ci/ciReplay.cpp	Thu Jan 16 14:25:51 2014 +0100
   251.2 +++ b/src/share/vm/ci/ciReplay.cpp	Wed Jan 22 17:42:23 2014 -0800
   251.3 @@ -24,6 +24,8 @@
   251.4  #include "precompiled.hpp"
   251.5  #include "ci/ciMethodData.hpp"
   251.6  #include "ci/ciReplay.hpp"
   251.7 +#include "ci/ciSymbol.hpp"
   251.8 +#include "ci/ciKlass.hpp"
   251.9  #include "ci/ciUtilities.hpp"
  251.10  #include "compiler/compileBroker.hpp"
  251.11  #include "memory/allocation.inline.hpp"
  251.12 @@ -37,74 +39,107 @@
  251.13  // ciReplay
  251.14  
  251.15  typedef struct _ciMethodDataRecord {
  251.16 -  const char* klass;
  251.17 -  const char* method;
  251.18 -  const char* signature;
  251.19 -  int state;
  251.20 -  int current_mileage;
  251.21 -  intptr_t* data;
  251.22 -  int data_length;
  251.23 -  char* orig_data;
  251.24 -  int orig_data_length;
  251.25 -  int oops_length;
  251.26 -  jobject* oops_handles;
  251.27 -  int* oops_offsets;
  251.28 +  const char* _klass_name;
  251.29 +  const char* _method_name;
  251.30 +  const char* _signature;
  251.31 +
  251.32 +  int _state;
  251.33 +  int _current_mileage;
  251.34 +
  251.35 +  intptr_t* _data;
  251.36 +  char*     _orig_data;
  251.37 +  jobject*  _oops_handles;
  251.38 +  int*      _oops_offsets;
  251.39 +  int       _data_length;
  251.40 +  int       _orig_data_length;
  251.41 +  int       _oops_length;
  251.42  } ciMethodDataRecord;
  251.43  
  251.44  typedef struct _ciMethodRecord {
  251.45 -  const char* klass;
  251.46 -  const char* method;
  251.47 -  const char* signature;
  251.48 -  int instructions_size;
  251.49 -  int interpreter_invocation_count;
  251.50 -  int interpreter_throwout_count;
  251.51 -  int invocation_counter;
  251.52 -  int backedge_counter;
  251.53 +  const char* _klass_name;
  251.54 +  const char* _method_name;
  251.55 +  const char* _signature;
  251.56 +
  251.57 +  int _instructions_size;
  251.58 +  int _interpreter_invocation_count;
  251.59 +  int _interpreter_throwout_count;
  251.60 +  int _invocation_counter;
  251.61 +  int _backedge_counter;
  251.62  } ciMethodRecord;
  251.63  
  251.64 -class CompileReplay;
  251.65 +typedef struct _ciInlineRecord {
  251.66 +  const char* _klass_name;
  251.67 +  const char* _method_name;
  251.68 +  const char* _signature;
  251.69 +
  251.70 +  int _inline_depth;
  251.71 +  int _inline_bci;
  251.72 +} ciInlineRecord;
  251.73 +
  251.74 +class  CompileReplay;
  251.75  static CompileReplay* replay_state;
  251.76  
  251.77  class CompileReplay : public StackObj {
  251.78   private:
  251.79 -  FILE*   stream;
  251.80 -  Thread* thread;
  251.81 -  Handle  protection_domain;
  251.82 -  Handle  loader;
  251.83 +  FILE*   _stream;
  251.84 +  Thread* _thread;
  251.85 +  Handle  _protection_domain;
  251.86 +  Handle  _loader;
  251.87  
  251.88 -  GrowableArray<ciMethodRecord*>     ci_method_records;
  251.89 -  GrowableArray<ciMethodDataRecord*> ci_method_data_records;
  251.90 +  GrowableArray<ciMethodRecord*>     _ci_method_records;
  251.91 +  GrowableArray<ciMethodDataRecord*> _ci_method_data_records;
  251.92 +
  251.93 +  // Use pointer because we may need to return inline records
  251.94 +  // without destroying them.
  251.95 +  GrowableArray<ciInlineRecord*>*    _ci_inline_records;
  251.96  
  251.97    const char* _error_message;
  251.98  
  251.99 -  char* bufptr;
 251.100 -  char* buffer;
 251.101 -  int   buffer_length;
 251.102 -  int   buffer_end;
 251.103 -  int   line_no;
 251.104 +  char* _bufptr;
 251.105 +  char* _buffer;
 251.106 +  int   _buffer_length;
 251.107 +  int   _buffer_pos;
 251.108 +
 251.109 +  // "compile" data
 251.110 +  ciKlass* _iklass;
 251.111 +  Method*  _imethod;
 251.112 +  int      _entry_bci;
 251.113 +  int      _comp_level;
 251.114  
 251.115   public:
 251.116    CompileReplay(const char* filename, TRAPS) {
 251.117 -    thread = THREAD;
 251.118 -    loader = Handle(thread, SystemDictionary::java_system_loader());
 251.119 -    stream = fopen(filename, "rt");
 251.120 -    if (stream == NULL) {
 251.121 +    _thread = THREAD;
 251.122 +    _loader = Handle(_thread, SystemDictionary::java_system_loader());
 251.123 +    _protection_domain = Handle();
 251.124 +
 251.125 +    _stream = fopen(filename, "rt");
 251.126 +    if (_stream == NULL) {
 251.127        fprintf(stderr, "ERROR: Can't open replay file %s\n", filename);
 251.128      }
 251.129 -    buffer_length = 32;
 251.130 -    buffer = NEW_RESOURCE_ARRAY(char, buffer_length);
 251.131 +
 251.132 +    _ci_inline_records = NULL;
 251.133      _error_message = NULL;
 251.134  
 251.135 +    _buffer_length = 32;
 251.136 +    _buffer = NEW_RESOURCE_ARRAY(char, _buffer_length);
 251.137 +    _bufptr = _buffer;
 251.138 +    _buffer_pos = 0;
 251.139 +
 251.140 +    _imethod = NULL;
 251.141 +    _iklass  = NULL;
 251.142 +    _entry_bci  = 0;
 251.143 +    _comp_level = 0;
 251.144 +
 251.145      test();
 251.146    }
 251.147  
 251.148    ~CompileReplay() {
 251.149 -    if (stream != NULL) fclose(stream);
 251.150 +    if (_stream != NULL) fclose(_stream);
 251.151    }
 251.152  
 251.153    void test() {
 251.154 -    strcpy(buffer, "1 2 foo 4 bar 0x9 \"this is it\"");
 251.155 -    bufptr = buffer;
 251.156 +    strcpy(_buffer, "1 2 foo 4 bar 0x9 \"this is it\"");
 251.157 +    _bufptr = _buffer;
 251.158      assert(parse_int("test") == 1, "what");
 251.159      assert(parse_int("test") == 2, "what");
 251.160      assert(strcmp(parse_string(), "foo") == 0, "what");
 251.161 @@ -115,18 +150,18 @@
 251.162    }
 251.163  
 251.164    bool had_error() {
 251.165 -    return _error_message != NULL || thread->has_pending_exception();
 251.166 +    return _error_message != NULL || _thread->has_pending_exception();
 251.167    }
 251.168  
 251.169    bool can_replay() {
 251.170 -    return !(stream == NULL || had_error());
 251.171 +    return !(_stream == NULL || had_error());
 251.172    }
 251.173  
 251.174    void report_error(const char* msg) {
 251.175      _error_message = msg;
 251.176 -    // Restore the buffer contents for error reporting
 251.177 -    for (int i = 0; i < buffer_end; i++) {
 251.178 -      if (buffer[i] == '\0') buffer[i] = ' ';
 251.179 +    // Restore the _buffer contents for error reporting
 251.180 +    for (int i = 0; i < _buffer_pos; i++) {
 251.181 +      if (_buffer[i] == '\0') _buffer[i] = ' ';
 251.182      }
 251.183    }
 251.184  
 251.185 @@ -137,10 +172,10 @@
 251.186  
 251.187      int v = 0;
 251.188      int read;
 251.189 -    if (sscanf(bufptr, "%i%n", &v, &read) != 1) {
 251.190 +    if (sscanf(_bufptr, "%i%n", &v, &read) != 1) {
 251.191        report_error(label);
 251.192      } else {
 251.193 -      bufptr += read;
 251.194 +      _bufptr += read;
 251.195      }
 251.196      return v;
 251.197    }
 251.198 @@ -152,31 +187,31 @@
 251.199  
 251.200      intptr_t v = 0;
 251.201      int read;
 251.202 -    if (sscanf(bufptr, INTPTR_FORMAT "%n", &v, &read) != 1) {
 251.203 +    if (sscanf(_bufptr, INTPTR_FORMAT "%n", &v, &read) != 1) {
 251.204        report_error(label);
 251.205      } else {
 251.206 -      bufptr += read;
 251.207 +      _bufptr += read;
 251.208      }
 251.209      return v;
 251.210    }
 251.211  
 251.212    void skip_ws() {
 251.213      // Skip any leading whitespace
 251.214 -    while (*bufptr == ' ' || *bufptr == '\t') {
 251.215 -      bufptr++;
 251.216 +    while (*_bufptr == ' ' || *_bufptr == '\t') {
 251.217 +      _bufptr++;
 251.218      }
 251.219    }
 251.220  
 251.221  
 251.222    char* scan_and_terminate(char delim) {
 251.223 -    char* str = bufptr;
 251.224 -    while (*bufptr != delim && *bufptr != '\0') {
 251.225 -      bufptr++;
 251.226 +    char* str = _bufptr;
 251.227 +    while (*_bufptr != delim && *_bufptr != '\0') {
 251.228 +      _bufptr++;
 251.229      }
 251.230 -    if (*bufptr != '\0') {
 251.231 -      *bufptr++ = '\0';
 251.232 +    if (*_bufptr != '\0') {
 251.233 +      *_bufptr++ = '\0';
 251.234      }
 251.235 -    if (bufptr == str) {
 251.236 +    if (_bufptr == str) {
 251.237        // nothing here
 251.238        return NULL;
 251.239      }
 251.240 @@ -195,8 +230,8 @@
 251.241  
 251.242      skip_ws();
 251.243  
 251.244 -    if (*bufptr == '"') {
 251.245 -      bufptr++;
 251.246 +    if (*_bufptr == '"') {
 251.247 +      _bufptr++;
 251.248        return scan_and_terminate('"');
 251.249      } else {
 251.250        return scan_and_terminate(' ');
 251.251 @@ -273,7 +308,12 @@
 251.252      const char* str = parse_escaped_string();
 251.253      Symbol* klass_name = SymbolTable::lookup(str, (int)strlen(str), CHECK_NULL);
 251.254      if (klass_name != NULL) {
 251.255 -      Klass* k = SystemDictionary::resolve_or_fail(klass_name, loader, protection_domain, true, THREAD);
 251.256 +      Klass* k = NULL;
 251.257 +      if (_iklass != NULL) {
 251.258 +        k = (Klass*)_iklass->find_klass(ciSymbol::make(klass_name->as_C_string()))->constant_encoding();
 251.259 +      } else {
 251.260 +        k = SystemDictionary::resolve_or_fail(klass_name, _loader, _protection_domain, true, THREAD);
 251.261 +      }
 251.262        if (HAS_PENDING_EXCEPTION) {
 251.263          oop throwable = PENDING_EXCEPTION;
 251.264          java_lang_Throwable::print(throwable, tty);
 251.265 @@ -289,7 +329,7 @@
 251.266    // Lookup a klass
 251.267    Klass* resolve_klass(const char* klass, TRAPS) {
 251.268      Symbol* klass_name = SymbolTable::lookup(klass, (int)strlen(klass), CHECK_NULL);
 251.269 -    return SystemDictionary::resolve_or_fail(klass_name, loader, protection_domain, true, CHECK_NULL);
 251.270 +    return SystemDictionary::resolve_or_fail(klass_name, _loader, _protection_domain, true, CHECK_NULL);
 251.271    }
 251.272  
 251.273    // Parse the standard tuple of <klass> <name> <signature>
 251.274 @@ -304,40 +344,45 @@
 251.275      return m;
 251.276    }
 251.277  
 251.278 +  int get_line(int c) {
 251.279 +    while(c != EOF) {
 251.280 +      if (_buffer_pos + 1 >= _buffer_length) {
 251.281 +        int new_length = _buffer_length * 2;
 251.282 +        // Next call will throw error in case of OOM.
 251.283 +        _buffer = REALLOC_RESOURCE_ARRAY(char, _buffer, _buffer_length, new_length);
 251.284 +        _buffer_length = new_length;
 251.285 +      }
 251.286 +      if (c == '\n') {
 251.287 +        c = getc(_stream); // get next char
 251.288 +        break;
 251.289 +      } else if (c == '\r') {
 251.290 +        // skip LF
 251.291 +      } else {
 251.292 +        _buffer[_buffer_pos++] = c;
 251.293 +      }
 251.294 +      c = getc(_stream);
 251.295 +    }
 251.296 +    // null terminate it, reset the pointer
 251.297 +    _buffer[_buffer_pos] = '\0'; // NL or EOF
 251.298 +    _buffer_pos = 0;
 251.299 +    _bufptr = _buffer;
 251.300 +    return c;
 251.301 +  }
 251.302 +
 251.303    // Process each line of the replay file executing each command until
 251.304    // the file ends.
 251.305    void process(TRAPS) {
 251.306 -    line_no = 1;
 251.307 -    int pos = 0;
 251.308 -    int c = getc(stream);
 251.309 +    int line_no = 1;
 251.310 +    int c = getc(_stream);
 251.311      while(c != EOF) {
 251.312 -      if (pos + 1 >= buffer_length) {
 251.313 -        int newl = buffer_length * 2;
 251.314 -        char* newb = NEW_RESOURCE_ARRAY(char, newl);
 251.315 -        memcpy(newb, buffer, pos);
 251.316 -        buffer = newb;
 251.317 -        buffer_length = newl;
 251.318 +      c = get_line(c);
 251.319 +      process_command(CHECK);
 251.320 +      if (had_error()) {
 251.321 +        tty->print_cr("Error while parsing line %d: %s\n", line_no, _error_message);
 251.322 +        tty->print_cr("%s", _buffer);
 251.323 +        return;
 251.324        }
 251.325 -      if (c == '\n') {
 251.326 -        // null terminate it, reset the pointer and process the line
 251.327 -        buffer[pos] = '\0';
 251.328 -        buffer_end = pos++;
 251.329 -        bufptr = buffer;
 251.330 -        process_command(CHECK);
 251.331 -        if (had_error()) {
 251.332 -          tty->print_cr("Error while parsing line %d: %s\n", line_no, _error_message);
 251.333 -          tty->print_cr("%s", buffer);
 251.334 -          return;
 251.335 -        }
 251.336 -        pos = 0;
 251.337 -        buffer_end = 0;
 251.338 -        line_no++;
 251.339 -      } else if (c == '\r') {
 251.340 -        // skip LF
 251.341 -      } else {
 251.342 -        buffer[pos++] = c;
 251.343 -      }
 251.344 -      c = getc(stream);
 251.345 +      line_no++;
 251.346      }
 251.347    }
 251.348  
 251.349 @@ -396,7 +441,37 @@
 251.350      return true;
 251.351    }
 251.352  
 251.353 -  // compile <klass> <name> <signature> <entry_bci> <comp_level>
 251.354 +  // compile <klass> <name> <signature> <entry_bci> <comp_level> inline <count> <depth> <bci> <klass> <name> <signature> ...
 251.355 +  void* process_inline(ciMethod* imethod, Method* m, int entry_bci, int comp_level, TRAPS) {
 251.356 +    _imethod    = m;
 251.357 +    _iklass     = imethod->holder();
 251.358 +    _entry_bci  = entry_bci;
 251.359 +    _comp_level = comp_level;
 251.360 +    int line_no = 1;
 251.361 +    int c = getc(_stream);
 251.362 +    while(c != EOF) {
 251.363 +      c = get_line(c);
 251.364 +      // Expecting only lines with "compile" command in inline replay file.
 251.365 +      char* cmd = parse_string();
 251.366 +      if (cmd == NULL || strcmp("compile", cmd) != 0) {
 251.367 +        return NULL;
 251.368 +      }
 251.369 +      process_compile(CHECK_NULL);
 251.370 +      if (had_error()) {
 251.371 +        tty->print_cr("Error while parsing line %d: %s\n", line_no, _error_message);
 251.372 +        tty->print_cr("%s", _buffer);
 251.373 +        return NULL;
 251.374 +      }
 251.375 +      if (_ci_inline_records != NULL && _ci_inline_records->length() > 0) {
 251.376 +        // Found inlining record for the requested method.
 251.377 +        return _ci_inline_records;
 251.378 +      }
 251.379 +      line_no++;
 251.380 +    }
 251.381 +    return NULL;
 251.382 +  }
 251.383 +
 251.384 +  // compile <klass> <name> <signature> <entry_bci> <comp_level> inline <count> <depth> <bci> <klass> <name> <signature> ...
 251.385    void process_compile(TRAPS) {
 251.386      Method* method = parse_method(CHECK);
 251.387      if (had_error()) return;
 251.388 @@ -410,6 +485,43 @@
 251.389      if (!is_valid_comp_level(comp_level)) {
 251.390        return;
 251.391      }
 251.392 +    if (_imethod != NULL) {
 251.393 +      // Replay Inlining
 251.394 +      if (entry_bci != _entry_bci || comp_level != _comp_level) {
 251.395 +        return;
 251.396 +      }
 251.397 +      const char* iklass_name  = _imethod->method_holder()->name()->as_utf8();
 251.398 +      const char* imethod_name = _imethod->name()->as_utf8();
 251.399 +      const char* isignature   = _imethod->signature()->as_utf8();
 251.400 +      const char* klass_name   = method->method_holder()->name()->as_utf8();
 251.401 +      const char* method_name  = method->name()->as_utf8();
 251.402 +      const char* signature    = method->signature()->as_utf8();
 251.403 +      if (strcmp(iklass_name,  klass_name)  != 0 ||
 251.404 +          strcmp(imethod_name, method_name) != 0 ||
 251.405 +          strcmp(isignature,   signature)   != 0) {
 251.406 +        return;
 251.407 +      }
 251.408 +    }
 251.409 +    int inline_count = 0;
 251.410 +    if (parse_tag_and_count("inline", inline_count)) {
 251.411 +      // Record inlining data
 251.412 +      _ci_inline_records = new GrowableArray<ciInlineRecord*>();
 251.413 +      for (int i = 0; i < inline_count; i++) {
 251.414 +        int depth = parse_int("inline_depth");
 251.415 +        int bci = parse_int("inline_bci");
 251.416 +        if (had_error()) {
 251.417 +          break;
 251.418 +        }
 251.419 +        Method* inl_method = parse_method(CHECK);
 251.420 +        if (had_error()) {
 251.421 +          break;
 251.422 +        }
 251.423 +        new_ciInlineRecord(inl_method, bci, depth);
 251.424 +      }
 251.425 +    }
 251.426 +    if (_imethod != NULL) {
 251.427 +      return; // Replay Inlining
 251.428 +    }
 251.429      Klass* k = method->method_holder();
 251.430      ((InstanceKlass*)k)->initialize(THREAD);
 251.431      if (HAS_PENDING_EXCEPTION) {
 251.432 @@ -442,11 +554,11 @@
 251.433      Method* method = parse_method(CHECK);
 251.434      if (had_error()) return;
 251.435      ciMethodRecord* rec = new_ciMethod(method);
 251.436 -    rec->invocation_counter = parse_int("invocation_counter");
 251.437 -    rec->backedge_counter = parse_int("backedge_counter");
 251.438 -    rec->interpreter_invocation_count = parse_int("interpreter_invocation_count");
 251.439 -    rec->interpreter_throwout_count = parse_int("interpreter_throwout_count");
 251.440 -    rec->instructions_size = parse_int("instructions_size");
 251.441 +    rec->_invocation_counter = parse_int("invocation_counter");
 251.442 +    rec->_backedge_counter = parse_int("backedge_counter");
 251.443 +    rec->_interpreter_invocation_count = parse_int("interpreter_invocation_count");
 251.444 +    rec->_interpreter_throwout_count = parse_int("interpreter_throwout_count");
 251.445 +    rec->_instructions_size = parse_int("instructions_size");
 251.446    }
 251.447  
 251.448    // ciMethodData <klass> <name> <signature> <state> <current mileage> orig <length> # # ... data <length> # # ... oops <length>
 251.449 @@ -471,32 +583,32 @@
 251.450  
 251.451      // collect and record all the needed information for later
 251.452      ciMethodDataRecord* rec = new_ciMethodData(method);
 251.453 -    rec->state = parse_int("state");
 251.454 -    rec->current_mileage = parse_int("current_mileage");
 251.455 +    rec->_state = parse_int("state");
 251.456 +    rec->_current_mileage = parse_int("current_mileage");
 251.457  
 251.458 -    rec->orig_data = parse_data("orig", rec->orig_data_length);
 251.459 -    if (rec->orig_data == NULL) {
 251.460 +    rec->_orig_data = parse_data("orig", rec->_orig_data_length);
 251.461 +    if (rec->_orig_data == NULL) {
 251.462        return;
 251.463      }
 251.464 -    rec->data = parse_intptr_data("data", rec->data_length);
 251.465 -    if (rec->data == NULL) {
 251.466 +    rec->_data = parse_intptr_data("data", rec->_data_length);
 251.467 +    if (rec->_data == NULL) {
 251.468        return;
 251.469      }
 251.470 -    if (!parse_tag_and_count("oops", rec->oops_length)) {
 251.471 +    if (!parse_tag_and_count("oops", rec->_oops_length)) {
 251.472        return;
 251.473      }
 251.474 -    rec->oops_handles = NEW_RESOURCE_ARRAY(jobject, rec->oops_length);
 251.475 -    rec->oops_offsets = NEW_RESOURCE_ARRAY(int, rec->oops_length);
 251.476 -    for (int i = 0; i < rec->oops_length; i++) {
 251.477 +    rec->_oops_handles = NEW_RESOURCE_ARRAY(jobject, rec->_oops_length);
 251.478 +    rec->_oops_offsets = NEW_RESOURCE_ARRAY(int, rec->_oops_length);
 251.479 +    for (int i = 0; i < rec->_oops_length; i++) {
 251.480        int offset = parse_int("offset");
 251.481        if (had_error()) {
 251.482          return;
 251.483        }
 251.484        Klass* k = parse_klass(CHECK);
 251.485 -      rec->oops_offsets[i] = offset;
 251.486 +      rec->_oops_offsets[i] = offset;
 251.487        KlassHandle *kh = NEW_C_HEAP_OBJ(KlassHandle, mtCompiler);
 251.488        ::new ((void*)kh) KlassHandle(THREAD, k);
 251.489 -      rec->oops_handles[i] = (jobject)kh;
 251.490 +      rec->_oops_handles[i] = (jobject)kh;
 251.491      }
 251.492    }
 251.493  
 251.494 @@ -570,6 +682,9 @@
 251.495          case JVM_CONSTANT_Utf8:
 251.496          case JVM_CONSTANT_Integer:
 251.497          case JVM_CONSTANT_Float:
 251.498 +        case JVM_CONSTANT_MethodHandle:
 251.499 +        case JVM_CONSTANT_MethodType:
 251.500 +        case JVM_CONSTANT_InvokeDynamic:
 251.501            if (tag != cp->tag_at(i).value()) {
 251.502              report_error("tag mismatch: wrong class files?");
 251.503              return;
 251.504 @@ -729,10 +844,10 @@
 251.505    // Create and initialize a record for a ciMethod
 251.506    ciMethodRecord* new_ciMethod(Method* method) {
 251.507      ciMethodRecord* rec = NEW_RESOURCE_OBJ(ciMethodRecord);
 251.508 -    rec->klass =  method->method_holder()->name()->as_utf8();
 251.509 -    rec->method = method->name()->as_utf8();
 251.510 -    rec->signature = method->signature()->as_utf8();
 251.511 -    ci_method_records.append(rec);
 251.512 +    rec->_klass_name =  method->method_holder()->name()->as_utf8();
 251.513 +    rec->_method_name = method->name()->as_utf8();
 251.514 +    rec->_signature = method->signature()->as_utf8();
 251.515 +    _ci_method_records.append(rec);
 251.516      return rec;
 251.517    }
 251.518  
 251.519 @@ -741,11 +856,11 @@
 251.520      const char* klass_name =  method->method_holder()->name()->as_utf8();
 251.521      const char* method_name = method->name()->as_utf8();
 251.522      const char* signature = method->signature()->as_utf8();
 251.523 -    for (int i = 0; i < ci_method_records.length(); i++) {
 251.524 -      ciMethodRecord* rec = ci_method_records.at(i);
 251.525 -      if (strcmp(rec->klass, klass_name) == 0 &&
 251.526 -          strcmp(rec->method, method_name) == 0 &&
 251.527 -          strcmp(rec->signature, signature) == 0) {
 251.528 +    for (int i = 0; i < _ci_method_records.length(); i++) {
 251.529 +      ciMethodRecord* rec = _ci_method_records.at(i);
 251.530 +      if (strcmp(rec->_klass_name, klass_name) == 0 &&
 251.531 +          strcmp(rec->_method_name, method_name) == 0 &&
 251.532 +          strcmp(rec->_signature, signature) == 0) {
 251.533          return rec;
 251.534        }
 251.535      }
 251.536 @@ -755,10 +870,10 @@
 251.537    // Create and initialize a record for a ciMethodData
 251.538    ciMethodDataRecord* new_ciMethodData(Method* method) {
 251.539      ciMethodDataRecord* rec = NEW_RESOURCE_OBJ(ciMethodDataRecord);
 251.540 -    rec->klass =  method->method_holder()->name()->as_utf8();
 251.541 -    rec->method = method->name()->as_utf8();
 251.542 -    rec->signature = method->signature()->as_utf8();
 251.543 -    ci_method_data_records.append(rec);
 251.544 +    rec->_klass_name =  method->method_holder()->name()->as_utf8();
 251.545 +    rec->_method_name = method->name()->as_utf8();
 251.546 +    rec->_signature = method->signature()->as_utf8();
 251.547 +    _ci_method_data_records.append(rec);
 251.548      return rec;
 251.549    }
 251.550  
 251.551 @@ -767,25 +882,65 @@
 251.552      const char* klass_name =  method->method_holder()->name()->as_utf8();
 251.553      const char* method_name = method->name()->as_utf8();
 251.554      const char* signature = method->signature()->as_utf8();
 251.555 -    for (int i = 0; i < ci_method_data_records.length(); i++) {
 251.556 -      ciMethodDataRecord* rec = ci_method_data_records.at(i);
 251.557 -      if (strcmp(rec->klass, klass_name) == 0 &&
 251.558 -          strcmp(rec->method, method_name) == 0 &&
 251.559 -          strcmp(rec->signature, signature) == 0) {
 251.560 +    for (int i = 0; i < _ci_method_data_records.length(); i++) {
 251.561 +      ciMethodDataRecord* rec = _ci_method_data_records.at(i);
 251.562 +      if (strcmp(rec->_klass_name, klass_name) == 0 &&
 251.563 +          strcmp(rec->_method_name, method_name) == 0 &&
 251.564 +          strcmp(rec->_signature, signature) == 0) {
 251.565          return rec;
 251.566        }
 251.567      }
 251.568      return NULL;
 251.569    }
 251.570  
 251.571 +  // Create and initialize a record for a ciInlineRecord
 251.572 +  ciInlineRecord* new_ciInlineRecord(Method* method, int bci, int depth) {
 251.573 +    ciInlineRecord* rec = NEW_RESOURCE_OBJ(ciInlineRecord);
 251.574 +    rec->_klass_name =  method->method_holder()->name()->as_utf8();
 251.575 +    rec->_method_name = method->name()->as_utf8();
 251.576 +    rec->_signature = method->signature()->as_utf8();
 251.577 +    rec->_inline_bci = bci;
 251.578 +    rec->_inline_depth = depth;
 251.579 +    _ci_inline_records->append(rec);
 251.580 +    return rec;
 251.581 +  }
 251.582 +
 251.583 +  // Lookup inlining data for a ciMethod
 251.584 +  ciInlineRecord* find_ciInlineRecord(Method* method, int bci, int depth) {
 251.585 +    if (_ci_inline_records != NULL) {
 251.586 +      return find_ciInlineRecord(_ci_inline_records, method, bci, depth);
 251.587 +    }
 251.588 +    return NULL;
 251.589 +  }
 251.590 +
 251.591 +  static ciInlineRecord* find_ciInlineRecord(GrowableArray<ciInlineRecord*>*  records,
 251.592 +                                      Method* method, int bci, int depth) {
 251.593 +    if (records != NULL) {
 251.594 +      const char* klass_name  = method->method_holder()->name()->as_utf8();
 251.595 +      const char* method_name = method->name()->as_utf8();
 251.596 +      const char* signature   = method->signature()->as_utf8();
 251.597 +      for (int i = 0; i < records->length(); i++) {
 251.598 +        ciInlineRecord* rec = records->at(i);
 251.599 +        if ((rec->_inline_bci == bci) &&
 251.600 +            (rec->_inline_depth == depth) &&
 251.601 +            (strcmp(rec->_klass_name, klass_name) == 0) &&
 251.602 +            (strcmp(rec->_method_name, method_name) == 0) &&
 251.603 +            (strcmp(rec->_signature, signature) == 0)) {
 251.604 +          return rec;
 251.605 +        }
 251.606 +      }
 251.607 +    }
 251.608 +    return NULL;
 251.609 +  }
 251.610 +
 251.611    const char* error_message() {
 251.612      return _error_message;
 251.613    }
 251.614  
 251.615    void reset() {
 251.616      _error_message = NULL;
 251.617 -    ci_method_records.clear();
 251.618 -    ci_method_data_records.clear();
 251.619 +    _ci_method_records.clear();
 251.620 +    _ci_method_data_records.clear();
 251.621    }
 251.622  
 251.623    // Take an ascii string contain \u#### escapes and convert it to utf8
 251.624 @@ -845,6 +1000,37 @@
 251.625    vm_exit(exit_code);
 251.626  }
 251.627  
 251.628 +void* ciReplay::load_inline_data(ciMethod* method, int entry_bci, int comp_level) {
 251.629 +  if (FLAG_IS_DEFAULT(InlineDataFile)) {
 251.630 +    tty->print_cr("ERROR: no inline replay data file specified (use -XX:InlineDataFile=inline_pid12345.txt).");
 251.631 +    return NULL;
 251.632 +  }
 251.633 +
 251.634 +  VM_ENTRY_MARK;
 251.635 +  // Load and parse the replay data
 251.636 +  CompileReplay rp(InlineDataFile, THREAD);
 251.637 +  if (!rp.can_replay()) {
 251.638 +    tty->print_cr("ciReplay: !rp.can_replay()");
 251.639 +    return NULL;
 251.640 +  }
 251.641 +  void* data = rp.process_inline(method, method->get_Method(), entry_bci, comp_level, THREAD);
 251.642 +  if (HAS_PENDING_EXCEPTION) {
 251.643 +    oop throwable = PENDING_EXCEPTION;
 251.644 +    CLEAR_PENDING_EXCEPTION;
 251.645 +    java_lang_Throwable::print(throwable, tty);
 251.646 +    tty->cr();
 251.647 +    java_lang_Throwable::print_stack_trace(throwable, tty);
 251.648 +    tty->cr();
 251.649 +    return NULL;
 251.650 +  }
 251.651 +
 251.652 +  if (rp.had_error()) {
 251.653 +    tty->print_cr("ciReplay: Failed on %s", rp.error_message());
 251.654 +    return NULL;
 251.655 +  }
 251.656 +  return data;
 251.657 +}
 251.658 +
 251.659  int ciReplay::replay_impl(TRAPS) {
 251.660    HandleMark hm;
 251.661    ResourceMark rm;
 251.662 @@ -890,7 +1076,6 @@
 251.663    return exit_code;
 251.664  }
 251.665  
 251.666 -
 251.667  void ciReplay::initialize(ciMethodData* m) {
 251.668    if (replay_state == NULL) {
 251.669      return;
 251.670 @@ -909,28 +1094,28 @@
 251.671      method->print_name(tty);
 251.672      tty->cr();
 251.673    } else {
 251.674 -    m->_state = rec->state;
 251.675 -    m->_current_mileage = rec->current_mileage;
 251.676 -    if (rec->data_length != 0) {
 251.677 -      assert(m->_data_size == rec->data_length * (int)sizeof(rec->data[0]), "must agree");
 251.678 +    m->_state = rec->_state;
 251.679 +    m->_current_mileage = rec->_current_mileage;
 251.680 +    if (rec->_data_length != 0) {
 251.681 +      assert(m->_data_size == rec->_data_length * (int)sizeof(rec->_data[0]), "must agree");
 251.682  
 251.683        // Write the correct ciObjects back into the profile data
 251.684        ciEnv* env = ciEnv::current();
 251.685 -      for (int i = 0; i < rec->oops_length; i++) {
 251.686 -        KlassHandle *h = (KlassHandle *)rec->oops_handles[i];
 251.687 -        *(ciMetadata**)(rec->data + rec->oops_offsets[i]) =
 251.688 +      for (int i = 0; i < rec->_oops_length; i++) {
 251.689 +        KlassHandle *h = (KlassHandle *)rec->_oops_handles[i];
 251.690 +        *(ciMetadata**)(rec->_data + rec->_oops_offsets[i]) =
 251.691            env->get_metadata((*h)());
 251.692        }
 251.693        // Copy the updated profile data into place as intptr_ts
 251.694  #ifdef _LP64
 251.695 -      Copy::conjoint_jlongs_atomic((jlong *)rec->data, (jlong *)m->_data, rec->data_length);
 251.696 +      Copy::conjoint_jlongs_atomic((jlong *)rec->_data, (jlong *)m->_data, rec->_data_length);
 251.697  #else
 251.698 -      Copy::conjoint_jints_atomic((jint *)rec->data, (jint *)m->_data, rec->data_length);
 251.699 +      Copy::conjoint_jints_atomic((jint *)rec->_data, (jint *)m->_data, rec->_data_length);
 251.700  #endif
 251.701      }
 251.702  
 251.703      // copy in the original header
 251.704 -    Copy::conjoint_jbytes(rec->orig_data, (char*)&m->_orig, rec->orig_data_length);
 251.705 +    Copy::conjoint_jbytes(rec->_orig_data, (char*)&m->_orig, rec->_orig_data_length);
 251.706    }
 251.707  }
 251.708  
 251.709 @@ -939,12 +1124,38 @@
 251.710    if (replay_state == NULL) {
 251.711      return false;
 251.712    }
 251.713 -
 251.714    VM_ENTRY_MARK;
 251.715    // ciMethod without a record shouldn't be inlined.
 251.716    return replay_state->find_ciMethodRecord(method->get_Method()) == NULL;
 251.717  }
 251.718  
 251.719 +bool ciReplay::should_inline(void* data, ciMethod* method, int bci, int inline_depth) {
 251.720 +  if (data != NULL) {
 251.721 +    GrowableArray<ciInlineRecord*>*  records = (GrowableArray<ciInlineRecord*>*)data;
 251.722 +    VM_ENTRY_MARK;
 251.723 +    // Inline record are ordered by bci and depth.
 251.724 +    return CompileReplay::find_ciInlineRecord(records, method->get_Method(), bci, inline_depth) != NULL;
 251.725 +  } else if (replay_state != NULL) {
 251.726 +    VM_ENTRY_MARK;
 251.727 +    // Inline record are ordered by bci and depth.
 251.728 +    return replay_state->find_ciInlineRecord(method->get_Method(), bci, inline_depth) != NULL;
 251.729 +  }
 251.730 +  return false;
 251.731 +}
 251.732 +
 251.733 +bool ciReplay::should_not_inline(void* data, ciMethod* method, int bci, int inline_depth) {
 251.734 +  if (data != NULL) {
 251.735 +    GrowableArray<ciInlineRecord*>*  records = (GrowableArray<ciInlineRecord*>*)data;
 251.736 +    VM_ENTRY_MARK;
 251.737 +    // Inline record are ordered by bci and depth.
 251.738 +    return CompileReplay::find_ciInlineRecord(records, method->get_Method(), bci, inline_depth) == NULL;
 251.739 +  } else if (replay_state != NULL) {
 251.740 +    VM_ENTRY_MARK;
 251.741 +    // Inline record are ordered by bci and depth.
 251.742 +    return replay_state->find_ciInlineRecord(method->get_Method(), bci, inline_depth) == NULL;
 251.743 +  }
 251.744 +  return false;
 251.745 +}
 251.746  
 251.747  void ciReplay::initialize(ciMethod* m) {
 251.748    if (replay_state == NULL) {
 251.749 @@ -965,14 +1176,14 @@
 251.750      tty->cr();
 251.751    } else {
 251.752      EXCEPTION_CONTEXT;
 251.753 -    // m->_instructions_size = rec->instructions_size;
 251.754 +    // m->_instructions_size = rec->_instructions_size;
 251.755      m->_instructions_size = -1;
 251.756 -    m->_interpreter_invocation_count = rec->interpreter_invocation_count;
 251.757 -    m->_interpreter_throwout_count = rec->interpreter_throwout_count;
 251.758 +    m->_interpreter_invocation_count = rec->_interpreter_invocation_count;
 251.759 +    m->_interpreter_throwout_count = rec->_interpreter_throwout_count;
 251.760      MethodCounters* mcs = method->get_method_counters(CHECK_AND_CLEAR);
 251.761      guarantee(mcs != NULL, "method counters allocation failed");
 251.762 -    mcs->invocation_counter()->_counter = rec->invocation_counter;
 251.763 -    mcs->backedge_counter()->_counter = rec->backedge_counter;
 251.764 +    mcs->invocation_counter()->_counter = rec->_invocation_counter;
 251.765 +    mcs->backedge_counter()->_counter = rec->_backedge_counter;
 251.766    }
 251.767  }
 251.768  
   252.1 --- a/src/share/vm/ci/ciReplay.hpp	Thu Jan 16 14:25:51 2014 +0100
   252.2 +++ b/src/share/vm/ci/ciReplay.hpp	Wed Jan 22 17:42:23 2014 -0800
   252.3 @@ -29,6 +29,73 @@
   252.4  
   252.5  // ciReplay
   252.6  
   252.7 +//
   252.8 +// Replay compilation of a java method by using an information in replay file.
   252.9 +// Replay inlining decisions during compilation by using an information in inline file.
  252.10 +//
  252.11 +// NOTE: these replay functions only exist in debug version of VM.
  252.12 +//
  252.13 +// Replay compilation.
  252.14 +// -------------------
  252.15 +//
  252.16 +// Replay data file replay.txt can be created by Serviceability Agent
  252.17 +// from a core file, see agent/doc/cireplay.html
  252.18 +//
  252.19 +// $ java -cp <jdk>/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB
  252.20 +// hsdb> attach <jdk>/bin/java ./core
  252.21 +// hsdb> threads
  252.22 +// t@10 Service Thread
  252.23 +// t@9 C2 CompilerThread0
  252.24 +// t@8 Signal Dispatcher
  252.25 +// t@7 Finalizer
  252.26 +// t@6 Reference Handler
  252.27 +// t@2 main
  252.28 +// hsdb> dumpreplaydata t@9 > replay.txt
  252.29 +// hsdb> quit
  252.30 +//
  252.31 +// (Note: SA could be also used to extract app.jar and boot.jar files
  252.32 +//  from core file to replay compilation if only core file is available)
  252.33 +//
  252.34 +// Replay data file replay_pid%p.log is also created when VM crashes
  252.35 +// in Compiler thread during compilation. It is controlled by
  252.36 +// DumpReplayDataOnError flag which is ON by default.
  252.37 +//
  252.38 +// Replay file replay_pid%p_compid%d.log can be created
  252.39 +// for the specified java method during normal execution using
  252.40 +// CompileCommand option DumpReplay:
  252.41 +//
  252.42 +// -XX:CompileCommand=option,Benchmark::test,DumpReplay
  252.43 +//
  252.44 +// In this case the file name has additional compilation id "_compid%d"
  252.45 +// because the method could be compiled several times.
  252.46 +//
  252.47 +// To replay compilation the replay file should be specified:
  252.48 +//
  252.49 +// -XX:+ReplayCompiles -XX:ReplayDataFile=replay_pid2133.log
  252.50 +//
  252.51 +// VM thread reads data from the file immediately after VM initialization
  252.52 +// and puts the compilation task on compile queue. After that it goes into
  252.53 +// wait state (BackgroundCompilation flag is set to false) since there is no
  252.54 +// a program to execute. VM exits when the compilation is finished.
  252.55 +//
  252.56 +//
  252.57 +// Replay inlining.
  252.58 +// ----------------
  252.59 +//
  252.60 +// Replay inlining file inline_pid%p_compid%d.log is created for
  252.61 +// a specific java method during normal execution of a java program
  252.62 +// using CompileCommand option DumpInline:
  252.63 +//
  252.64 +// -XX:CompileCommand=option,Benchmark::test,DumpInline
  252.65 +//
  252.66 +// To replay inlining the replay file and the method should be specified:
  252.67 +//
  252.68 +// -XX:CompileCommand=option,Benchmark::test,ReplayInline -XX:InlineDataFile=inline_pid3244_compid6.log
  252.69 +//
  252.70 +// The difference from replay compilation is that replay inlining
  252.71 +// is performed during normal java program execution.
  252.72 +//
  252.73 +
  252.74  class ciReplay {
  252.75    CI_PACKAGE_ACCESS
  252.76  
  252.77 @@ -37,7 +104,11 @@
  252.78    static int replay_impl(TRAPS);
  252.79  
  252.80   public:
  252.81 +  // Replay specified compilation and exit VM.
  252.82    static void replay(TRAPS);
  252.83 +  // Load inlining decisions from file and use them
  252.84 +  // during compilation of specified method.
  252.85 +  static void* load_inline_data(ciMethod* method, int entry_bci, int comp_level);
  252.86  
  252.87    // These are used by the CI to fill in the cached data from the
  252.88    // replay file when replaying compiles.
  252.89 @@ -48,6 +119,8 @@
  252.90    static bool is_loaded(Klass* klass);
  252.91  
  252.92    static bool should_not_inline(ciMethod* method);
  252.93 +  static bool should_inline(void* data, ciMethod* method, int bci, int inline_depth);
  252.94 +  static bool should_not_inline(void* data, ciMethod* method, int bci, int inline_depth);
  252.95  
  252.96  #endif
  252.97  };
   253.1 --- a/src/share/vm/ci/ciStreams.hpp	Thu Jan 16 14:25:51 2014 +0100
   253.2 +++ b/src/share/vm/ci/ciStreams.hpp	Wed Jan 22 17:42:23 2014 -0800
   253.3 @@ -1,5 +1,5 @@
   253.4  /*
   253.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   253.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   253.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   253.8   *
   253.9   * This code is free software; you can redistribute it and/or modify it
   254.1 --- a/src/share/vm/ci/ciType.cpp	Thu Jan 16 14:25:51 2014 +0100
   254.2 +++ b/src/share/vm/ci/ciType.cpp	Wed Jan 22 17:42:23 2014 -0800
   254.3 @@ -1,5 +1,5 @@
   254.4  /*
   254.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   254.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   254.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   254.8   *
   254.9   * This code is free software; you can redistribute it and/or modify it
   255.1 --- a/src/share/vm/ci/ciType.hpp	Thu Jan 16 14:25:51 2014 +0100
   255.2 +++ b/src/share/vm/ci/ciType.hpp	Wed Jan 22 17:42:23 2014 -0800
   255.3 @@ -1,5 +1,5 @@
   255.4  /*
   255.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   255.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   255.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   255.8   *
   255.9   * This code is free software; you can redistribute it and/or modify it
   256.1 --- a/src/share/vm/ci/ciTypeArray.cpp	Thu Jan 16 14:25:51 2014 +0100
   256.2 +++ b/src/share/vm/ci/ciTypeArray.cpp	Wed Jan 22 17:42:23 2014 -0800
   256.3 @@ -1,5 +1,5 @@
   256.4  /*
   256.5 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
   256.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   256.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   256.8   *
   256.9   * This code is free software; you can redistribute it and/or modify it
   257.1 --- a/src/share/vm/ci/ciTypeArrayKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   257.2 +++ b/src/share/vm/ci/ciTypeArrayKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   257.3 @@ -1,5 +1,5 @@
   257.4  /*
   257.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   257.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   257.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   257.8   *
   257.9   * This code is free software; you can redistribute it and/or modify it
   258.1 --- a/src/share/vm/ci/ciTypeFlow.cpp	Thu Jan 16 14:25:51 2014 +0100
   258.2 +++ b/src/share/vm/ci/ciTypeFlow.cpp	Wed Jan 22 17:42:23 2014 -0800
   258.3 @@ -1,5 +1,5 @@
   258.4  /*
   258.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   258.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   258.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   258.8   *
   258.9   * This code is free software; you can redistribute it and/or modify it
   259.1 --- a/src/share/vm/ci/ciUtilities.hpp	Thu Jan 16 14:25:51 2014 +0100
   259.2 +++ b/src/share/vm/ci/ciUtilities.hpp	Wed Jan 22 17:42:23 2014 -0800
   259.3 @@ -1,5 +1,5 @@
   259.4  /*
   259.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   259.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   259.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   259.8   *
   259.9   * This code is free software; you can redistribute it and/or modify it
   260.1 --- a/src/share/vm/classfile/bytecodeAssembler.cpp	Thu Jan 16 14:25:51 2014 +0100
   260.2 +++ b/src/share/vm/classfile/bytecodeAssembler.cpp	Wed Jan 22 17:42:23 2014 -0800
   260.3 @@ -1,5 +1,5 @@
   260.4  /*
   260.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   260.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   260.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   260.8   *
   260.9   * This code is free software; you can redistribute it and/or modify it
   261.1 --- a/src/share/vm/classfile/classFileStream.cpp	Thu Jan 16 14:25:51 2014 +0100
   261.2 +++ b/src/share/vm/classfile/classFileStream.cpp	Wed Jan 22 17:42:23 2014 -0800
   261.3 @@ -1,5 +1,5 @@
   261.4  /*
   261.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   261.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   261.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   261.8   *
   261.9   * This code is free software; you can redistribute it and/or modify it
   262.1 --- a/src/share/vm/classfile/classFileStream.hpp	Thu Jan 16 14:25:51 2014 +0100
   262.2 +++ b/src/share/vm/classfile/classFileStream.hpp	Wed Jan 22 17:42:23 2014 -0800
   262.3 @@ -1,5 +1,5 @@
   262.4  /*
   262.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
   262.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   262.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   262.8   *
   262.9   * This code is free software; you can redistribute it and/or modify it
   263.1 --- a/src/share/vm/classfile/classLoaderData.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   263.2 +++ b/src/share/vm/classfile/classLoaderData.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   263.3 @@ -1,5 +1,5 @@
   263.4  /*
   263.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   263.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   263.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   263.8   *
   263.9   * This code is free software; you can redistribute it and/or modify it
   264.1 --- a/src/share/vm/classfile/defaultMethods.cpp	Thu Jan 16 14:25:51 2014 +0100
   264.2 +++ b/src/share/vm/classfile/defaultMethods.cpp	Wed Jan 22 17:42:23 2014 -0800
   264.3 @@ -349,6 +349,7 @@
   264.4    }
   264.5  
   264.6    Symbol* generate_no_defaults_message(TRAPS) const;
   264.7 +  Symbol* generate_method_message(Symbol *klass_name, Method* method, TRAPS) const;
   264.8    Symbol* generate_conflicts_message(GrowableArray<Method*>* methods, TRAPS) const;
   264.9  
  264.10   public:
  264.11 @@ -414,21 +415,25 @@
  264.12        }
  264.13      }
  264.14  
  264.15 -    if (qualified_methods.length() == 0) {
  264.16 -      _exception_message = generate_no_defaults_message(CHECK);
  264.17 +    if (num_defaults == 0) {
  264.18 +      if (qualified_methods.length() == 0) {
  264.19 +        _exception_message = generate_no_defaults_message(CHECK);
  264.20 +      } else {
  264.21 +        assert(root != NULL, "Null root class");
  264.22 +        _exception_message = generate_method_message(root->name(), qualified_methods.at(0), CHECK);
  264.23 +      }
  264.24        _exception_name = vmSymbols::java_lang_AbstractMethodError();
  264.25      // If only one qualified method is default, select that
  264.26      } else if (num_defaults == 1) {
  264.27          _selected_target = qualified_methods.at(default_index);
  264.28      } else if (num_defaults > 1) {
  264.29 -      _exception_message = generate_conflicts_message(&qualified_methods,CHECK);
  264.30 -      _exception_name = vmSymbols::java_lang_IncompatibleClassChangeError();
  264.31 +       _exception_message = generate_conflicts_message(&qualified_methods,CHECK);
  264.32 +       _exception_name = vmSymbols::java_lang_IncompatibleClassChangeError();
  264.33        if (TraceDefaultMethods) {
  264.34          _exception_message->print_value_on(tty);
  264.35          tty->print_cr("");
  264.36        }
  264.37      }
  264.38 -    // leave abstract methods alone, they will be found via normal search path
  264.39    }
  264.40  
  264.41    bool contains_signature(Symbol* query) {
  264.42 @@ -486,6 +491,19 @@
  264.43    return SymbolTable::new_symbol("No qualifying defaults found", CHECK_NULL);
  264.44  }
  264.45  
  264.46 +Symbol* MethodFamily::generate_method_message(Symbol *klass_name, Method* method, TRAPS) const {
  264.47 +  stringStream ss;
  264.48 +  ss.print("Method ");
  264.49 +  Symbol* name = method->name();
  264.50 +  Symbol* signature = method->signature();
  264.51 +  ss.write((const char*)klass_name->bytes(), klass_name->utf8_length());
  264.52 +  ss.print(".");
  264.53 +  ss.write((const char*)name->bytes(), name->utf8_length());
  264.54 +  ss.write((const char*)signature->bytes(), signature->utf8_length());
  264.55 +  ss.print(" is abstract");
  264.56 +  return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL);
  264.57 +}
  264.58 +
  264.59  Symbol* MethodFamily::generate_conflicts_message(GrowableArray<Method*>* methods, TRAPS) const {
  264.60    stringStream ss;
  264.61    ss.print("Conflicting default methods:");
  264.62 @@ -1026,7 +1044,8 @@
  264.63    Array<Method*>* merged_methods = MetadataFactory::new_array<Method*>(
  264.64        klass->class_loader_data(), new_size, NULL, CHECK);
  264.65  
  264.66 -  if (original_ordering != NULL && original_ordering->length() > 0) {
  264.67 +  // original_ordering might be empty if this class has no methods of its own
  264.68 +  if (JvmtiExport::can_maintain_original_method_order() || DumpSharedSpaces) {
  264.69      merged_ordering = MetadataFactory::new_array<int>(
  264.70          klass->class_loader_data(), new_size, CHECK);
  264.71    }
  264.72 @@ -1053,6 +1072,8 @@
  264.73        merged_methods->at_put(i, orig_method);
  264.74        original_methods->at_put(orig_idx, NULL);
  264.75        if (merged_ordering->length() > 0) {
  264.76 +        assert(original_ordering != NULL && original_ordering->length() > 0,
  264.77 +               "should have original order information for this method");
  264.78          merged_ordering->at_put(i, original_ordering->at(orig_idx));
  264.79        }
  264.80        ++orig_idx;
  264.81 @@ -1081,13 +1102,14 @@
  264.82    // Replace klass methods with new merged lists
  264.83    klass->set_methods(merged_methods);
  264.84    klass->set_initial_method_idnum(new_size);
  264.85 +  klass->set_method_ordering(merged_ordering);
  264.86  
  264.87 +  // Free metadata
  264.88    ClassLoaderData* cld = klass->class_loader_data();
  264.89 -  if (original_methods ->length() > 0) {
  264.90 +  if (original_methods->length() > 0) {
  264.91      MetadataFactory::free_array(cld, original_methods);
  264.92    }
  264.93 -  if (original_ordering->length() > 0) {
  264.94 -    klass->set_method_ordering(merged_ordering);
  264.95 +  if (original_ordering != NULL && original_ordering->length() > 0) {
  264.96      MetadataFactory::free_array(cld, original_ordering);
  264.97    }
  264.98  }
   265.1 --- a/src/share/vm/classfile/systemDictionary.cpp	Thu Jan 16 14:25:51 2014 +0100
   265.2 +++ b/src/share/vm/classfile/systemDictionary.cpp	Wed Jan 22 17:42:23 2014 -0800
   265.3 @@ -1049,6 +1049,9 @@
   265.4        add_to_hierarchy(k, CHECK_NULL); // No exception, but can block
   265.5  
   265.6        // But, do not add to system dictionary.
   265.7 +
   265.8 +      // compiled code dependencies need to be validated anyway
   265.9 +      notice_modification();
  265.10      }
  265.11  
  265.12      // Rewrite and patch constant pool here.
   266.1 --- a/src/share/vm/classfile/vmSymbols.cpp	Thu Jan 16 14:25:51 2014 +0100
   266.2 +++ b/src/share/vm/classfile/vmSymbols.cpp	Wed Jan 22 17:42:23 2014 -0800
   266.3 @@ -1,5 +1,5 @@
   266.4  /*
   266.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   266.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   266.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   266.8   *
   266.9   * This code is free software; you can redistribute it and/or modify it
   267.1 --- a/src/share/vm/classfile/vmSymbols.hpp	Thu Jan 16 14:25:51 2014 +0100
   267.2 +++ b/src/share/vm/classfile/vmSymbols.hpp	Wed Jan 22 17:42:23 2014 -0800
   267.3 @@ -654,9 +654,9 @@
   267.4    do_intrinsic(_addExactI,                java_lang_Math,         addExact_name, int2_int_signature,             F_S)   \
   267.5    do_intrinsic(_addExactL,                java_lang_Math,         addExact_name, long2_long_signature,           F_S)   \
   267.6    do_intrinsic(_decrementExactI,          java_lang_Math,         decrementExact_name, int_int_signature,        F_S)   \
   267.7 -  do_intrinsic(_decrementExactL,          java_lang_Math,         decrementExact_name, long2_long_signature,     F_S)   \
   267.8 +  do_intrinsic(_decrementExactL,          java_lang_Math,         decrementExact_name, long_long_signature,      F_S)   \
   267.9    do_intrinsic(_incrementExactI,          java_lang_Math,         incrementExact_name, int_int_signature,        F_S)   \
  267.10 -  do_intrinsic(_incrementExactL,          java_lang_Math,         incrementExact_name, long2_long_signature,     F_S)   \
  267.11 +  do_intrinsic(_incrementExactL,          java_lang_Math,         incrementExact_name, long_long_signature,      F_S)   \
  267.12    do_intrinsic(_multiplyExactI,           java_lang_Math,         multiplyExact_name, int2_int_signature,        F_S)   \
  267.13    do_intrinsic(_multiplyExactL,           java_lang_Math,         multiplyExact_name, long2_long_signature,      F_S)   \
  267.14    do_intrinsic(_negateExactI,             java_lang_Math,         negateExact_name, int_int_signature,           F_S)   \
   268.1 --- a/src/share/vm/code/compiledIC.hpp	Thu Jan 16 14:25:51 2014 +0100
   268.2 +++ b/src/share/vm/code/compiledIC.hpp	Wed Jan 22 17:42:23 2014 -0800
   268.3 @@ -1,5 +1,5 @@
   268.4  /*
   268.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   268.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   268.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   268.8   *
   268.9   * This code is free software; you can redistribute it and/or modify it
   269.1 --- a/src/share/vm/code/compressedStream.cpp	Thu Jan 16 14:25:51 2014 +0100
   269.2 +++ b/src/share/vm/code/compressedStream.cpp	Wed Jan 22 17:42:23 2014 -0800
   269.3 @@ -1,5 +1,5 @@
   269.4  /*
   269.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   269.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   269.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   269.8   *
   269.9   * This code is free software; you can redistribute it and/or modify it
   270.1 --- a/src/share/vm/code/debugInfo.hpp	Thu Jan 16 14:25:51 2014 +0100
   270.2 +++ b/src/share/vm/code/debugInfo.hpp	Wed Jan 22 17:42:23 2014 -0800
   270.3 @@ -1,5 +1,5 @@
   270.4  /*
   270.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   270.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   270.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   270.8   *
   270.9   * This code is free software; you can redistribute it and/or modify it
   271.1 --- a/src/share/vm/code/icBuffer.hpp	Thu Jan 16 14:25:51 2014 +0100
   271.2 +++ b/src/share/vm/code/icBuffer.hpp	Wed Jan 22 17:42:23 2014 -0800
   271.3 @@ -1,5 +1,5 @@
   271.4  /*
   271.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   271.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   271.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   271.8   *
   271.9   * This code is free software; you can redistribute it and/or modify it
   272.1 --- a/src/share/vm/code/relocInfo.cpp	Thu Jan 16 14:25:51 2014 +0100
   272.2 +++ b/src/share/vm/code/relocInfo.cpp	Wed Jan 22 17:42:23 2014 -0800
   272.3 @@ -1,5 +1,5 @@
   272.4  /*
   272.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   272.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   272.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   272.8   *
   272.9   * This code is free software; you can redistribute it and/or modify it
   273.1 --- a/src/share/vm/code/stubs.cpp	Thu Jan 16 14:25:51 2014 +0100
   273.2 +++ b/src/share/vm/code/stubs.cpp	Wed Jan 22 17:42:23 2014 -0800
   273.3 @@ -1,5 +1,5 @@
   273.4  /*
   273.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   273.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   273.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   273.8   *
   273.9   * This code is free software; you can redistribute it and/or modify it
   274.1 --- a/src/share/vm/code/stubs.hpp	Thu Jan 16 14:25:51 2014 +0100
   274.2 +++ b/src/share/vm/code/stubs.hpp	Wed Jan 22 17:42:23 2014 -0800
   274.3 @@ -1,5 +1,5 @@
   274.4  /*
   274.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   274.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   274.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   274.8   *
   274.9   * This code is free software; you can redistribute it and/or modify it
   275.1 --- a/src/share/vm/compiler/abstractCompiler.cpp	Thu Jan 16 14:25:51 2014 +0100
   275.2 +++ b/src/share/vm/compiler/abstractCompiler.cpp	Wed Jan 22 17:42:23 2014 -0800
   275.3 @@ -1,5 +1,5 @@
   275.4  //
   275.5 -// Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
   275.6 +// Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   275.7  // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   275.8  //
   275.9  // This code is free software; you can redistribute it and/or modify it
   276.1 --- a/src/share/vm/compiler/abstractCompiler.hpp	Thu Jan 16 14:25:51 2014 +0100
   276.2 +++ b/src/share/vm/compiler/abstractCompiler.hpp	Wed Jan 22 17:42:23 2014 -0800
   276.3 @@ -1,5 +1,5 @@
   276.4  /*
   276.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   276.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   276.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   276.8   *
   276.9   * This code is free software; you can redistribute it and/or modify it
   277.1 --- a/src/share/vm/compiler/compileBroker.cpp	Thu Jan 16 14:25:51 2014 +0100
   277.2 +++ b/src/share/vm/compiler/compileBroker.cpp	Wed Jan 22 17:42:23 2014 -0800
   277.3 @@ -132,9 +132,9 @@
   277.4  // The installed compiler(s)
   277.5  AbstractCompiler* CompileBroker::_compilers[2];
   277.6  
   277.7 -// These counters are used for assigning id's to each compilation
   277.8 -uint CompileBroker::_compilation_id        = 0;
   277.9 -uint CompileBroker::_osr_compilation_id    = 0;
  277.10 +// These counters are used to assign an unique ID to each compilation.
  277.11 +volatile jint CompileBroker::_compilation_id     = 0;
  277.12 +volatile jint CompileBroker::_osr_compilation_id = 0;
  277.13  
  277.14  // Debugging information
  277.15  int  CompileBroker::_last_compile_type     = no_compile;
  277.16 @@ -1158,7 +1158,7 @@
  277.17      // We now know that this compilation is not pending, complete,
  277.18      // or prohibited.  Assign a compile_id to this compilation
  277.19      // and check to see if it is in our [Start..Stop) range.
  277.20 -    uint compile_id = assign_compile_id(method, osr_bci);
  277.21 +    int compile_id = assign_compile_id(method, osr_bci);
  277.22      if (compile_id == 0) {
  277.23        // The compilation falls outside the allowed range.
  277.24        return;
  277.25 @@ -1305,18 +1305,12 @@
  277.26    // do the compilation
  277.27    if (method->is_native()) {
  277.28      if (!PreferInterpreterNativeStubs || method->is_method_handle_intrinsic()) {
  277.29 -      // Acquire our lock.
  277.30 -      int compile_id;
  277.31 -      {
  277.32 -        MutexLocker locker(MethodCompileQueue_lock, THREAD);
  277.33 -        compile_id = assign_compile_id(method, standard_entry_bci);
  277.34 -      }
  277.35        // To properly handle the appendix argument for out-of-line calls we are using a small trampoline that
  277.36        // pops off the appendix argument and jumps to the target (see gen_special_dispatch in SharedRuntime).
  277.37        //
  277.38        // Since normal compiled-to-compiled calls are not able to handle such a thing we MUST generate an adapter
  277.39        // in this case.  If we can't generate one and use it we can not execute the out-of-line method handle calls.
  277.40 -      (void) AdapterHandlerLibrary::create_native_wrapper(method, compile_id);
  277.41 +      AdapterHandlerLibrary::create_native_wrapper(method);
  277.42      } else {
  277.43        return NULL;
  277.44      }
  277.45 @@ -1419,27 +1413,28 @@
  277.46    return false;
  277.47  }
  277.48  
  277.49 -
  277.50 -// ------------------------------------------------------------------
  277.51 -// CompileBroker::assign_compile_id
  277.52 -//
  277.53 -// Assign a serialized id number to this compilation request.  If the
  277.54 -// number falls out of the allowed range, return a 0.  OSR
  277.55 -// compilations may be numbered separately from regular compilations
  277.56 -// if certain debugging flags are used.
  277.57 -uint CompileBroker::assign_compile_id(methodHandle method, int osr_bci) {
  277.58 -  assert(MethodCompileQueue_lock->owner() == Thread::current(),
  277.59 -         "must hold the compilation queue lock");
  277.60 +/**
  277.61 + * Generate serialized IDs for compilation requests. If certain debugging flags are used
  277.62 + * and the ID is not within the specified range, the method is not compiled and 0 is returned.
  277.63 + * The function also allows to generate separate compilation IDs for OSR compilations.
  277.64 + */
  277.65 +int CompileBroker::assign_compile_id(methodHandle method, int osr_bci) {
  277.66 +#ifdef ASSERT
  277.67    bool is_osr = (osr_bci != standard_entry_bci);
  277.68 -  uint id;
  277.69 -  if (CICountOSR && is_osr) {
  277.70 -    id = ++_osr_compilation_id;
  277.71 -    if ((uint)CIStartOSR <= id && id < (uint)CIStopOSR) {
  277.72 +  int id;
  277.73 +  if (method->is_native()) {
  277.74 +    assert(!is_osr, "can't be osr");
  277.75 +    // Adapters, native wrappers and method handle intrinsics
  277.76 +    // should be generated always.
  277.77 +    return Atomic::add(1, &_compilation_id);
  277.78 +  } else if (CICountOSR && is_osr) {
  277.79 +    id = Atomic::add(1, &_osr_compilation_id);
  277.80 +    if (CIStartOSR <= id && id < CIStopOSR) {
  277.81        return id;
  277.82      }
  277.83    } else {
  277.84 -    id = ++_compilation_id;
  277.85 -    if ((uint)CIStart <= id && id < (uint)CIStop) {
  277.86 +    id = Atomic::add(1, &_compilation_id);
  277.87 +    if (CIStart <= id && id < CIStop) {
  277.88        return id;
  277.89      }
  277.90    }
  277.91 @@ -1447,6 +1442,11 @@
  277.92    // Method was not in the appropriate compilation range.
  277.93    method->set_not_compilable_quietly();
  277.94    return 0;
  277.95 +#else
  277.96 +  // CICountOSR is a develop flag and set to 'false' by default. In a product built,
  277.97 +  // only _compilation_id is incremented.
  277.98 +  return Atomic::add(1, &_compilation_id);
  277.99 +#endif
 277.100  }
 277.101  
 277.102  
   278.1 --- a/src/share/vm/compiler/compileBroker.hpp	Thu Jan 16 14:25:51 2014 +0100
   278.2 +++ b/src/share/vm/compiler/compileBroker.hpp	Wed Jan 22 17:42:23 2014 -0800
   278.3 @@ -246,6 +246,8 @@
   278.4  
   278.5    // Compile type Information for print_last_compile() and CompilerCounters
   278.6    enum { no_compile, normal_compile, osr_compile, native_compile };
   278.7 +  static int assign_compile_id (methodHandle method, int osr_bci);
   278.8 +
   278.9  
  278.10   private:
  278.11    static bool _initialized;
  278.12 @@ -258,9 +260,8 @@
  278.13    static AbstractCompiler* _compilers[2];
  278.14  
  278.15    // These counters are used for assigning id's to each compilation
  278.16 -  static uint _compilation_id;
  278.17 -  static uint _osr_compilation_id;
  278.18 -  static uint _native_compilation_id;
  278.19 +  static volatile jint _compilation_id;
  278.20 +  static volatile jint _osr_compilation_id;
  278.21  
  278.22    static int  _last_compile_type;
  278.23    static int  _last_compile_level;
  278.24 @@ -321,7 +322,6 @@
  278.25    static void init_compiler_threads(int c1_compiler_count, int c2_compiler_count);
  278.26    static bool compilation_is_complete  (methodHandle method, int osr_bci, int comp_level);
  278.27    static bool compilation_is_prohibited(methodHandle method, int osr_bci, int comp_level);
  278.28 -  static uint assign_compile_id        (methodHandle method, int osr_bci);
  278.29    static bool is_compile_blocking      (methodHandle method, int osr_bci);
  278.30    static void preload_classes          (methodHandle method, TRAPS);
  278.31  
   279.1 --- a/src/share/vm/compiler/compileLog.cpp	Thu Jan 16 14:25:51 2014 +0100
   279.2 +++ b/src/share/vm/compiler/compileLog.cpp	Wed Jan 22 17:42:23 2014 -0800
   279.3 @@ -1,5 +1,5 @@
   279.4  /*
   279.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   279.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   279.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   279.8   *
   279.9   * This code is free software; you can redistribute it and/or modify it
   280.1 --- a/src/share/vm/compiler/compileLog.hpp	Thu Jan 16 14:25:51 2014 +0100
   280.2 +++ b/src/share/vm/compiler/compileLog.hpp	Wed Jan 22 17:42:23 2014 -0800
   280.3 @@ -1,5 +1,5 @@
   280.4  /*
   280.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   280.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   280.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   280.8   *
   280.9   * This code is free software; you can redistribute it and/or modify it
   281.1 --- a/src/share/vm/compiler/compilerOracle.cpp	Thu Jan 16 14:25:51 2014 +0100
   281.2 +++ b/src/share/vm/compiler/compilerOracle.cpp	Wed Jan 22 17:42:23 2014 -0800
   281.3 @@ -1,5 +1,5 @@
   281.4  /*
   281.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   281.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   281.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   281.8   *
   281.9   * This code is free software; you can redistribute it and/or modify it
   282.1 --- a/src/share/vm/compiler/disassembler.cpp	Thu Jan 16 14:25:51 2014 +0100
   282.2 +++ b/src/share/vm/compiler/disassembler.cpp	Wed Jan 22 17:42:23 2014 -0800
   282.3 @@ -1,5 +1,5 @@
   282.4  /*
   282.5 - * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
   282.6 + * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
   282.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   282.8   *
   282.9   * This code is free software; you can redistribute it and/or modify it
   283.1 --- a/src/share/vm/compiler/disassembler.hpp	Thu Jan 16 14:25:51 2014 +0100
   283.2 +++ b/src/share/vm/compiler/disassembler.hpp	Wed Jan 22 17:42:23 2014 -0800
   283.3 @@ -1,5 +1,5 @@
   283.4  /*
   283.5 - * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
   283.6 + * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
   283.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   283.8   *
   283.9   * This code is free software; you can redistribute it and/or modify it
   284.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp	Thu Jan 16 14:25:51 2014 +0100
   284.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp	Wed Jan 22 17:42:23 2014 -0800
   284.3 @@ -1,5 +1,5 @@
   284.4  /*
   284.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   284.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   284.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   284.8   *
   284.9   * This code is free software; you can redistribute it and/or modify it
   285.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.hpp	Thu Jan 16 14:25:51 2014 +0100
   285.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.hpp	Wed Jan 22 17:42:23 2014 -0800
   285.3 @@ -1,5 +1,5 @@
   285.4  /*
   285.5 - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
   285.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   285.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   285.8   *
   285.9   * This code is free software; you can redistribute it and/or modify it
   286.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp	Thu Jan 16 14:25:51 2014 +0100
   286.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp	Wed Jan 22 17:42:23 2014 -0800
   286.3 @@ -1,5 +1,5 @@
   286.4  /*
   286.5 - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
   286.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   286.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   286.8   *
   286.9   * This code is free software; you can redistribute it and/or modify it
   287.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp	Thu Jan 16 14:25:51 2014 +0100
   287.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp	Wed Jan 22 17:42:23 2014 -0800
   287.3 @@ -1,5 +1,5 @@
   287.4  /*
   287.5 - * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
   287.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   287.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   287.8   *
   287.9   * This code is free software; you can redistribute it and/or modify it
   288.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp	Thu Jan 16 14:25:51 2014 +0100
   288.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp	Wed Jan 22 17:42:23 2014 -0800
   288.3 @@ -1,5 +1,5 @@
   288.4  /*
   288.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   288.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   288.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   288.8   *
   288.9   * This code is free software; you can redistribute it and/or modify it
   289.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp	Thu Jan 16 14:25:51 2014 +0100
   289.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp	Wed Jan 22 17:42:23 2014 -0800
   289.3 @@ -1,5 +1,5 @@
   289.4  /*
   289.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   289.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   289.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   289.8   *
   289.9   * This code is free software; you can redistribute it and/or modify it
   290.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp	Thu Jan 16 14:25:51 2014 +0100
   290.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp	Wed Jan 22 17:42:23 2014 -0800
   290.3 @@ -1,5 +1,5 @@
   290.4  /*
   290.5 - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
   290.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   290.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   290.8   *
   290.9   * This code is free software; you can redistribute it and/or modify it
   291.1 --- a/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp	Thu Jan 16 14:25:51 2014 +0100
   291.2 +++ b/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp	Wed Jan 22 17:42:23 2014 -0800
   291.3 @@ -1,5 +1,5 @@
   291.4  /*
   291.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   291.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   291.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   291.8   *
   291.9   * This code is free software; you can redistribute it and/or modify it
   292.1 --- a/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp	Thu Jan 16 14:25:51 2014 +0100
   292.2 +++ b/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp	Wed Jan 22 17:42:23 2014 -0800
   292.3 @@ -1,5 +1,5 @@
   292.4  /*
   292.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   292.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   292.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   292.8   *
   292.9   * This code is free software; you can redistribute it and/or modify it
   293.1 --- a/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp	Thu Jan 16 14:25:51 2014 +0100
   293.2 +++ b/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp	Wed Jan 22 17:42:23 2014 -0800
   293.3 @@ -1,5 +1,5 @@
   293.4  /*
   293.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   293.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   293.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   293.8   *
   293.9   * This code is free software; you can redistribute it and/or modify it
   294.1 --- a/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp	Thu Jan 16 14:25:51 2014 +0100
   294.2 +++ b/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp	Wed Jan 22 17:42:23 2014 -0800
   294.3 @@ -1,5 +1,5 @@
   294.4  /*
   294.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   294.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   294.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   294.8   *
   294.9   * This code is free software; you can redistribute it and/or modify it
   295.1 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   295.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   295.3 @@ -1,5 +1,5 @@
   295.4  /*
   295.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   295.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   295.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   295.8   *
   295.9   * This code is free software; you can redistribute it and/or modify it
   296.1 --- a/src/share/vm/gc_implementation/g1/g1EvacFailure.hpp	Thu Jan 16 14:25:51 2014 +0100
   296.2 +++ b/src/share/vm/gc_implementation/g1/g1EvacFailure.hpp	Wed Jan 22 17:42:23 2014 -0800
   296.3 @@ -1,5 +1,5 @@
   296.4  /*
   296.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   296.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   296.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   296.8   *
   296.9   * This code is free software; you can redistribute it and/or modify it
   297.1 --- a/src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp	Thu Jan 16 14:25:51 2014 +0100
   297.2 +++ b/src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp	Wed Jan 22 17:42:23 2014 -0800
   297.3 @@ -1,5 +1,5 @@
   297.4  /*
   297.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   297.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   297.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   297.8   *
   297.9   * This code is free software; you can redistribute it and/or modify it
   298.1 --- a/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp	Thu Jan 16 14:25:51 2014 +0100
   298.2 +++ b/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp	Wed Jan 22 17:42:23 2014 -0800
   298.3 @@ -1,5 +1,5 @@
   298.4  /*
   298.5 - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
   298.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   298.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   298.8   *
   298.9   * This code is free software; you can redistribute it and/or modify it
   299.1 --- a/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp	Thu Jan 16 14:25:51 2014 +0100
   299.2 +++ b/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp	Wed Jan 22 17:42:23 2014 -0800
   299.3 @@ -1,5 +1,5 @@
   299.4  /*
   299.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   299.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   299.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   299.8   *
   299.9   * This code is free software; you can redistribute it and/or modify it
   300.1 --- a/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp	Thu Jan 16 14:25:51 2014 +0100
   300.2 +++ b/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp	Wed Jan 22 17:42:23 2014 -0800
   300.3 @@ -1,5 +1,5 @@
   300.4  /*
   300.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   300.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   300.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   300.8   *
   300.9   * This code is free software; you can redistribute it and/or modify it
   301.1 --- a/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp	Thu Jan 16 14:25:51 2014 +0100
   301.2 +++ b/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp	Wed Jan 22 17:42:23 2014 -0800
   301.3 @@ -1,5 +1,5 @@
   301.4  /*
   301.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   301.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   301.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   301.8   *
   301.9   * This code is free software; you can redistribute it and/or modify it
   302.1 --- a/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   302.2 +++ b/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   302.3 @@ -1,5 +1,5 @@
   302.4  /*
   302.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   302.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   302.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   302.8   *
   302.9   * This code is free software; you can redistribute it and/or modify it
   303.1 --- a/src/share/vm/gc_implementation/g1/ptrQueue.cpp	Thu Jan 16 14:25:51 2014 +0100
   303.2 +++ b/src/share/vm/gc_implementation/g1/ptrQueue.cpp	Wed Jan 22 17:42:23 2014 -0800
   303.3 @@ -1,5 +1,5 @@
   303.4  /*
   303.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   303.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   303.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   303.8   *
   303.9   * This code is free software; you can redistribute it and/or modify it
   304.1 --- a/src/share/vm/gc_implementation/g1/ptrQueue.hpp	Thu Jan 16 14:25:51 2014 +0100
   304.2 +++ b/src/share/vm/gc_implementation/g1/ptrQueue.hpp	Wed Jan 22 17:42:23 2014 -0800
   304.3 @@ -1,5 +1,5 @@
   304.4  /*
   304.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   304.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   304.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   304.8   *
   304.9   * This code is free software; you can redistribute it and/or modify it
   305.1 --- a/src/share/vm/gc_implementation/g1/sparsePRT.cpp	Thu Jan 16 14:25:51 2014 +0100
   305.2 +++ b/src/share/vm/gc_implementation/g1/sparsePRT.cpp	Wed Jan 22 17:42:23 2014 -0800
   305.3 @@ -1,5 +1,5 @@
   305.4  /*
   305.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   305.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   305.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   305.8   *
   305.9   * This code is free software; you can redistribute it and/or modify it
   306.1 --- a/src/share/vm/gc_implementation/g1/sparsePRT.hpp	Thu Jan 16 14:25:51 2014 +0100
   306.2 +++ b/src/share/vm/gc_implementation/g1/sparsePRT.hpp	Wed Jan 22 17:42:23 2014 -0800
   306.3 @@ -1,5 +1,5 @@
   306.4  /*
   306.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   306.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   306.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   306.8   *
   306.9   * This code is free software; you can redistribute it and/or modify it
   307.1 --- a/src/share/vm/gc_implementation/g1/vmStructs_g1.hpp	Thu Jan 16 14:25:51 2014 +0100
   307.2 +++ b/src/share/vm/gc_implementation/g1/vmStructs_g1.hpp	Wed Jan 22 17:42:23 2014 -0800
   307.3 @@ -1,5 +1,5 @@
   307.4  /*
   307.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   307.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   307.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   307.8   *
   307.9   * This code is free software; you can redistribute it and/or modify it
   308.1 --- a/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp	Thu Jan 16 14:25:51 2014 +0100
   308.2 +++ b/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp	Wed Jan 22 17:42:23 2014 -0800
   308.3 @@ -1,5 +1,5 @@
   308.4  /*
   308.5 - * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
   308.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   308.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   308.8   *
   308.9   * This code is free software; you can redistribute it and/or modify it
   309.1 --- a/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp	Thu Jan 16 14:25:51 2014 +0100
   309.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp	Wed Jan 22 17:42:23 2014 -0800
   309.3 @@ -1,5 +1,5 @@
   309.4  /*
   309.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   309.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   309.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   309.8   *
   309.9   * This code is free software; you can redistribute it and/or modify it
   310.1 --- a/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp	Thu Jan 16 14:25:51 2014 +0100
   310.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp	Wed Jan 22 17:42:23 2014 -0800
   310.3 @@ -1,5 +1,5 @@
   310.4  /*
   310.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   310.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   310.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   310.8   *
   310.9   * This code is free software; you can redistribute it and/or modify it
   311.1 --- a/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp	Thu Jan 16 14:25:51 2014 +0100
   311.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp	Wed Jan 22 17:42:23 2014 -0800
   311.3 @@ -1,5 +1,5 @@
   311.4  /*
   311.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   311.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   311.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   311.8   *
   311.9   * This code is free software; you can redistribute it and/or modify it
   312.1 --- a/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp	Thu Jan 16 14:25:51 2014 +0100
   312.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp	Wed Jan 22 17:42:23 2014 -0800
   312.3 @@ -1,5 +1,5 @@
   312.4  /*
   312.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   312.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   312.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   312.8   *
   312.9   * This code is free software; you can redistribute it and/or modify it
   313.1 --- a/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp	Thu Jan 16 14:25:51 2014 +0100
   313.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp	Wed Jan 22 17:42:23 2014 -0800
   313.3 @@ -1,5 +1,5 @@
   313.4  /*
   313.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   313.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   313.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   313.8   *
   313.9   * This code is free software; you can redistribute it and/or modify it
   314.1 --- a/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp	Thu Jan 16 14:25:51 2014 +0100
   314.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp	Wed Jan 22 17:42:23 2014 -0800
   314.3 @@ -1,6 +1,6 @@
   314.4  
   314.5  /*
   314.6 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   314.7 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   314.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   314.9   *
  314.10   * This code is free software; you can redistribute it and/or modify it
   315.1 --- a/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp	Thu Jan 16 14:25:51 2014 +0100
   315.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp	Wed Jan 22 17:42:23 2014 -0800
   315.3 @@ -1,5 +1,5 @@
   315.4  /*
   315.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   315.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   315.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   315.8   *
   315.9   * This code is free software; you can redistribute it and/or modify it
   316.1 --- a/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp	Thu Jan 16 14:25:51 2014 +0100
   316.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp	Wed Jan 22 17:42:23 2014 -0800
   316.3 @@ -1,5 +1,5 @@
   316.4  /*
   316.5 - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
   316.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   316.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   316.8   *
   316.9   * This code is free software; you can redistribute it and/or modify it
   317.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp	Thu Jan 16 14:25:51 2014 +0100
   317.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp	Wed Jan 22 17:42:23 2014 -0800
   317.3 @@ -1,5 +1,5 @@
   317.4  /*
   317.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   317.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   317.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   317.8   *
   317.9   * This code is free software; you can redistribute it and/or modify it
   318.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp	Thu Jan 16 14:25:51 2014 +0100
   318.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp	Wed Jan 22 17:42:23 2014 -0800
   318.3 @@ -1,5 +1,5 @@
   318.4  /*
   318.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   318.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   318.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   318.8   *
   318.9   * This code is free software; you can redistribute it and/or modify it
   319.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp	Thu Jan 16 14:25:51 2014 +0100
   319.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp	Wed Jan 22 17:42:23 2014 -0800
   319.3 @@ -1,5 +1,5 @@
   319.4  /*
   319.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   319.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   319.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   319.8   *
   319.9   * This code is free software; you can redistribute it and/or modify it
   320.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp	Thu Jan 16 14:25:51 2014 +0100
   320.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp	Wed Jan 22 17:42:23 2014 -0800
   320.3 @@ -1,5 +1,5 @@
   320.4  /*
   320.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   320.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   320.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   320.8   *
   320.9   * This code is free software; you can redistribute it and/or modify it
   321.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp	Thu Jan 16 14:25:51 2014 +0100
   321.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp	Wed Jan 22 17:42:23 2014 -0800
   321.3 @@ -1,5 +1,5 @@
   321.4  /*
   321.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   321.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   321.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   321.8   *
   321.9   * This code is free software; you can redistribute it and/or modify it
   322.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp	Thu Jan 16 14:25:51 2014 +0100
   322.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp	Wed Jan 22 17:42:23 2014 -0800
   322.3 @@ -1,5 +1,5 @@
   322.4  /*
   322.5 - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
   322.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   322.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   322.8   *
   322.9   * This code is free software; you can redistribute it and/or modify it
   323.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp	Thu Jan 16 14:25:51 2014 +0100
   323.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp	Wed Jan 22 17:42:23 2014 -0800
   323.3 @@ -1,5 +1,5 @@
   323.4  /*
   323.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   323.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   323.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   323.8   *
   323.9   * This code is free software; you can redistribute it and/or modify it
   324.1 --- a/src/share/vm/gc_implementation/shared/allocationStats.cpp	Thu Jan 16 14:25:51 2014 +0100
   324.2 +++ b/src/share/vm/gc_implementation/shared/allocationStats.cpp	Wed Jan 22 17:42:23 2014 -0800
   324.3 @@ -1,5 +1,5 @@
   324.4  /*
   324.5 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
   324.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   324.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   324.8   *
   324.9   * This code is free software; you can redistribute it and/or modify it
   325.1 --- a/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp	Thu Jan 16 14:25:51 2014 +0100
   325.2 +++ b/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp	Wed Jan 22 17:42:23 2014 -0800
   325.3 @@ -1,5 +1,5 @@
   325.4  /*
   325.5 - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
   325.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   325.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   325.8   *
   325.9   * This code is free software; you can redistribute it and/or modify it
   326.1 --- a/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp	Thu Jan 16 14:25:51 2014 +0100
   326.2 +++ b/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp	Wed Jan 22 17:42:23 2014 -0800
   326.3 @@ -1,5 +1,5 @@
   326.4  /*
   326.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   326.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   326.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   326.8   *
   326.9   * This code is free software; you can redistribute it and/or modify it
   327.1 --- a/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp	Thu Jan 16 14:25:51 2014 +0100
   327.2 +++ b/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp	Wed Jan 22 17:42:23 2014 -0800
   327.3 @@ -1,5 +1,5 @@
   327.4  /*
   327.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   327.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   327.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   327.8   *
   327.9   * This code is free software; you can redistribute it and/or modify it
   328.1 --- a/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp	Thu Jan 16 14:25:51 2014 +0100
   328.2 +++ b/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp	Wed Jan 22 17:42:23 2014 -0800
   328.3 @@ -1,5 +1,5 @@
   328.4  /*
   328.5 - * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
   328.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
   328.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   328.8   *
   328.9   * This code is free software; you can redistribute it and/or modify it
   329.1 --- a/src/share/vm/gc_implementation/shared/immutableSpace.cpp	Thu Jan 16 14:25:51 2014 +0100
   329.2 +++ b/src/share/vm/gc_implementation/shared/immutableSpace.cpp	Wed Jan 22 17:42:23 2014 -0800
   329.3 @@ -1,5 +1,5 @@
   329.4  /*
   329.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   329.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   329.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   329.8   *
   329.9   * This code is free software; you can redistribute it and/or modify it
   330.1 --- a/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp	Thu Jan 16 14:25:51 2014 +0100
   330.2 +++ b/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp	Wed Jan 22 17:42:23 2014 -0800
   330.3 @@ -1,5 +1,5 @@
   330.4  /*
   330.5 - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
   330.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   330.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   330.8   *
   330.9   * This code is free software; you can redistribute it and/or modify it
   331.1 --- a/src/share/vm/gc_implementation/shared/markSweep.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   331.2 +++ b/src/share/vm/gc_implementation/shared/markSweep.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   331.3 @@ -1,5 +1,5 @@
   331.4  /*
   331.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   331.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   331.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   331.8   *
   331.9   * This code is free software; you can redistribute it and/or modify it
   332.1 --- a/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp	Thu Jan 16 14:25:51 2014 +0100
   332.2 +++ b/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp	Wed Jan 22 17:42:23 2014 -0800
   332.3 @@ -1,6 +1,6 @@
   332.4  
   332.5  /*
   332.6 - * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
   332.7 + * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
   332.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   332.9   *
  332.10   * This code is free software; you can redistribute it and/or modify it
   333.1 --- a/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp	Thu Jan 16 14:25:51 2014 +0100
   333.2 +++ b/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp	Wed Jan 22 17:42:23 2014 -0800
   333.3 @@ -1,5 +1,5 @@
   333.4  /*
   333.5 - * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
   333.6 + * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
   333.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   333.8   *
   333.9   * This code is free software; you can redistribute it and/or modify it
   334.1 --- a/src/share/vm/gc_implementation/shared/mutableSpace.cpp	Thu Jan 16 14:25:51 2014 +0100
   334.2 +++ b/src/share/vm/gc_implementation/shared/mutableSpace.cpp	Wed Jan 22 17:42:23 2014 -0800
   334.3 @@ -1,5 +1,5 @@
   334.4  /*
   334.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   334.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   334.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   334.8   *
   334.9   * This code is free software; you can redistribute it and/or modify it
   335.1 --- a/src/share/vm/gc_implementation/shared/parGCAllocBuffer.hpp	Thu Jan 16 14:25:51 2014 +0100
   335.2 +++ b/src/share/vm/gc_implementation/shared/parGCAllocBuffer.hpp	Wed Jan 22 17:42:23 2014 -0800
   335.3 @@ -1,5 +1,5 @@
   335.4  /*
   335.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   335.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   335.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   335.8   *
   335.9   * This code is free software; you can redistribute it and/or modify it
   336.1 --- a/src/share/vm/gc_implementation/shared/spaceCounters.cpp	Thu Jan 16 14:25:51 2014 +0100
   336.2 +++ b/src/share/vm/gc_implementation/shared/spaceCounters.cpp	Wed Jan 22 17:42:23 2014 -0800
   336.3 @@ -1,5 +1,5 @@
   336.4  /*
   336.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   336.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   336.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   336.8   *
   336.9   * This code is free software; you can redistribute it and/or modify it
   337.1 --- a/src/share/vm/gc_implementation/shared/spaceCounters.hpp	Thu Jan 16 14:25:51 2014 +0100
   337.2 +++ b/src/share/vm/gc_implementation/shared/spaceCounters.hpp	Wed Jan 22 17:42:23 2014 -0800
   337.3 @@ -1,5 +1,5 @@
   337.4  /*
   337.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   337.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   337.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   337.8   *
   337.9   * This code is free software; you can redistribute it and/or modify it
   338.1 --- a/src/share/vm/gc_interface/collectedHeap.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   338.2 +++ b/src/share/vm/gc_interface/collectedHeap.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   338.3 @@ -1,5 +1,5 @@
   338.4  /*
   338.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   338.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   338.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   338.8   *
   338.9   * This code is free software; you can redistribute it and/or modify it
   339.1 --- a/src/share/vm/gc_interface/gcCause.cpp	Thu Jan 16 14:25:51 2014 +0100
   339.2 +++ b/src/share/vm/gc_interface/gcCause.cpp	Wed Jan 22 17:42:23 2014 -0800
   339.3 @@ -1,5 +1,5 @@
   339.4  /*
   339.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   339.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   339.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   339.8   *
   339.9   * This code is free software; you can redistribute it and/or modify it
   340.1 --- a/src/share/vm/gc_interface/gcCause.hpp	Thu Jan 16 14:25:51 2014 +0100
   340.2 +++ b/src/share/vm/gc_interface/gcCause.hpp	Wed Jan 22 17:42:23 2014 -0800
   340.3 @@ -1,5 +1,5 @@
   340.4  /*
   340.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   340.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   340.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   340.8   *
   340.9   * This code is free software; you can redistribute it and/or modify it
   341.1 --- a/src/share/vm/interpreter/bytecodeInterpreter.cpp	Thu Jan 16 14:25:51 2014 +0100
   341.2 +++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp	Wed Jan 22 17:42:23 2014 -0800
   341.3 @@ -1,5 +1,5 @@
   341.4  /*
   341.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   341.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   341.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   341.8   *
   341.9   * This code is free software; you can redistribute it and/or modify it
   342.1 --- a/src/share/vm/interpreter/cppInterpreter.hpp	Thu Jan 16 14:25:51 2014 +0100
   342.2 +++ b/src/share/vm/interpreter/cppInterpreter.hpp	Wed Jan 22 17:42:23 2014 -0800
   342.3 @@ -1,5 +1,5 @@
   342.4  /*
   342.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
   342.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   342.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   342.8   *
   342.9   * This code is free software; you can redistribute it and/or modify it
   343.1 --- a/src/share/vm/interpreter/interpreter.hpp	Thu Jan 16 14:25:51 2014 +0100
   343.2 +++ b/src/share/vm/interpreter/interpreter.hpp	Wed Jan 22 17:42:23 2014 -0800
   343.3 @@ -1,5 +1,5 @@
   343.4  /*
   343.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   343.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   343.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   343.8   *
   343.9   * This code is free software; you can redistribute it and/or modify it
   344.1 --- a/src/share/vm/interpreter/linkResolver.cpp	Thu Jan 16 14:25:51 2014 +0100
   344.2 +++ b/src/share/vm/interpreter/linkResolver.cpp	Wed Jan 22 17:42:23 2014 -0800
   344.3 @@ -300,7 +300,7 @@
   344.4    Symbol* signature = resolved_method->signature();
   344.5  
   344.6    // First check in default method array
   344.7 -  if (!resolved_method->is_abstract()  &&
   344.8 +  if (!resolved_method->is_abstract() &&
   344.9      (InstanceKlass::cast(klass())->default_methods() != NULL)) {
  344.10      int index = InstanceKlass::find_method_index(InstanceKlass::cast(klass())->default_methods(), name, signature);
  344.11      if (index >= 0 ) {
  344.12 @@ -318,7 +318,11 @@
  344.13  
  344.14  void LinkResolver::lookup_method_in_interfaces(methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS) {
  344.15    InstanceKlass *ik = InstanceKlass::cast(klass());
  344.16 -  result = methodHandle(THREAD, ik->lookup_method_in_all_interfaces(name, signature));
  344.17 +
  344.18 +  // Specify 'true' in order to skip default methods when searching the
  344.19 +  // interfaces.  Function lookup_method_in_klasses() already looked for
  344.20 +  // the method in the default methods table.
  344.21 +  result = methodHandle(THREAD, ik->lookup_method_in_all_interfaces(name, signature, true));
  344.22  }
  344.23  
  344.24  void LinkResolver::lookup_polymorphic_method(methodHandle& result,
  344.25 @@ -620,7 +624,7 @@
  344.26                                              bool check_access,
  344.27                                              bool nostatics, TRAPS) {
  344.28  
  344.29 - // check if klass is interface
  344.30 +  // check if klass is interface
  344.31    if (!resolved_klass->is_interface()) {
  344.32      ResourceMark rm(THREAD);
  344.33      char buf[200];
  344.34 @@ -1287,8 +1291,11 @@
  344.35                   resolved_klass()->external_name());
  344.36      THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), buf);
  344.37    }
  344.38 +
  344.39    // do lookup based on receiver klass
  344.40    methodHandle sel_method;
  344.41 +  // This search must match the linktime preparation search for itable initialization
  344.42 +  // to correctly enforce loader constraints for interface method inheritance
  344.43    lookup_instance_method_in_klasses(sel_method, recv_klass,
  344.44              resolved_method->name(),
  344.45              resolved_method->signature(), CHECK);
   345.1 --- a/src/share/vm/interpreter/templateInterpreter.hpp	Thu Jan 16 14:25:51 2014 +0100
   345.2 +++ b/src/share/vm/interpreter/templateInterpreter.hpp	Wed Jan 22 17:42:23 2014 -0800
   345.3 @@ -1,5 +1,5 @@
   345.4  /*
   345.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   345.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   345.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   345.8   *
   345.9   * This code is free software; you can redistribute it and/or modify it
   346.1 --- a/src/share/vm/interpreter/templateInterpreterGenerator.hpp	Thu Jan 16 14:25:51 2014 +0100
   346.2 +++ b/src/share/vm/interpreter/templateInterpreterGenerator.hpp	Wed Jan 22 17:42:23 2014 -0800
   346.3 @@ -1,5 +1,5 @@
   346.4  /*
   346.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
   346.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   346.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   346.8   *
   346.9   * This code is free software; you can redistribute it and/or modify it
   347.1 --- a/src/share/vm/interpreter/templateTable.hpp	Thu Jan 16 14:25:51 2014 +0100
   347.2 +++ b/src/share/vm/interpreter/templateTable.hpp	Wed Jan 22 17:42:23 2014 -0800
   347.3 @@ -1,5 +1,5 @@
   347.4  /*
   347.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   347.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   347.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   347.8   *
   347.9   * This code is free software; you can redistribute it and/or modify it
   348.1 --- a/src/share/vm/memory/allocation.cpp	Thu Jan 16 14:25:51 2014 +0100
   348.2 +++ b/src/share/vm/memory/allocation.cpp	Wed Jan 22 17:42:23 2014 -0800
   348.3 @@ -143,7 +143,7 @@
   348.4  void ResourceObj::set_allocation_type(address res, allocation_type type) {
   348.5      // Set allocation type in the resource object
   348.6      uintptr_t allocation = (uintptr_t)res;
   348.7 -    assert((allocation & allocation_mask) == 0, "address should be aligned to 4 bytes at least");
   348.8 +    assert((allocation & allocation_mask) == 0, err_msg("address should be aligned to 4 bytes at least: " PTR_FORMAT, res));
   348.9      assert(type <= allocation_mask, "incorrect allocation type");
  348.10      ResourceObj* resobj = (ResourceObj *)res;
  348.11      resobj->_allocation_t[0] = ~(allocation + type);
   349.1 --- a/src/share/vm/memory/binaryTreeDictionary.hpp	Thu Jan 16 14:25:51 2014 +0100
   349.2 +++ b/src/share/vm/memory/binaryTreeDictionary.hpp	Wed Jan 22 17:42:23 2014 -0800
   349.3 @@ -1,5 +1,5 @@
   349.4  /*
   349.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   349.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   349.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   349.8   *
   349.9   * This code is free software; you can redistribute it and/or modify it
   350.1 --- a/src/share/vm/memory/blockOffsetTable.cpp	Thu Jan 16 14:25:51 2014 +0100
   350.2 +++ b/src/share/vm/memory/blockOffsetTable.cpp	Wed Jan 22 17:42:23 2014 -0800
   350.3 @@ -1,5 +1,5 @@
   350.4  /*
   350.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   350.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   350.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   350.8   *
   350.9   * This code is free software; you can redistribute it and/or modify it
   351.1 --- a/src/share/vm/memory/freeBlockDictionary.cpp	Thu Jan 16 14:25:51 2014 +0100
   351.2 +++ b/src/share/vm/memory/freeBlockDictionary.cpp	Wed Jan 22 17:42:23 2014 -0800
   351.3 @@ -1,5 +1,5 @@
   351.4  /*
   351.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   351.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   351.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   351.8   *
   351.9   * This code is free software; you can redistribute it and/or modify it
   352.1 --- a/src/share/vm/memory/freeList.cpp	Thu Jan 16 14:25:51 2014 +0100
   352.2 +++ b/src/share/vm/memory/freeList.cpp	Wed Jan 22 17:42:23 2014 -0800
   352.3 @@ -1,5 +1,5 @@
   352.4  /*
   352.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   352.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   352.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   352.8   *
   352.9   * This code is free software; you can redistribute it and/or modify it
   353.1 --- a/src/share/vm/memory/freeList.hpp	Thu Jan 16 14:25:51 2014 +0100
   353.2 +++ b/src/share/vm/memory/freeList.hpp	Wed Jan 22 17:42:23 2014 -0800
   353.3 @@ -1,5 +1,5 @@
   353.4  /*
   353.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   353.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   353.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   353.8   *
   353.9   * This code is free software; you can redistribute it and/or modify it
   354.1 --- a/src/share/vm/memory/gcLocker.cpp	Thu Jan 16 14:25:51 2014 +0100
   354.2 +++ b/src/share/vm/memory/gcLocker.cpp	Wed Jan 22 17:42:23 2014 -0800
   354.3 @@ -1,5 +1,5 @@
   354.4  /*
   354.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   354.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   354.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   354.8   *
   354.9   * This code is free software; you can redistribute it and/or modify it
   355.1 --- a/src/share/vm/memory/gcLocker.hpp	Thu Jan 16 14:25:51 2014 +0100
   355.2 +++ b/src/share/vm/memory/gcLocker.hpp	Wed Jan 22 17:42:23 2014 -0800
   355.3 @@ -1,5 +1,5 @@
   355.4  /*
   355.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   355.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   355.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   355.8   *
   355.9   * This code is free software; you can redistribute it and/or modify it
   356.1 --- a/src/share/vm/memory/genRemSet.cpp	Thu Jan 16 14:25:51 2014 +0100
   356.2 +++ b/src/share/vm/memory/genRemSet.cpp	Wed Jan 22 17:42:23 2014 -0800
   356.3 @@ -1,5 +1,5 @@
   356.4  /*
   356.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   356.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   356.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   356.8   *
   356.9   * This code is free software; you can redistribute it and/or modify it
   357.1 --- a/src/share/vm/memory/genRemSet.hpp	Thu Jan 16 14:25:51 2014 +0100
   357.2 +++ b/src/share/vm/memory/genRemSet.hpp	Wed Jan 22 17:42:23 2014 -0800
   357.3 @@ -1,5 +1,5 @@
   357.4  /*
   357.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   357.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   357.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   357.8   *
   357.9   * This code is free software; you can redistribute it and/or modify it
   358.1 --- a/src/share/vm/memory/generation.hpp	Thu Jan 16 14:25:51 2014 +0100
   358.2 +++ b/src/share/vm/memory/generation.hpp	Wed Jan 22 17:42:23 2014 -0800
   358.3 @@ -1,5 +1,5 @@
   358.4  /*
   358.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   358.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   358.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   358.8   *
   358.9   * This code is free software; you can redistribute it and/or modify it
   359.1 --- a/src/share/vm/memory/generationSpec.cpp	Thu Jan 16 14:25:51 2014 +0100
   359.2 +++ b/src/share/vm/memory/generationSpec.cpp	Wed Jan 22 17:42:23 2014 -0800
   359.3 @@ -1,5 +1,5 @@
   359.4  /*
   359.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   359.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   359.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   359.8   *
   359.9   * This code is free software; you can redistribute it and/or modify it
   360.1 --- a/src/share/vm/memory/heap.hpp	Thu Jan 16 14:25:51 2014 +0100
   360.2 +++ b/src/share/vm/memory/heap.hpp	Wed Jan 22 17:42:23 2014 -0800
   360.3 @@ -1,5 +1,5 @@
   360.4  /*
   360.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   360.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   360.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   360.8   *
   360.9   * This code is free software; you can redistribute it and/or modify it
   361.1 --- a/src/share/vm/memory/iterator.cpp	Thu Jan 16 14:25:51 2014 +0100
   361.2 +++ b/src/share/vm/memory/iterator.cpp	Wed Jan 22 17:42:23 2014 -0800
   361.3 @@ -1,5 +1,5 @@
   361.4  /*
   361.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   361.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   361.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   361.8   *
   361.9   * This code is free software; you can redistribute it and/or modify it
   362.1 --- a/src/share/vm/memory/iterator.hpp	Thu Jan 16 14:25:51 2014 +0100
   362.2 +++ b/src/share/vm/memory/iterator.hpp	Wed Jan 22 17:42:23 2014 -0800
   362.3 @@ -1,5 +1,5 @@
   362.4  /*
   362.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   362.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   362.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   362.8   *
   362.9   * This code is free software; you can redistribute it and/or modify it
   363.1 --- a/src/share/vm/memory/metaspaceCounters.cpp	Thu Jan 16 14:25:51 2014 +0100
   363.2 +++ b/src/share/vm/memory/metaspaceCounters.cpp	Wed Jan 22 17:42:23 2014 -0800
   363.3 @@ -1,5 +1,5 @@
   363.4  /*
   363.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   363.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   363.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   363.8   *
   363.9   * This code is free software; you can redistribute it and/or modify it
   364.1 --- a/src/share/vm/memory/metaspaceCounters.hpp	Thu Jan 16 14:25:51 2014 +0100
   364.2 +++ b/src/share/vm/memory/metaspaceCounters.hpp	Wed Jan 22 17:42:23 2014 -0800
   364.3 @@ -1,5 +1,5 @@
   364.4  /*
   364.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   364.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   364.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   364.8   *
   364.9   * This code is free software; you can redistribute it and/or modify it
   365.1 --- a/src/share/vm/memory/sharedHeap.hpp	Thu Jan 16 14:25:51 2014 +0100
   365.2 +++ b/src/share/vm/memory/sharedHeap.hpp	Wed Jan 22 17:42:23 2014 -0800
   365.3 @@ -1,5 +1,5 @@
   365.4  /*
   365.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   365.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   365.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   365.8   *
   365.9   * This code is free software; you can redistribute it and/or modify it
   366.1 --- a/src/share/vm/memory/space.cpp	Thu Jan 16 14:25:51 2014 +0100
   366.2 +++ b/src/share/vm/memory/space.cpp	Wed Jan 22 17:42:23 2014 -0800
   366.3 @@ -1,5 +1,5 @@
   366.4  /*
   366.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   366.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   366.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   366.8   *
   366.9   * This code is free software; you can redistribute it and/or modify it
   367.1 --- a/src/share/vm/memory/space.hpp	Thu Jan 16 14:25:51 2014 +0100
   367.2 +++ b/src/share/vm/memory/space.hpp	Wed Jan 22 17:42:23 2014 -0800
   367.3 @@ -1,5 +1,5 @@
   367.4  /*
   367.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   367.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   367.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   367.8   *
   367.9   * This code is free software; you can redistribute it and/or modify it
   368.1 --- a/src/share/vm/memory/specialized_oop_closures.hpp	Thu Jan 16 14:25:51 2014 +0100
   368.2 +++ b/src/share/vm/memory/specialized_oop_closures.hpp	Wed Jan 22 17:42:23 2014 -0800
   368.3 @@ -1,5 +1,5 @@
   368.4  /*
   368.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   368.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   368.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   368.8   *
   368.9   * This code is free software; you can redistribute it and/or modify it
   369.1 --- a/src/share/vm/memory/tenuredGeneration.cpp	Thu Jan 16 14:25:51 2014 +0100
   369.2 +++ b/src/share/vm/memory/tenuredGeneration.cpp	Wed Jan 22 17:42:23 2014 -0800
   369.3 @@ -1,5 +1,5 @@
   369.4  /*
   369.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   369.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   369.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   369.8   *
   369.9   * This code is free software; you can redistribute it and/or modify it
   370.1 --- a/src/share/vm/memory/tenuredGeneration.hpp	Thu Jan 16 14:25:51 2014 +0100
   370.2 +++ b/src/share/vm/memory/tenuredGeneration.hpp	Wed Jan 22 17:42:23 2014 -0800
   370.3 @@ -1,5 +1,5 @@
   370.4  /*
   370.5 - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
   370.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   370.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   370.8   *
   370.9   * This code is free software; you can redistribute it and/or modify it
   371.1 --- a/src/share/vm/oops/arrayKlass.cpp	Thu Jan 16 14:25:51 2014 +0100
   371.2 +++ b/src/share/vm/oops/arrayKlass.cpp	Wed Jan 22 17:42:23 2014 -0800
   371.3 @@ -1,5 +1,5 @@
   371.4  /*
   371.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   371.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   371.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   371.8   *
   371.9   * This code is free software; you can redistribute it and/or modify it
   372.1 --- a/src/share/vm/oops/arrayOop.hpp	Thu Jan 16 14:25:51 2014 +0100
   372.2 +++ b/src/share/vm/oops/arrayOop.hpp	Wed Jan 22 17:42:23 2014 -0800
   372.3 @@ -1,5 +1,5 @@
   372.4  /*
   372.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   372.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   372.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   372.8   *
   372.9   * This code is free software; you can redistribute it and/or modify it
   373.1 --- a/src/share/vm/oops/compiledICHolder.cpp	Thu Jan 16 14:25:51 2014 +0100
   373.2 +++ b/src/share/vm/oops/compiledICHolder.cpp	Wed Jan 22 17:42:23 2014 -0800
   373.3 @@ -1,5 +1,5 @@
   373.4  /*
   373.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   373.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   373.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   373.8   *
   373.9   * This code is free software; you can redistribute it and/or modify it
   374.1 --- a/src/share/vm/oops/fieldInfo.hpp	Thu Jan 16 14:25:51 2014 +0100
   374.2 +++ b/src/share/vm/oops/fieldInfo.hpp	Wed Jan 22 17:42:23 2014 -0800
   374.3 @@ -1,5 +1,5 @@
   374.4  /*
   374.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   374.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   374.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   374.8   *
   374.9   * This code is free software; you can redistribute it and/or modify it
   375.1 --- a/src/share/vm/oops/generateOopMap.cpp	Thu Jan 16 14:25:51 2014 +0100
   375.2 +++ b/src/share/vm/oops/generateOopMap.cpp	Wed Jan 22 17:42:23 2014 -0800
   375.3 @@ -1863,11 +1863,8 @@
   375.4    constantTag tag = cp->tag_at(ldc.pool_index()); // idx is index in resolved_references
   375.5    BasicType       bt  = ldc.result_type();
   375.6    CellTypeState   cts;
   375.7 -  if (tag.is_klass() ||
   375.8 -      tag.is_unresolved_klass() ||
   375.9 -      tag.is_string() ||
  375.10 -      tag.is_method_handle() ||
  375.11 -      tag.is_method_type()) {
  375.12 +  if (tag.basic_type() == T_OBJECT) {
  375.13 +    assert(!tag.is_string_index() && !tag.is_klass_index(), "Unexpected index tag");
  375.14      assert(bt == T_OBJECT, "Guard is incorrect");
  375.15      cts = CellTypeState::make_line_ref(bci);
  375.16    } else {
   376.1 --- a/src/share/vm/oops/instanceClassLoaderKlass.cpp	Thu Jan 16 14:25:51 2014 +0100
   376.2 +++ b/src/share/vm/oops/instanceClassLoaderKlass.cpp	Wed Jan 22 17:42:23 2014 -0800
   376.3 @@ -1,5 +1,5 @@
   376.4  /*
   376.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   376.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   376.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   376.8   *
   376.9   * This code is free software; you can redistribute it and/or modify it
   377.1 --- a/src/share/vm/oops/instanceClassLoaderKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   377.2 +++ b/src/share/vm/oops/instanceClassLoaderKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   377.3 @@ -1,5 +1,5 @@
   377.4  /*
   377.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   377.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   377.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   377.8   *
   377.9   * This code is free software; you can redistribute it and/or modify it
   378.1 --- a/src/share/vm/oops/instanceKlass.cpp	Thu Jan 16 14:25:51 2014 +0100
   378.2 +++ b/src/share/vm/oops/instanceKlass.cpp	Wed Jan 22 17:42:23 2014 -0800
   378.3 @@ -1502,13 +1502,18 @@
   378.4    return -1;
   378.5  }
   378.6  
   378.7 -// lookup_method searches both the local methods array and all superclasses methods arrays
   378.8 +// uncached_lookup_method searches both the local class methods array and all
   378.9 +// superclasses methods arrays, skipping any overpass methods in superclasses.
  378.10  Method* InstanceKlass::uncached_lookup_method(Symbol* name, Symbol* signature) const {
  378.11    Klass* klass = const_cast<InstanceKlass*>(this);
  378.12 +  bool dont_ignore_overpasses = true;  // For the class being searched, find its overpasses.
  378.13    while (klass != NULL) {
  378.14      Method* method = InstanceKlass::cast(klass)->find_method(name, signature);
  378.15 -    if (method != NULL) return method;
  378.16 +    if ((method != NULL) && (dont_ignore_overpasses || !method->is_overpass())) {
  378.17 +      return method;
  378.18 +    }
  378.19      klass = InstanceKlass::cast(klass)->super();
  378.20 +    dont_ignore_overpasses = false;  // Ignore overpass methods in all superclasses.
  378.21    }
  378.22    return NULL;
  378.23  }
  378.24 @@ -1523,7 +1528,7 @@
  378.25    }
  378.26    // Look up interfaces
  378.27    if (m == NULL) {
  378.28 -    m = lookup_method_in_all_interfaces(name, signature);
  378.29 +    m = lookup_method_in_all_interfaces(name, signature, false);
  378.30    }
  378.31    return m;
  378.32  }
  378.33 @@ -1532,14 +1537,16 @@
  378.34  // Do NOT return private or static methods, new in JDK8 which are not externally visible
  378.35  // They should only be found in the initial InterfaceMethodRef
  378.36  Method* InstanceKlass::lookup_method_in_all_interfaces(Symbol* name,
  378.37 -                                                         Symbol* signature) const {
  378.38 +                                                       Symbol* signature,
  378.39 +                                                       bool skip_default_methods) const {
  378.40    Array<Klass*>* all_ifs = transitive_interfaces();
  378.41    int num_ifs = all_ifs->length();
  378.42    InstanceKlass *ik = NULL;
  378.43    for (int i = 0; i < num_ifs; i++) {
  378.44      ik = InstanceKlass::cast(all_ifs->at(i));
  378.45      Method* m = ik->lookup_method(name, signature);
  378.46 -    if (m != NULL && m->is_public() && !m->is_static()) {
  378.47 +    if (m != NULL && m->is_public() && !m->is_static() &&
  378.48 +        (!skip_default_methods || !m->is_default_method())) {
  378.49        return m;
  378.50      }
  378.51    }
   379.1 --- a/src/share/vm/oops/instanceKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   379.2 +++ b/src/share/vm/oops/instanceKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   379.3 @@ -525,7 +525,8 @@
   379.4  
   379.5    // lookup a method in all the interfaces that this class implements
   379.6    // (returns NULL if not found)
   379.7 -  Method* lookup_method_in_all_interfaces(Symbol* name, Symbol* signature) const;
   379.8 +  Method* lookup_method_in_all_interfaces(Symbol* name, Symbol* signature, bool skip_default_methods) const;
   379.9 +
  379.10    // lookup a method in local defaults then in all interfaces
  379.11    // (returns NULL if not found)
  379.12    Method* lookup_method_in_ordered_interfaces(Symbol* name, Symbol* signature) const;
   380.1 --- a/src/share/vm/oops/instanceMirrorKlass.cpp	Thu Jan 16 14:25:51 2014 +0100
   380.2 +++ b/src/share/vm/oops/instanceMirrorKlass.cpp	Wed Jan 22 17:42:23 2014 -0800
   380.3 @@ -1,5 +1,5 @@
   380.4  /*
   380.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   380.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   380.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   380.8   *
   380.9   * This code is free software; you can redistribute it and/or modify it
   381.1 --- a/src/share/vm/oops/instanceOop.hpp	Thu Jan 16 14:25:51 2014 +0100
   381.2 +++ b/src/share/vm/oops/instanceOop.hpp	Wed Jan 22 17:42:23 2014 -0800
   381.3 @@ -1,5 +1,5 @@
   381.4  /*
   381.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   381.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   381.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   381.8   *
   381.9   * This code is free software; you can redistribute it and/or modify it
   382.1 --- a/src/share/vm/oops/instanceRefKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   382.2 +++ b/src/share/vm/oops/instanceRefKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   382.3 @@ -1,5 +1,5 @@
   382.4  /*
   382.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   382.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   382.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   382.8   *
   382.9   * This code is free software; you can redistribute it and/or modify it
   383.1 --- a/src/share/vm/oops/klassPS.hpp	Thu Jan 16 14:25:51 2014 +0100
   383.2 +++ b/src/share/vm/oops/klassPS.hpp	Wed Jan 22 17:42:23 2014 -0800
   383.3 @@ -1,5 +1,5 @@
   383.4  /*
   383.5 - * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
   383.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   383.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   383.8   *
   383.9   * This code is free software; you can redistribute it and/or modify it
   384.1 --- a/src/share/vm/oops/klassVtable.cpp	Thu Jan 16 14:25:51 2014 +0100
   384.2 +++ b/src/share/vm/oops/klassVtable.cpp	Wed Jan 22 17:42:23 2014 -0800
   384.3 @@ -622,7 +622,7 @@
   384.4    // this check for all access permissions.
   384.5    InstanceKlass *sk = InstanceKlass::cast(super);
   384.6    if (sk->has_miranda_methods()) {
   384.7 -    if (sk->lookup_method_in_all_interfaces(name, signature) != NULL) {
   384.8 +    if (sk->lookup_method_in_all_interfaces(name, signature, false) != NULL) {
   384.9        return false;  // found a matching miranda; we do not need a new entry
  384.10      }
  384.11    }
  384.12 @@ -743,7 +743,7 @@
  384.13        if (is_miranda(im, class_methods, default_methods, super)) { // is it a miranda at all?
  384.14          InstanceKlass *sk = InstanceKlass::cast(super);
  384.15          // check if it is a duplicate of a super's miranda
  384.16 -        if (sk->lookup_method_in_all_interfaces(im->name(), im->signature()) == NULL) {
  384.17 +        if (sk->lookup_method_in_all_interfaces(im->name(), im->signature(), false) == NULL) {
  384.18            new_mirandas->append(im);
  384.19          }
  384.20          if (all_mirandas != NULL) {
  384.21 @@ -1085,6 +1085,8 @@
  384.22      Method* m = methods->at(i);
  384.23      methodHandle target;
  384.24      if (m->has_itable_index()) {
  384.25 +      // This search must match the runtime resolution, i.e. selection search for invokeinterface
  384.26 +      // to correctly enforce loader constraints for interface method inheritance
  384.27        LinkResolver::lookup_instance_method_in_klasses(target, _klass, m->name(), m->signature(), CHECK);
  384.28      }
  384.29      if (target == NULL || !target->is_public() || target->is_abstract()) {
   385.1 --- a/src/share/vm/oops/objArrayKlass.cpp	Thu Jan 16 14:25:51 2014 +0100
   385.2 +++ b/src/share/vm/oops/objArrayKlass.cpp	Wed Jan 22 17:42:23 2014 -0800
   385.3 @@ -1,5 +1,5 @@
   385.4  /*
   385.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   385.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   385.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   385.8   *
   385.9   * This code is free software; you can redistribute it and/or modify it
   386.1 --- a/src/share/vm/oops/objArrayKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   386.2 +++ b/src/share/vm/oops/objArrayKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   386.3 @@ -1,5 +1,5 @@
   386.4  /*
   386.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   386.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   386.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   386.8   *
   386.9   * This code is free software; you can redistribute it and/or modify it
   387.1 --- a/src/share/vm/oops/objArrayKlass.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   387.2 +++ b/src/share/vm/oops/objArrayKlass.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   387.3 @@ -1,5 +1,5 @@
   387.4  /*
   387.5 - * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
   387.6 + * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
   387.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   387.8   *
   387.9   * This code is free software; you can redistribute it and/or modify it
   388.1 --- a/src/share/vm/oops/oop.pcgc.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   388.2 +++ b/src/share/vm/oops/oop.pcgc.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   388.3 @@ -1,5 +1,5 @@
   388.4  /*
   388.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   388.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   388.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   388.8   *
   388.9   * This code is free software; you can redistribute it and/or modify it
   389.1 --- a/src/share/vm/oops/oop.psgc.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   389.2 +++ b/src/share/vm/oops/oop.psgc.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   389.3 @@ -1,5 +1,5 @@
   389.4  /*
   389.5 - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   389.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   389.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   389.8   *
   389.9   * This code is free software; you can redistribute it and/or modify it
   390.1 --- a/src/share/vm/oops/typeArrayKlass.cpp	Thu Jan 16 14:25:51 2014 +0100
   390.2 +++ b/src/share/vm/oops/typeArrayKlass.cpp	Wed Jan 22 17:42:23 2014 -0800
   390.3 @@ -1,5 +1,5 @@
   390.4  /*
   390.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   390.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   390.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   390.8   *
   390.9   * This code is free software; you can redistribute it and/or modify it
   391.1 --- a/src/share/vm/oops/typeArrayKlass.hpp	Thu Jan 16 14:25:51 2014 +0100
   391.2 +++ b/src/share/vm/oops/typeArrayKlass.hpp	Wed Jan 22 17:42:23 2014 -0800
   391.3 @@ -1,5 +1,5 @@
   391.4  /*
   391.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   391.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   391.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   391.8   *
   391.9   * This code is free software; you can redistribute it and/or modify it
   392.1 --- a/src/share/vm/opto/block.cpp	Thu Jan 16 14:25:51 2014 +0100
   392.2 +++ b/src/share/vm/opto/block.cpp	Wed Jan 22 17:42:23 2014 -0800
   392.3 @@ -1,5 +1,5 @@
   392.4  /*
   392.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   392.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   392.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   392.8   *
   392.9   * This code is free software; you can redistribute it and/or modify it
   393.1 --- a/src/share/vm/opto/block.hpp	Thu Jan 16 14:25:51 2014 +0100
   393.2 +++ b/src/share/vm/opto/block.hpp	Wed Jan 22 17:42:23 2014 -0800
   393.3 @@ -1,5 +1,5 @@
   393.4  /*
   393.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   393.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   393.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   393.8   *
   393.9   * This code is free software; you can redistribute it and/or modify it
   394.1 --- a/src/share/vm/opto/buildOopMap.cpp	Thu Jan 16 14:25:51 2014 +0100
   394.2 +++ b/src/share/vm/opto/buildOopMap.cpp	Wed Jan 22 17:42:23 2014 -0800
   394.3 @@ -1,5 +1,5 @@
   394.4  /*
   394.5 - * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
   394.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   394.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   394.8   *
   394.9   * This code is free software; you can redistribute it and/or modify it
   395.1 --- a/src/share/vm/opto/bytecodeInfo.cpp	Thu Jan 16 14:25:51 2014 +0100
   395.2 +++ b/src/share/vm/opto/bytecodeInfo.cpp	Wed Jan 22 17:42:23 2014 -0800
   395.3 @@ -1,5 +1,5 @@
   395.4  /*
   395.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   395.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   395.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   395.8   *
   395.9   * This code is free software; you can redistribute it and/or modify it
  395.10 @@ -50,7 +50,10 @@
  395.11    _subtrees(c->comp_arena(), 2, 0, NULL),
  395.12    _msg(NULL)
  395.13  {
  395.14 -  NOT_PRODUCT(_count_inlines = 0;)
  395.15 +#ifndef PRODUCT
  395.16 +  _count_inlines = 0;
  395.17 +  _forced_inline = false;
  395.18 +#endif
  395.19    if (_caller_jvms != NULL) {
  395.20      // Keep a private copy of the caller_jvms:
  395.21      _caller_jvms = new (C) JVMState(caller_jvms->method(), caller_tree->caller_jvms());
  395.22 @@ -81,7 +84,10 @@
  395.23    _count_inline_bcs(method()->code_size()),
  395.24    _msg(NULL)
  395.25  {
  395.26 -  NOT_PRODUCT(_count_inlines = 0;)
  395.27 +#ifndef PRODUCT
  395.28 +  _count_inlines = 0;
  395.29 +  _forced_inline = false;
  395.30 +#endif
  395.31    assert(!UseOldInlining, "do not use for old stuff");
  395.32  }
  395.33  
  395.34 @@ -128,9 +134,19 @@
  395.35        tty->print_cr("Inlined method is hot: ");
  395.36      }
  395.37      set_msg("force inline by CompilerOracle");
  395.38 +    _forced_inline = true;
  395.39      return true;
  395.40    }
  395.41  
  395.42 +#ifndef PRODUCT
  395.43 +  int inline_depth = inline_level()+1;
  395.44 +  if (ciReplay::should_inline(C->replay_inline_data(), callee_method, caller_bci, inline_depth)) {
  395.45 +    set_msg("force inline by ciReplay");
  395.46 +    _forced_inline = true;
  395.47 +    return true;
  395.48 +  }
  395.49 +#endif
  395.50 +
  395.51    int size = callee_method->code_size_for_inlining();
  395.52  
  395.53    // Check for too many throws (and not too huge)
  395.54 @@ -264,6 +280,18 @@
  395.55    }
  395.56  
  395.57  #ifndef PRODUCT
  395.58 +  int caller_bci = jvms->bci();
  395.59 +  int inline_depth = inline_level()+1;
  395.60 +  if (ciReplay::should_inline(C->replay_inline_data(), callee_method, caller_bci, inline_depth)) {
  395.61 +    set_msg("force inline by ciReplay");
  395.62 +    return false;
  395.63 +  }
  395.64 +
  395.65 +  if (ciReplay::should_not_inline(C->replay_inline_data(), callee_method, caller_bci, inline_depth)) {
  395.66 +    set_msg("disallowed by ciReplay");
  395.67 +    return true;
  395.68 +  }
  395.69 +
  395.70    if (ciReplay::should_not_inline(callee_method)) {
  395.71      set_msg("disallowed by ciReplay");
  395.72      return true;
  395.73 @@ -343,6 +371,7 @@
  395.74      }
  395.75    }
  395.76  
  395.77 +  _forced_inline = false; // Reset
  395.78    if (!should_inline(callee_method, caller_method, caller_bci, profile,
  395.79                       wci_result)) {
  395.80      return false;
  395.81 @@ -373,10 +402,10 @@
  395.82  
  395.83      if ((!UseInterpreter || CompileTheWorld) &&
  395.84          is_init_with_ea(callee_method, caller_method, C)) {
  395.85 -
  395.86        // Escape Analysis stress testing when running Xcomp or CTW:
  395.87        // inline constructors even if they are not reached.
  395.88 -
  395.89 +    } else if (forced_inline()) {
  395.90 +      // Inlining was forced by CompilerOracle or ciReplay
  395.91      } else if (profile.count() == 0) {
  395.92        // don't inline unreached call sites
  395.93         set_msg("call site not reached");
  395.94 @@ -700,12 +729,28 @@
  395.95    return iltp;
  395.96  }
  395.97  
  395.98 +// Count number of nodes in this subtree
  395.99 +int InlineTree::count() const {
 395.100 +  int result = 1;
 395.101 +  for (int i = 0 ; i < _subtrees.length(); i++) {
 395.102 +    result += _subtrees.at(i)->count();
 395.103 +  }
 395.104 +  return result;
 395.105 +}
 395.106 +
 395.107 +void InlineTree::dump_replay_data(outputStream* out) {
 395.108 +  out->print(" %d %d ", inline_level(), caller_bci());
 395.109 +  method()->dump_name_as_ascii(out);
 395.110 +  for (int i = 0 ; i < _subtrees.length(); i++) {
 395.111 +    _subtrees.at(i)->dump_replay_data(out);
 395.112 +  }
 395.113 +}
 395.114  
 395.115  
 395.116  #ifndef PRODUCT
 395.117  void InlineTree::print_impl(outputStream* st, int indent) const {
 395.118    for (int i = 0; i < indent; i++) st->print(" ");
 395.119 -  st->print(" @ %d ", caller_bci());
 395.120 +  st->print(" @ %d", caller_bci());
 395.121    method()->print_short_name(st);
 395.122    st->cr();
 395.123  
   396.1 --- a/src/share/vm/opto/c2compiler.cpp	Thu Jan 16 14:25:51 2014 +0100
   396.2 +++ b/src/share/vm/opto/c2compiler.cpp	Wed Jan 22 17:42:23 2014 -0800
   396.3 @@ -1,5 +1,5 @@
   396.4  /*
   396.5 - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
   396.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   396.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   396.8   *
   396.9   * This code is free software; you can redistribute it and/or modify it
   397.1 --- a/src/share/vm/opto/c2compiler.hpp	Thu Jan 16 14:25:51 2014 +0100
   397.2 +++ b/src/share/vm/opto/c2compiler.hpp	Wed Jan 22 17:42:23 2014 -0800
   397.3 @@ -1,5 +1,5 @@
   397.4  /*
   397.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   397.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   397.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   397.8   *
   397.9   * This code is free software; you can redistribute it and/or modify it
   398.1 --- a/src/share/vm/opto/callGenerator.cpp	Thu Jan 16 14:25:51 2014 +0100
   398.2 +++ b/src/share/vm/opto/callGenerator.cpp	Wed Jan 22 17:42:23 2014 -0800
   398.3 @@ -1,5 +1,5 @@
   398.4  /*
   398.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   398.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   398.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   398.8   *
   398.9   * This code is free software; you can redistribute it and/or modify it
   399.1 --- a/src/share/vm/opto/callnode.cpp	Thu Jan 16 14:25:51 2014 +0100
   399.2 +++ b/src/share/vm/opto/callnode.cpp	Wed Jan 22 17:42:23 2014 -0800
   399.3 @@ -1,5 +1,5 @@
   399.4  /*
   399.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   399.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   399.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   399.8   *
   399.9   * This code is free software; you can redistribute it and/or modify it
   400.1 --- a/src/share/vm/opto/cfgnode.cpp	Thu Jan 16 14:25:51 2014 +0100
   400.2 +++ b/src/share/vm/opto/cfgnode.cpp	Wed Jan 22 17:42:23 2014 -0800
   400.3 @@ -1018,7 +1018,7 @@
   400.4            !jtkp->klass_is_exact() && // Keep exact interface klass (6894807)
   400.5            ttkp->is_loaded() && !ttkp->klass()->is_interface() ) {
   400.6          assert(ft == ttkp->cast_to_ptr_type(jtkp->ptr()) ||
   400.7 -               ft->isa_narrowoop() && ft->make_ptr() == ttkp->cast_to_ptr_type(jtkp->ptr()), "");
   400.8 +               ft->isa_narrowklass() && ft->make_ptr() == ttkp->cast_to_ptr_type(jtkp->ptr()), "");
   400.9          jt = ft;
  400.10        }
  400.11      }
   401.1 --- a/src/share/vm/opto/chaitin.cpp	Thu Jan 16 14:25:51 2014 +0100
   401.2 +++ b/src/share/vm/opto/chaitin.cpp	Wed Jan 22 17:42:23 2014 -0800
   401.3 @@ -1682,9 +1682,21 @@
   401.4        // (where top() node is placed).
   401.5        base->init_req(0, _cfg.get_root_node());
   401.6        Block *startb = _cfg.get_block_for_node(C->top());
   401.7 -      startb->insert_node(base, startb->find_node(C->top()));
   401.8 +      uint node_pos = startb->find_node(C->top());
   401.9 +      startb->insert_node(base, node_pos);
  401.10        _cfg.map_node_to_block(base, startb);
  401.11        assert(_lrg_map.live_range_id(base) == 0, "should not have LRG yet");
  401.12 +
  401.13 +      // The loadConP0 might have projection nodes depending on architecture
  401.14 +      // Add the projection nodes to the CFG
  401.15 +      for (DUIterator_Fast imax, i = base->fast_outs(imax); i < imax; i++) {
  401.16 +        Node* use = base->fast_out(i);
  401.17 +        if (use->is_MachProj()) {
  401.18 +          startb->insert_node(use, ++node_pos);
  401.19 +          _cfg.map_node_to_block(use, startb);
  401.20 +          new_lrg(use, maxlrg++);
  401.21 +        }
  401.22 +      }
  401.23      }
  401.24      if (_lrg_map.live_range_id(base) == 0) {
  401.25        new_lrg(base, maxlrg++);
   402.1 --- a/src/share/vm/opto/chaitin.hpp	Thu Jan 16 14:25:51 2014 +0100
   402.2 +++ b/src/share/vm/opto/chaitin.hpp	Wed Jan 22 17:42:23 2014 -0800
   402.3 @@ -1,5 +1,5 @@
   402.4  /*
   402.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   402.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   402.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   402.8   *
   402.9   * This code is free software; you can redistribute it and/or modify it
   403.1 --- a/src/share/vm/opto/classes.cpp	Thu Jan 16 14:25:51 2014 +0100
   403.2 +++ b/src/share/vm/opto/classes.cpp	Wed Jan 22 17:42:23 2014 -0800
   403.3 @@ -1,5 +1,5 @@
   403.4  /*
   403.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   403.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   403.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   403.8   *
   403.9   * This code is free software; you can redistribute it and/or modify it
   404.1 --- a/src/share/vm/opto/classes.hpp	Thu Jan 16 14:25:51 2014 +0100
   404.2 +++ b/src/share/vm/opto/classes.hpp	Wed Jan 22 17:42:23 2014 -0800
   404.3 @@ -1,5 +1,5 @@
   404.4  /*
   404.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   404.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   404.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   404.8   *
   404.9   * This code is free software; you can redistribute it and/or modify it
   405.1 --- a/src/share/vm/opto/coalesce.hpp	Thu Jan 16 14:25:51 2014 +0100
   405.2 +++ b/src/share/vm/opto/coalesce.hpp	Wed Jan 22 17:42:23 2014 -0800
   405.3 @@ -1,5 +1,5 @@
   405.4  /*
   405.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   405.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   405.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   405.8   *
   405.9   * This code is free software; you can redistribute it and/or modify it
   406.1 --- a/src/share/vm/opto/compile.cpp	Thu Jan 16 14:25:51 2014 +0100
   406.2 +++ b/src/share/vm/opto/compile.cpp	Wed Jan 22 17:42:23 2014 -0800
   406.3 @@ -25,6 +25,7 @@
   406.4  #include "precompiled.hpp"
   406.5  #include "asm/macroAssembler.hpp"
   406.6  #include "asm/macroAssembler.inline.hpp"
   406.7 +#include "ci/ciReplay.hpp"
   406.8  #include "classfile/systemDictionary.hpp"
   406.9  #include "code/exceptionHandlerTable.hpp"
  406.10  #include "code/nmethod.hpp"
  406.11 @@ -651,6 +652,7 @@
  406.12                    _printer(IdealGraphPrinter::printer()),
  406.13  #endif
  406.14                    _congraph(NULL),
  406.15 +                  _replay_inline_data(NULL),
  406.16                    _late_inlines(comp_arena(), 2, 0, NULL),
  406.17                    _string_late_inlines(comp_arena(), 2, 0, NULL),
  406.18                    _boxing_late_inlines(comp_arena(), 2, 0, NULL),
  406.19 @@ -684,6 +686,10 @@
  406.20    }
  406.21    set_print_assembly(print_opto_assembly);
  406.22    set_parsed_irreducible_loop(false);
  406.23 +
  406.24 +  if (method()->has_option("ReplayInline")) {
  406.25 +    _replay_inline_data = ciReplay::load_inline_data(method(), entry_bci(), ci_env->comp_level());
  406.26 +  }
  406.27  #endif
  406.28    set_print_inlining(PrintInlining || method()->has_option("PrintInlining") NOT_PRODUCT( || PrintOptoInlining));
  406.29    set_print_intrinsics(PrintIntrinsics || method()->has_option("PrintIntrinsics"));
  406.30 @@ -853,6 +859,15 @@
  406.31  #endif
  406.32  
  406.33    NOT_PRODUCT( verify_barriers(); )
  406.34 +
  406.35 +  // Dump compilation data to replay it.
  406.36 +  if (method()->has_option("DumpReplay")) {
  406.37 +    env()->dump_replay_data(_compile_id);
  406.38 +  }
  406.39 +  if (method()->has_option("DumpInline") && (ilt() != NULL)) {
  406.40 +    env()->dump_inline_data(_compile_id);
  406.41 +  }
  406.42 +
  406.43    // Now that we know the size of all the monitors we can add a fixed slot
  406.44    // for the original deopt pc.
  406.45  
  406.46 @@ -947,6 +962,7 @@
  406.47      _dead_node_list(comp_arena()),
  406.48      _dead_node_count(0),
  406.49      _congraph(NULL),
  406.50 +    _replay_inline_data(NULL),
  406.51      _number_of_mh_late_inlines(0),
  406.52      _inlining_progress(false),
  406.53      _inlining_incrementally(false),
  406.54 @@ -3786,6 +3802,16 @@
  406.55    }
  406.56  }
  406.57  
  406.58 +// Dump inlining replay data to the stream.
  406.59 +// Don't change thread state and acquire any locks.
  406.60 +void Compile::dump_inline_data(outputStream* out) {
  406.61 +  InlineTree* inl_tree = ilt();
  406.62 +  if (inl_tree != NULL) {
  406.63 +    out->print(" inline %d", inl_tree->count());
  406.64 +    inl_tree->dump_replay_data(out);
  406.65 +  }
  406.66 +}
  406.67 +
  406.68  int Compile::cmp_expensive_nodes(Node* n1, Node* n2) {
  406.69    if (n1->Opcode() < n2->Opcode())      return -1;
  406.70    else if (n1->Opcode() > n2->Opcode()) return 1;
   407.1 --- a/src/share/vm/opto/compile.hpp	Thu Jan 16 14:25:51 2014 +0100
   407.2 +++ b/src/share/vm/opto/compile.hpp	Wed Jan 22 17:42:23 2014 -0800
   407.3 @@ -431,6 +431,8 @@
   407.4    // Are we within a PreserveJVMState block?
   407.5    int _preserve_jvm_state;
   407.6  
   407.7 +  void* _replay_inline_data; // Pointer to data loaded from file
   407.8 +
   407.9   public:
  407.10  
  407.11    outputStream* print_inlining_stream() const {
  407.12 @@ -465,6 +467,11 @@
  407.13      print_inlining_stream()->print(ss.as_string());
  407.14    }
  407.15  
  407.16 +  void* replay_inline_data() const { return _replay_inline_data; }
  407.17 +
  407.18 +  // Dump inlining replay data to the stream.
  407.19 +  void dump_inline_data(outputStream* out);
  407.20 +
  407.21   private:
  407.22    // Matching, CFG layout, allocation, code generation
  407.23    PhaseCFG*             _cfg;                   // Results of CFG finding
   408.1 --- a/src/share/vm/opto/connode.cpp	Thu Jan 16 14:25:51 2014 +0100
   408.2 +++ b/src/share/vm/opto/connode.cpp	Wed Jan 22 17:42:23 2014 -0800
   408.3 @@ -1,5 +1,5 @@
   408.4  /*
   408.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   408.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   408.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   408.8   *
   408.9   * This code is free software; you can redistribute it and/or modify it
   409.1 --- a/src/share/vm/opto/doCall.cpp	Thu Jan 16 14:25:51 2014 +0100
   409.2 +++ b/src/share/vm/opto/doCall.cpp	Wed Jan 22 17:42:23 2014 -0800
   409.3 @@ -1,5 +1,5 @@
   409.4  /*
   409.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   409.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   409.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   409.8   *
   409.9   * This code is free software; you can redistribute it and/or modify it
   410.1 --- a/src/share/vm/opto/domgraph.cpp	Thu Jan 16 14:25:51 2014 +0100
   410.2 +++ b/src/share/vm/opto/domgraph.cpp	Wed Jan 22 17:42:23 2014 -0800
   410.3 @@ -1,5 +1,5 @@
   410.4  /*
   410.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   410.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   410.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   410.8   *
   410.9   * This code is free software; you can redistribute it and/or modify it
   411.1 --- a/src/share/vm/opto/escape.cpp	Thu Jan 16 14:25:51 2014 +0100
   411.2 +++ b/src/share/vm/opto/escape.cpp	Wed Jan 22 17:42:23 2014 -0800
   411.3 @@ -1579,9 +1579,20 @@
   411.4          jobj->set_scalar_replaceable(false);
   411.5          return;
   411.6        }
   411.7 +      // 2. An object is not scalar replaceable if the field into which it is
   411.8 +      // stored has multiple bases one of which is null.
   411.9 +      if (field->base_count() > 1) {
  411.10 +        for (BaseIterator i(field); i.has_next(); i.next()) {
  411.11 +          PointsToNode* base = i.get();
  411.12 +          if (base == null_obj) {
  411.13 +            jobj->set_scalar_replaceable(false);
  411.14 +            return;
  411.15 +          }
  411.16 +        }
  411.17 +      }
  411.18      }
  411.19      assert(use->is_Field() || use->is_LocalVar(), "sanity");
  411.20 -    // 2. An object is not scalar replaceable if it is merged with other objects.
  411.21 +    // 3. An object is not scalar replaceable if it is merged with other objects.
  411.22      for (EdgeIterator j(use); j.has_next(); j.next()) {
  411.23        PointsToNode* ptn = j.get();
  411.24        if (ptn->is_JavaObject() && ptn != jobj) {
  411.25 @@ -1600,13 +1611,13 @@
  411.26      FieldNode* field = j.get()->as_Field();
  411.27      int offset = field->as_Field()->offset();
  411.28  
  411.29 -    // 3. An object is not scalar replaceable if it has a field with unknown
  411.30 +    // 4. An object is not scalar replaceable if it has a field with unknown
  411.31      // offset (array's element is accessed in loop).
  411.32      if (offset == Type::OffsetBot) {
  411.33        jobj->set_scalar_replaceable(false);
  411.34        return;
  411.35      }
  411.36 -    // 4. Currently an object is not scalar replaceable if a LoadStore node
  411.37 +    // 5. Currently an object is not scalar replaceable if a LoadStore node
  411.38      // access its field since the field value is unknown after it.
  411.39      //
  411.40      Node* n = field->ideal_node();
  411.41 @@ -1617,7 +1628,7 @@
  411.42        }
  411.43      }
  411.44  
  411.45 -    // 5. Or the address may point to more then one object. This may produce
  411.46 +    // 6. Or the address may point to more then one object. This may produce
  411.47      // the false positive result (set not scalar replaceable)
  411.48      // since the flow-insensitive escape analysis can't separate
  411.49      // the case when stores overwrite the field's value from the case
   412.1 --- a/src/share/vm/opto/gcm.cpp	Thu Jan 16 14:25:51 2014 +0100
   412.2 +++ b/src/share/vm/opto/gcm.cpp	Wed Jan 22 17:42:23 2014 -0800
   412.3 @@ -1,5 +1,5 @@
   412.4  /*
   412.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   412.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   412.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   412.8   *
   412.9   * This code is free software; you can redistribute it and/or modify it
   413.1 --- a/src/share/vm/opto/generateOptoStub.cpp	Thu Jan 16 14:25:51 2014 +0100
   413.2 +++ b/src/share/vm/opto/generateOptoStub.cpp	Wed Jan 22 17:42:23 2014 -0800
   413.3 @@ -1,5 +1,5 @@
   413.4  /*
   413.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   413.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   413.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   413.8   *
   413.9   * This code is free software; you can redistribute it and/or modify it
   414.1 --- a/src/share/vm/opto/graphKit.cpp	Thu Jan 16 14:25:51 2014 +0100
   414.2 +++ b/src/share/vm/opto/graphKit.cpp	Wed Jan 22 17:42:23 2014 -0800
   414.3 @@ -1,5 +1,5 @@
   414.4  /*
   414.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   414.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   414.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   414.8   *
   414.9   * This code is free software; you can redistribute it and/or modify it
   415.1 --- a/src/share/vm/opto/graphKit.hpp	Thu Jan 16 14:25:51 2014 +0100
   415.2 +++ b/src/share/vm/opto/graphKit.hpp	Wed Jan 22 17:42:23 2014 -0800
   415.3 @@ -1,5 +1,5 @@
   415.4  /*
   415.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   415.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   415.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   415.8   *
   415.9   * This code is free software; you can redistribute it and/or modify it
   416.1 --- a/src/share/vm/opto/idealKit.cpp	Thu Jan 16 14:25:51 2014 +0100
   416.2 +++ b/src/share/vm/opto/idealKit.cpp	Wed Jan 22 17:42:23 2014 -0800
   416.3 @@ -1,5 +1,5 @@
   416.4  /*
   416.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   416.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   416.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   416.8   *
   416.9   * This code is free software; you can redistribute it and/or modify it
   417.1 --- a/src/share/vm/opto/idealKit.hpp	Thu Jan 16 14:25:51 2014 +0100
   417.2 +++ b/src/share/vm/opto/idealKit.hpp	Wed Jan 22 17:42:23 2014 -0800
   417.3 @@ -1,5 +1,5 @@
   417.4  /*
   417.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   417.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   417.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   417.8   *
   417.9   * This code is free software; you can redistribute it and/or modify it
   418.1 --- a/src/share/vm/opto/ifg.cpp	Thu Jan 16 14:25:51 2014 +0100
   418.2 +++ b/src/share/vm/opto/ifg.cpp	Wed Jan 22 17:42:23 2014 -0800
   418.3 @@ -1,5 +1,5 @@
   418.4  /*
   418.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   418.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   418.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   418.8   *
   418.9   * This code is free software; you can redistribute it and/or modify it
   419.1 --- a/src/share/vm/opto/ifnode.cpp	Thu Jan 16 14:25:51 2014 +0100
   419.2 +++ b/src/share/vm/opto/ifnode.cpp	Wed Jan 22 17:42:23 2014 -0800
   419.3 @@ -1,5 +1,5 @@
   419.4  /*
   419.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   419.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   419.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   419.8   *
   419.9   * This code is free software; you can redistribute it and/or modify it
   420.1 --- a/src/share/vm/opto/lcm.cpp	Thu Jan 16 14:25:51 2014 +0100
   420.2 +++ b/src/share/vm/opto/lcm.cpp	Wed Jan 22 17:42:23 2014 -0800
   420.3 @@ -1,5 +1,5 @@
   420.4  /*
   420.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   420.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   420.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   420.8   *
   420.9   * This code is free software; you can redistribute it and/or modify it
   421.1 --- a/src/share/vm/opto/live.cpp	Thu Jan 16 14:25:51 2014 +0100
   421.2 +++ b/src/share/vm/opto/live.cpp	Wed Jan 22 17:42:23 2014 -0800
   421.3 @@ -1,5 +1,5 @@
   421.4  /*
   421.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   421.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   421.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   421.8   *
   421.9   * This code is free software; you can redistribute it and/or modify it
   422.1 --- a/src/share/vm/opto/live.hpp	Thu Jan 16 14:25:51 2014 +0100
   422.2 +++ b/src/share/vm/opto/live.hpp	Wed Jan 22 17:42:23 2014 -0800
   422.3 @@ -1,5 +1,5 @@
   422.4  /*
   422.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   422.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   422.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   422.8   *
   422.9   * This code is free software; you can redistribute it and/or modify it
   423.1 --- a/src/share/vm/opto/loopPredicate.cpp	Thu Jan 16 14:25:51 2014 +0100
   423.2 +++ b/src/share/vm/opto/loopPredicate.cpp	Wed Jan 22 17:42:23 2014 -0800
   423.3 @@ -1,5 +1,5 @@
   423.4  /*
   423.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
   423.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   423.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   423.8   *
   423.9   * This code is free software; you can redistribute it and/or modify it
   424.1 --- a/src/share/vm/opto/loopTransform.cpp	Thu Jan 16 14:25:51 2014 +0100
   424.2 +++ b/src/share/vm/opto/loopTransform.cpp	Wed Jan 22 17:42:23 2014 -0800
   424.3 @@ -1,5 +1,5 @@
   424.4  /*
   424.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   424.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   424.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   424.8   *
   424.9   * This code is free software; you can redistribute it and/or modify it
   425.1 --- a/src/share/vm/opto/loopnode.hpp	Thu Jan 16 14:25:51 2014 +0100
   425.2 +++ b/src/share/vm/opto/loopnode.hpp	Wed Jan 22 17:42:23 2014 -0800
   425.3 @@ -1,5 +1,5 @@
   425.4  /*
   425.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   425.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   425.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   425.8   *
   425.9   * This code is free software; you can redistribute it and/or modify it
   426.1 --- a/src/share/vm/opto/loopopts.cpp	Thu Jan 16 14:25:51 2014 +0100
   426.2 +++ b/src/share/vm/opto/loopopts.cpp	Wed Jan 22 17:42:23 2014 -0800
   426.3 @@ -1,5 +1,5 @@
   426.4  /*
   426.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   426.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   426.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   426.8   *
   426.9   * This code is free software; you can redistribute it and/or modify it
   427.1 --- a/src/share/vm/opto/macro.cpp	Thu Jan 16 14:25:51 2014 +0100
   427.2 +++ b/src/share/vm/opto/macro.cpp	Wed Jan 22 17:42:23 2014 -0800
   427.3 @@ -1,5 +1,5 @@
   427.4  /*
   427.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   427.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   427.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   427.8   *
   427.9   * This code is free software; you can redistribute it and/or modify it
   428.1 --- a/src/share/vm/opto/macro.hpp	Thu Jan 16 14:25:51 2014 +0100
   428.2 +++ b/src/share/vm/opto/macro.hpp	Wed Jan 22 17:42:23 2014 -0800
   428.3 @@ -1,5 +1,5 @@
   428.4  /*
   428.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   428.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   428.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   428.8   *
   428.9   * This code is free software; you can redistribute it and/or modify it
   429.1 --- a/src/share/vm/opto/matcher.hpp	Thu Jan 16 14:25:51 2014 +0100
   429.2 +++ b/src/share/vm/opto/matcher.hpp	Wed Jan 22 17:42:23 2014 -0800
   429.3 @@ -1,5 +1,5 @@
   429.4  /*
   429.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   429.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   429.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   429.8   *
   429.9   * This code is free software; you can redistribute it and/or modify it
   430.1 --- a/src/share/vm/opto/memnode.cpp	Thu Jan 16 14:25:51 2014 +0100
   430.2 +++ b/src/share/vm/opto/memnode.cpp	Wed Jan 22 17:42:23 2014 -0800
   430.3 @@ -1,5 +1,5 @@
   430.4  /*
   430.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   430.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   430.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   430.8   *
   430.9   * This code is free software; you can redistribute it and/or modify it
   431.1 --- a/src/share/vm/opto/memnode.hpp	Thu Jan 16 14:25:51 2014 +0100
   431.2 +++ b/src/share/vm/opto/memnode.hpp	Wed Jan 22 17:42:23 2014 -0800
   431.3 @@ -1,5 +1,5 @@
   431.4  /*
   431.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   431.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   431.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   431.8   *
   431.9   * This code is free software; you can redistribute it and/or modify it
   432.1 --- a/src/share/vm/opto/multnode.cpp	Thu Jan 16 14:25:51 2014 +0100
   432.2 +++ b/src/share/vm/opto/multnode.cpp	Wed Jan 22 17:42:23 2014 -0800
   432.3 @@ -1,5 +1,5 @@
   432.4  /*
   432.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   432.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   432.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   432.8   *
   432.9   * This code is free software; you can redistribute it and/or modify it
   433.1 --- a/src/share/vm/opto/multnode.hpp	Thu Jan 16 14:25:51 2014 +0100
   433.2 +++ b/src/share/vm/opto/multnode.hpp	Wed Jan 22 17:42:23 2014 -0800
   433.3 @@ -1,5 +1,5 @@
   433.4  /*
   433.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   433.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   433.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   433.8   *
   433.9   * This code is free software; you can redistribute it and/or modify it
   434.1 --- a/src/share/vm/opto/node.cpp	Thu Jan 16 14:25:51 2014 +0100
   434.2 +++ b/src/share/vm/opto/node.cpp	Wed Jan 22 17:42:23 2014 -0800
   434.3 @@ -1,5 +1,5 @@
   434.4  /*
   434.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   434.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   434.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   434.8   *
   434.9   * This code is free software; you can redistribute it and/or modify it
   435.1 --- a/src/share/vm/opto/optoreg.hpp	Thu Jan 16 14:25:51 2014 +0100
   435.2 +++ b/src/share/vm/opto/optoreg.hpp	Wed Jan 22 17:42:23 2014 -0800
   435.3 @@ -1,5 +1,5 @@
   435.4  /*
   435.5 - * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
   435.6 + * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
   435.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   435.8   *
   435.9   * This code is free software; you can redistribute it and/or modify it
   436.1 --- a/src/share/vm/opto/output.cpp	Thu Jan 16 14:25:51 2014 +0100
   436.2 +++ b/src/share/vm/opto/output.cpp	Wed Jan 22 17:42:23 2014 -0800
   436.3 @@ -1,5 +1,5 @@
   436.4  /*
   436.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   436.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   436.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   436.8   *
   436.9   * This code is free software; you can redistribute it and/or modify it
   437.1 --- a/src/share/vm/opto/output.hpp	Thu Jan 16 14:25:51 2014 +0100
   437.2 +++ b/src/share/vm/opto/output.hpp	Wed Jan 22 17:42:23 2014 -0800
   437.3 @@ -1,5 +1,5 @@
   437.4  /*
   437.5 - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
   437.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   437.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   437.8   *
   437.9   * This code is free software; you can redistribute it and/or modify it
   438.1 --- a/src/share/vm/opto/parse.hpp	Thu Jan 16 14:25:51 2014 +0100
   438.2 +++ b/src/share/vm/opto/parse.hpp	Wed Jan 22 17:42:23 2014 -0800
   438.3 @@ -1,5 +1,5 @@
   438.4  /*
   438.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   438.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   438.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   438.8   *
   438.9   * This code is free software; you can redistribute it and/or modify it
  438.10 @@ -141,6 +141,13 @@
  438.11    GrowableArray<InlineTree*> subtrees() { return _subtrees; }
  438.12  
  438.13    void print_value_on(outputStream* st) const PRODUCT_RETURN;
  438.14 +
  438.15 +  bool        _forced_inline;     // Inlining was forced by CompilerOracle or ciReplay
  438.16 +  bool        forced_inline()     const { return _forced_inline; }
  438.17 +  // Count number of nodes in this subtree
  438.18 +  int         count() const;
  438.19 +  // Dump inlining replay data to the stream.
  438.20 +  void dump_replay_data(outputStream* out);
  438.21  };
  438.22  
  438.23  
   439.1 --- a/src/share/vm/opto/parse1.cpp	Thu Jan 16 14:25:51 2014 +0100
   439.2 +++ b/src/share/vm/opto/parse1.cpp	Wed Jan 22 17:42:23 2014 -0800
   439.3 @@ -1,5 +1,5 @@
   439.4  /*
   439.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   439.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   439.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   439.8   *
   439.9   * This code is free software; you can redistribute it and/or modify it
   440.1 --- a/src/share/vm/opto/parse2.cpp	Thu Jan 16 14:25:51 2014 +0100
   440.2 +++ b/src/share/vm/opto/parse2.cpp	Wed Jan 22 17:42:23 2014 -0800
   440.3 @@ -1,5 +1,5 @@
   440.4  /*
   440.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   440.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   440.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   440.8   *
   440.9   * This code is free software; you can redistribute it and/or modify it
   441.1 --- a/src/share/vm/opto/phase.cpp	Thu Jan 16 14:25:51 2014 +0100
   441.2 +++ b/src/share/vm/opto/phase.cpp	Wed Jan 22 17:42:23 2014 -0800
   441.3 @@ -1,5 +1,5 @@
   441.4  /*
   441.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   441.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   441.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   441.8   *
   441.9   * This code is free software; you can redistribute it and/or modify it
   442.1 --- a/src/share/vm/opto/phase.hpp	Thu Jan 16 14:25:51 2014 +0100
   442.2 +++ b/src/share/vm/opto/phase.hpp	Wed Jan 22 17:42:23 2014 -0800
   442.3 @@ -1,5 +1,5 @@
   442.4  /*
   442.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   442.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   442.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   442.8   *
   442.9   * This code is free software; you can redistribute it and/or modify it
   443.1 --- a/src/share/vm/opto/phaseX.cpp	Thu Jan 16 14:25:51 2014 +0100
   443.2 +++ b/src/share/vm/opto/phaseX.cpp	Wed Jan 22 17:42:23 2014 -0800
   443.3 @@ -1,5 +1,5 @@
   443.4  /*
   443.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   443.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   443.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   443.8   *
   443.9   * This code is free software; you can redistribute it and/or modify it
   444.1 --- a/src/share/vm/opto/phaseX.hpp	Thu Jan 16 14:25:51 2014 +0100
   444.2 +++ b/src/share/vm/opto/phaseX.hpp	Wed Jan 22 17:42:23 2014 -0800
   444.3 @@ -1,5 +1,5 @@
   444.4  /*
   444.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   444.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   444.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   444.8   *
   444.9   * This code is free software; you can redistribute it and/or modify it
   445.1 --- a/src/share/vm/opto/postaloc.cpp	Thu Jan 16 14:25:51 2014 +0100
   445.2 +++ b/src/share/vm/opto/postaloc.cpp	Wed Jan 22 17:42:23 2014 -0800
   445.3 @@ -1,5 +1,5 @@
   445.4  /*
   445.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   445.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   445.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   445.8   *
   445.9   * This code is free software; you can redistribute it and/or modify it
   446.1 --- a/src/share/vm/opto/reg_split.cpp	Thu Jan 16 14:25:51 2014 +0100
   446.2 +++ b/src/share/vm/opto/reg_split.cpp	Wed Jan 22 17:42:23 2014 -0800
   446.3 @@ -1,5 +1,5 @@
   446.4  /*
   446.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   446.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   446.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   446.8   *
   446.9   * This code is free software; you can redistribute it and/or modify it
   447.1 --- a/src/share/vm/opto/regalloc.cpp	Thu Jan 16 14:25:51 2014 +0100
   447.2 +++ b/src/share/vm/opto/regalloc.cpp	Wed Jan 22 17:42:23 2014 -0800
   447.3 @@ -1,5 +1,5 @@
   447.4  /*
   447.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
   447.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   447.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   447.8   *
   447.9   * This code is free software; you can redistribute it and/or modify it
   448.1 --- a/src/share/vm/opto/regalloc.hpp	Thu Jan 16 14:25:51 2014 +0100
   448.2 +++ b/src/share/vm/opto/regalloc.hpp	Wed Jan 22 17:42:23 2014 -0800
   448.3 @@ -1,5 +1,5 @@
   448.4  /*
   448.5 - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
   448.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   448.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   448.8   *
   448.9   * This code is free software; you can redistribute it and/or modify it
   449.1 --- a/src/share/vm/opto/subnode.cpp	Thu Jan 16 14:25:51 2014 +0100
   449.2 +++ b/src/share/vm/opto/subnode.cpp	Wed Jan 22 17:42:23 2014 -0800
   449.3 @@ -1,5 +1,5 @@
   449.4  /*
   449.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   449.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   449.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   449.8   *
   449.9   * This code is free software; you can redistribute it and/or modify it
   450.1 --- a/src/share/vm/opto/subnode.hpp	Thu Jan 16 14:25:51 2014 +0100
   450.2 +++ b/src/share/vm/opto/subnode.hpp	Wed Jan 22 17:42:23 2014 -0800
   450.3 @@ -1,5 +1,5 @@
   450.4  /*
   450.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   450.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   450.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   450.8   *
   450.9   * This code is free software; you can redistribute it and/or modify it
   451.1 --- a/src/share/vm/opto/superword.cpp	Thu Jan 16 14:25:51 2014 +0100
   451.2 +++ b/src/share/vm/opto/superword.cpp	Wed Jan 22 17:42:23 2014 -0800
   451.3 @@ -1,5 +1,5 @@
   451.4  /*
   451.5 - * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
   451.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   451.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   451.8   *
   451.9   * This code is free software; you can redistribute it and/or modify it
   452.1 --- a/src/share/vm/opto/superword.hpp	Thu Jan 16 14:25:51 2014 +0100
   452.2 +++ b/src/share/vm/opto/superword.hpp	Wed Jan 22 17:42:23 2014 -0800
   452.3 @@ -1,5 +1,5 @@
   452.4  /*
   452.5 - * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
   452.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   452.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   452.8   *
   452.9   * This code is free software; you can redistribute it and/or modify it
   453.1 --- a/src/share/vm/opto/type.cpp	Thu Jan 16 14:25:51 2014 +0100
   453.2 +++ b/src/share/vm/opto/type.cpp	Wed Jan 22 17:42:23 2014 -0800
   453.3 @@ -3818,17 +3818,17 @@
   453.4          tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable);
   453.5        }
   453.6      } else // Non integral arrays.
   453.7 -    // Must fall to bottom if exact klasses in upper lattice
   453.8 -    // are not equal or super klass is exact.
   453.9 -    if ( above_centerline(ptr) && klass() != tap->klass() &&
  453.10 -         // meet with top[] and bottom[] are processed further down:
  453.11 -         tap ->_klass != NULL  && this->_klass != NULL   &&
  453.12 -         // both are exact and not equal:
  453.13 -        ((tap ->_klass_is_exact && this->_klass_is_exact) ||
  453.14 -         // 'tap'  is exact and super or unrelated:
  453.15 -         (tap ->_klass_is_exact && !tap->klass()->is_subtype_of(klass())) ||
  453.16 -         // 'this' is exact and super or unrelated:
  453.17 -         (this->_klass_is_exact && !klass()->is_subtype_of(tap->klass())))) {
  453.18 +      // Must fall to bottom if exact klasses in upper lattice
  453.19 +      // are not equal or super klass is exact.
  453.20 +      if ((above_centerline(ptr) || ptr == Constant) && klass() != tap->klass() &&
  453.21 +          // meet with top[] and bottom[] are processed further down:
  453.22 +          tap->_klass != NULL  && this->_klass != NULL   &&
  453.23 +          // both are exact and not equal:
  453.24 +          ((tap->_klass_is_exact && this->_klass_is_exact) ||
  453.25 +           // 'tap'  is exact and super or unrelated:
  453.26 +           (tap->_klass_is_exact && !tap->klass()->is_subtype_of(klass())) ||
  453.27 +           // 'this' is exact and super or unrelated:
  453.28 +           (this->_klass_is_exact && !klass()->is_subtype_of(tap->klass())))) {
  453.29        tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable);
  453.30        return make(NotNull, NULL, tary, lazy_klass, false, off, InstanceBot);
  453.31      }
   454.1 --- a/src/share/vm/precompiled/precompiled.hpp	Thu Jan 16 14:25:51 2014 +0100
   454.2 +++ b/src/share/vm/precompiled/precompiled.hpp	Wed Jan 22 17:42:23 2014 -0800
   454.3 @@ -1,5 +1,5 @@
   454.4  /*
   454.5 - * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
   454.6 + * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
   454.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   454.8   *
   454.9   * This code is free software; you can redistribute it and/or modify it
   455.1 --- a/src/share/vm/prims/forte.cpp	Thu Jan 16 14:25:51 2014 +0100
   455.2 +++ b/src/share/vm/prims/forte.cpp	Wed Jan 22 17:42:23 2014 -0800
   455.3 @@ -1,5 +1,5 @@
   455.4  /*
   455.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   455.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   455.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   455.8   *
   455.9   * This code is free software; you can redistribute it and/or modify it
   456.1 --- a/src/share/vm/prims/jniCheck.cpp	Thu Jan 16 14:25:51 2014 +0100
   456.2 +++ b/src/share/vm/prims/jniCheck.cpp	Wed Jan 22 17:42:23 2014 -0800
   456.3 @@ -1,5 +1,5 @@
   456.4  /*
   456.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   456.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   456.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   456.8   *
   456.9   * This code is free software; you can redistribute it and/or modify it
   457.1 --- a/src/share/vm/prims/jvm_misc.hpp	Thu Jan 16 14:25:51 2014 +0100
   457.2 +++ b/src/share/vm/prims/jvm_misc.hpp	Wed Jan 22 17:42:23 2014 -0800
   457.3 @@ -1,5 +1,5 @@
   457.4  /*
   457.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   457.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   457.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   457.8   *
   457.9   * This code is free software; you can redistribute it and/or modify it
   458.1 --- a/src/share/vm/prims/jvmtiClassFileReconstituter.cpp	Thu Jan 16 14:25:51 2014 +0100
   458.2 +++ b/src/share/vm/prims/jvmtiClassFileReconstituter.cpp	Wed Jan 22 17:42:23 2014 -0800
   458.3 @@ -1,5 +1,5 @@
   458.4  /*
   458.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   458.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   458.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   458.8   *
   458.9   * This code is free software; you can redistribute it and/or modify it
   459.1 --- a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp	Thu Jan 16 14:25:51 2014 +0100
   459.2 +++ b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp	Wed Jan 22 17:42:23 2014 -0800
   459.3 @@ -1,5 +1,5 @@
   459.4  /*
   459.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   459.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   459.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   459.8   *
   459.9   * This code is free software; you can redistribute it and/or modify it
   460.1 --- a/src/share/vm/prims/jvmtiEnter.xsl	Thu Jan 16 14:25:51 2014 +0100
   460.2 +++ b/src/share/vm/prims/jvmtiEnter.xsl	Wed Jan 22 17:42:23 2014 -0800
   460.3 @@ -1,6 +1,6 @@
   460.4  <?xml version="1.0"?> 
   460.5  <!--
   460.6 - Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
   460.7 + Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   460.8   DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   460.9  
  460.10   This code is free software; you can redistribute it and/or modify it
   461.1 --- a/src/share/vm/prims/jvmtiEnvBase.hpp	Thu Jan 16 14:25:51 2014 +0100
   461.2 +++ b/src/share/vm/prims/jvmtiEnvBase.hpp	Wed Jan 22 17:42:23 2014 -0800
   461.3 @@ -1,5 +1,5 @@
   461.4  /*
   461.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   461.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   461.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   461.8   *
   461.9   * This code is free software; you can redistribute it and/or modify it
   462.1 --- a/src/share/vm/prims/jvmtiEnvThreadState.cpp	Thu Jan 16 14:25:51 2014 +0100
   462.2 +++ b/src/share/vm/prims/jvmtiEnvThreadState.cpp	Wed Jan 22 17:42:23 2014 -0800
   462.3 @@ -1,5 +1,5 @@
   462.4  /*
   462.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   462.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   462.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   462.8   *
   462.9   * This code is free software; you can redistribute it and/or modify it
   463.1 --- a/src/share/vm/prims/jvmtiEventController.cpp	Thu Jan 16 14:25:51 2014 +0100
   463.2 +++ b/src/share/vm/prims/jvmtiEventController.cpp	Wed Jan 22 17:42:23 2014 -0800
   463.3 @@ -1,5 +1,5 @@
   463.4  /*
   463.5 - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
   463.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   463.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   463.8   *
   463.9   * This code is free software; you can redistribute it and/or modify it
   464.1 --- a/src/share/vm/prims/jvmtiExport.hpp	Thu Jan 16 14:25:51 2014 +0100
   464.2 +++ b/src/share/vm/prims/jvmtiExport.hpp	Wed Jan 22 17:42:23 2014 -0800
   464.3 @@ -1,5 +1,5 @@
   464.4  /*
   464.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   464.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   464.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   464.8   *
   464.9   * This code is free software; you can redistribute it and/or modify it
   465.1 --- a/src/share/vm/prims/jvmtiGetLoadedClasses.cpp	Thu Jan 16 14:25:51 2014 +0100
   465.2 +++ b/src/share/vm/prims/jvmtiGetLoadedClasses.cpp	Wed Jan 22 17:42:23 2014 -0800
   465.3 @@ -1,5 +1,5 @@
   465.4  /*
   465.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   465.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   465.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   465.8   *
   465.9   * This code is free software; you can redistribute it and/or modify it
   466.1 --- a/src/share/vm/prims/jvmtiTrace.hpp	Thu Jan 16 14:25:51 2014 +0100
   466.2 +++ b/src/share/vm/prims/jvmtiTrace.hpp	Wed Jan 22 17:42:23 2014 -0800
   466.3 @@ -1,5 +1,5 @@
   466.4  /*
   466.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   466.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   466.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   466.8   *
   466.9   * This code is free software; you can redistribute it and/or modify it
   467.1 --- a/src/share/vm/prims/nativeLookup.cpp	Thu Jan 16 14:25:51 2014 +0100
   467.2 +++ b/src/share/vm/prims/nativeLookup.cpp	Wed Jan 22 17:42:23 2014 -0800
   467.3 @@ -1,5 +1,5 @@
   467.4  /*
   467.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   467.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   467.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   467.8   *
   467.9   * This code is free software; you can redistribute it and/or modify it
   468.1 --- a/src/share/vm/prims/perf.cpp	Thu Jan 16 14:25:51 2014 +0100
   468.2 +++ b/src/share/vm/prims/perf.cpp	Wed Jan 22 17:42:23 2014 -0800
   468.3 @@ -1,5 +1,5 @@
   468.4  /*
   468.5 - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
   468.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   468.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   468.8   *
   468.9   * This code is free software; you can redistribute it and/or modify it
   469.1 --- a/src/share/vm/prims/wbtestmethods/parserTests.hpp	Thu Jan 16 14:25:51 2014 +0100
   469.2 +++ b/src/share/vm/prims/wbtestmethods/parserTests.hpp	Wed Jan 22 17:42:23 2014 -0800
   469.3 @@ -1,5 +1,5 @@
   469.4  /*
   469.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   469.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   469.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   469.8   *
   469.9   * This code is free software; you can redistribute it and/or modify it
   470.1 --- a/src/share/vm/prims/whitebox.hpp	Thu Jan 16 14:25:51 2014 +0100
   470.2 +++ b/src/share/vm/prims/whitebox.hpp	Wed Jan 22 17:42:23 2014 -0800
   470.3 @@ -1,5 +1,5 @@
   470.4  /*
   470.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   470.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   470.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   470.8   *
   470.9   * This code is free software; you can redistribute it and/or modify it
   471.1 --- a/src/share/vm/runtime/advancedThresholdPolicy.hpp	Thu Jan 16 14:25:51 2014 +0100
   471.2 +++ b/src/share/vm/runtime/advancedThresholdPolicy.hpp	Wed Jan 22 17:42:23 2014 -0800
   471.3 @@ -1,5 +1,5 @@
   471.4  /*
   471.5 - * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
   471.6 + * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
   471.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   471.8   *
   471.9   * This code is free software; you can redistribute it and/or modify it
   472.1 --- a/src/share/vm/runtime/arguments.cpp	Thu Jan 16 14:25:51 2014 +0100
   472.2 +++ b/src/share/vm/runtime/arguments.cpp	Wed Jan 22 17:42:23 2014 -0800
   472.3 @@ -3730,10 +3730,6 @@
   472.4      // Doing the replace in parent maps helps speculation
   472.5      FLAG_SET_DEFAULT(ReplaceInParentMaps, true);
   472.6    }
   472.7 -#ifndef X86
   472.8 -  // Only on x86 for now
   472.9 -  FLAG_SET_DEFAULT(TypeProfileLevel, 0);
  472.10 -#endif
  472.11  #endif
  472.12  
  472.13    if (PrintAssembly && FLAG_IS_DEFAULT(DebugNonSafepoints)) {
   473.1 --- a/src/share/vm/runtime/atomic.cpp	Thu Jan 16 14:25:51 2014 +0100
   473.2 +++ b/src/share/vm/runtime/atomic.cpp	Wed Jan 22 17:42:23 2014 -0800
   473.3 @@ -1,5 +1,5 @@
   473.4  /*
   473.5 - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
   473.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   473.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   473.8   *
   473.9   * This code is free software; you can redistribute it and/or modify it
   474.1 --- a/src/share/vm/runtime/atomic.hpp	Thu Jan 16 14:25:51 2014 +0100
   474.2 +++ b/src/share/vm/runtime/atomic.hpp	Wed Jan 22 17:42:23 2014 -0800
   474.3 @@ -1,5 +1,5 @@
   474.4  /*
   474.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   474.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   474.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   474.8   *
   474.9   * This code is free software; you can redistribute it and/or modify it
   475.1 --- a/src/share/vm/runtime/compilationPolicy.hpp	Thu Jan 16 14:25:51 2014 +0100
   475.2 +++ b/src/share/vm/runtime/compilationPolicy.hpp	Wed Jan 22 17:42:23 2014 -0800
   475.3 @@ -1,5 +1,5 @@
   475.4  /*
   475.5 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   475.6 + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   475.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   475.8   *
   475.9   * This code is free software; you can redistribute it and/or modify it
   476.1 --- a/src/share/vm/runtime/deoptimization.cpp	Thu Jan 16 14:25:51 2014 +0100
   476.2 +++ b/src/share/vm/runtime/deoptimization.cpp	Wed Jan 22 17:42:23 2014 -0800
   476.3 @@ -1227,9 +1227,19 @@
   476.4    load_class_by_index(constant_pool, index, THREAD);
   476.5    if (HAS_PENDING_EXCEPTION) {
   476.6      // Exception happened during classloading. We ignore the exception here, since it
   476.7 -    // is going to be rethrown since the current activation is going to be deoptimzied and
   476.8 +    // is going to be rethrown since the current activation is going to be deoptimized and
   476.9      // the interpreter will re-execute the bytecode.
  476.10      CLEAR_PENDING_EXCEPTION;
  476.11 +    // Class loading called java code which may have caused a stack
  476.12 +    // overflow. If the exception was thrown right before the return
  476.13 +    // to the runtime the stack is no longer guarded. Reguard the
  476.14 +    // stack otherwise if we return to the uncommon trap blob and the
  476.15 +    // stack bang causes a stack overflow we crash.
  476.16 +    assert(THREAD->is_Java_thread(), "only a java thread can be here");
  476.17 +    JavaThread* thread = (JavaThread*)THREAD;
  476.18 +    bool guard_pages_enabled = thread->stack_yellow_zone_enabled();
  476.19 +    if (!guard_pages_enabled) guard_pages_enabled = thread->reguard_stack();
  476.20 +    assert(guard_pages_enabled, "stack banging in uncommon trap blob may cause crash");
  476.21    }
  476.22  }
  476.23  
   477.1 --- a/src/share/vm/runtime/fprofiler.hpp	Thu Jan 16 14:25:51 2014 +0100
   477.2 +++ b/src/share/vm/runtime/fprofiler.hpp	Wed Jan 22 17:42:23 2014 -0800
   477.3 @@ -1,5 +1,5 @@
   477.4  /*
   477.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   477.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   477.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   477.8   *
   477.9   * This code is free software; you can redistribute it and/or modify it
   478.1 --- a/src/share/vm/runtime/globals.hpp	Thu Jan 16 14:25:51 2014 +0100
   478.2 +++ b/src/share/vm/runtime/globals.hpp	Wed Jan 22 17:42:23 2014 -0800
   478.3 @@ -2551,6 +2551,9 @@
   478.4    develop(bool, PrintMethodFlushing, false,                                 \
   478.5            "Print the nmethods being flushed")                               \
   478.6                                                                              \
   478.7 +  diagnostic(bool, PrintMethodFlushingStatistics, false,                    \
   478.8 +          "print statistics about method flushing")                         \
   478.9 +                                                                            \
  478.10    develop(bool, UseRelocIndex, false,                                       \
  478.11            "Use an index to speed random access to relocations")             \
  478.12                                                                              \
  478.13 @@ -3332,21 +3335,21 @@
  478.14    develop(intx, CIStart, 0,                                                 \
  478.15            "The id of the first compilation to permit")                      \
  478.16                                                                              \
  478.17 -  develop(intx, CIStop,    -1,                                              \
  478.18 +  develop(intx, CIStop, max_jint,                                           \
  478.19            "The id of the last compilation to permit")                       \
  478.20                                                                              \
  478.21 -  develop(intx, CIStartOSR,     0,                                          \
  478.22 +  develop(intx, CIStartOSR, 0,                                              \
  478.23            "The id of the first osr compilation to permit "                  \
  478.24            "(CICountOSR must be on)")                                        \
  478.25                                                                              \
  478.26 -  develop(intx, CIStopOSR,    -1,                                           \
  478.27 +  develop(intx, CIStopOSR, max_jint,                                        \
  478.28            "The id of the last osr compilation to permit "                   \
  478.29            "(CICountOSR must be on)")                                        \
  478.30                                                                              \
  478.31 -  develop(intx, CIBreakAtOSR,    -1,                                        \
  478.32 +  develop(intx, CIBreakAtOSR, -1,                                           \
  478.33            "The id of osr compilation to break at")                          \
  478.34                                                                              \
  478.35 -  develop(intx, CIBreakAt,    -1,                                           \
  478.36 +  develop(intx, CIBreakAt, -1,                                              \
  478.37            "The id of compilation to break at")                              \
  478.38                                                                              \
  478.39    product(ccstrlist, CompileOnly, "",                                       \
  478.40 @@ -3365,6 +3368,10 @@
  478.41            "File containing compilation replay information"                  \
  478.42            "[default: ./replay_pid%p.log] (%p replaced with pid)")           \
  478.43                                                                              \
  478.44 +   product(ccstr, InlineDataFile, NULL,                                     \
  478.45 +          "File containing inlining replay information"                     \
  478.46 +          "[default: ./inline_pid%p.log] (%p replaced with pid)")           \
  478.47 +                                                                            \
  478.48    develop(intx, ReplaySuppressInitializers, 2,                              \
  478.49            "Control handling of class initialization during replay: "        \
  478.50            "0 - don't do anything special; "                                 \
   479.1 --- a/src/share/vm/runtime/globals_extension.hpp	Thu Jan 16 14:25:51 2014 +0100
   479.2 +++ b/src/share/vm/runtime/globals_extension.hpp	Wed Jan 22 17:42:23 2014 -0800
   479.3 @@ -1,5 +1,5 @@
   479.4  /*
   479.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   479.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   479.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   479.8   *
   479.9   * This code is free software; you can redistribute it and/or modify it
   480.1 --- a/src/share/vm/runtime/handles.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   480.2 +++ b/src/share/vm/runtime/handles.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   480.3 @@ -1,5 +1,5 @@
   480.4  /*
   480.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   480.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   480.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   480.8   *
   480.9   * This code is free software; you can redistribute it and/or modify it
   481.1 --- a/src/share/vm/runtime/java.cpp	Thu Jan 16 14:25:51 2014 +0100
   481.2 +++ b/src/share/vm/runtime/java.cpp	Wed Jan 22 17:42:23 2014 -0800
   481.3 @@ -52,6 +52,7 @@
   481.4  #include "runtime/memprofiler.hpp"
   481.5  #include "runtime/sharedRuntime.hpp"
   481.6  #include "runtime/statSampler.hpp"
   481.7 +#include "runtime/sweeper.hpp"
   481.8  #include "runtime/task.hpp"
   481.9  #include "runtime/thread.inline.hpp"
  481.10  #include "runtime/timer.hpp"
  481.11 @@ -217,9 +218,7 @@
  481.12  
  481.13  
  481.14  // General statistics printing (profiling ...)
  481.15 -
  481.16  void print_statistics() {
  481.17 -
  481.18  #ifdef ASSERT
  481.19  
  481.20    if (CountRuntimeCalls) {
  481.21 @@ -315,6 +314,10 @@
  481.22      CodeCache::print();
  481.23    }
  481.24  
  481.25 +  if (PrintMethodFlushingStatistics) {
  481.26 +    NMethodSweeper::print();
  481.27 +  }
  481.28 +
  481.29    if (PrintCodeCache2) {
  481.30      MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
  481.31      CodeCache::print_internals();
  481.32 @@ -382,6 +385,10 @@
  481.33      CodeCache::print();
  481.34    }
  481.35  
  481.36 +  if (PrintMethodFlushingStatistics) {
  481.37 +    NMethodSweeper::print();
  481.38 +  }
  481.39 +
  481.40  #ifdef COMPILER2
  481.41    if (PrintPreciseBiasedLockingStatistics) {
  481.42      OptoRuntime::print_named_counters();
   482.1 --- a/src/share/vm/runtime/javaCalls.hpp	Thu Jan 16 14:25:51 2014 +0100
   482.2 +++ b/src/share/vm/runtime/javaCalls.hpp	Wed Jan 22 17:42:23 2014 -0800
   482.3 @@ -1,5 +1,5 @@
   482.4  /*
   482.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   482.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   482.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   482.8   *
   482.9   * This code is free software; you can redistribute it and/or modify it
   483.1 --- a/src/share/vm/runtime/jniHandles.cpp	Thu Jan 16 14:25:51 2014 +0100
   483.2 +++ b/src/share/vm/runtime/jniHandles.cpp	Wed Jan 22 17:42:23 2014 -0800
   483.3 @@ -1,5 +1,5 @@
   483.4  /*
   483.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   483.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   483.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   483.8   *
   483.9   * This code is free software; you can redistribute it and/or modify it
   484.1 --- a/src/share/vm/runtime/mutex.cpp	Thu Jan 16 14:25:51 2014 +0100
   484.2 +++ b/src/share/vm/runtime/mutex.cpp	Wed Jan 22 17:42:23 2014 -0800
   484.3 @@ -1,6 +1,6 @@
   484.4  
   484.5  /*
   484.6 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   484.7 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   484.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   484.9   *
  484.10   * This code is free software; you can redistribute it and/or modify it
   485.1 --- a/src/share/vm/runtime/perfData.hpp	Thu Jan 16 14:25:51 2014 +0100
   485.2 +++ b/src/share/vm/runtime/perfData.hpp	Wed Jan 22 17:42:23 2014 -0800
   485.3 @@ -1,5 +1,5 @@
   485.4  /*
   485.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   485.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   485.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   485.8   *
   485.9   * This code is free software; you can redistribute it and/or modify it
   486.1 --- a/src/share/vm/runtime/reflection.hpp	Thu Jan 16 14:25:51 2014 +0100
   486.2 +++ b/src/share/vm/runtime/reflection.hpp	Wed Jan 22 17:42:23 2014 -0800
   486.3 @@ -1,5 +1,5 @@
   486.4  /*
   486.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   486.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   486.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   486.8   *
   486.9   * This code is free software; you can redistribute it and/or modify it
   487.1 --- a/src/share/vm/runtime/sharedRuntime.cpp	Thu Jan 16 14:25:51 2014 +0100
   487.2 +++ b/src/share/vm/runtime/sharedRuntime.cpp	Wed Jan 22 17:42:23 2014 -0800
   487.3 @@ -494,6 +494,13 @@
   487.4      assert(!nm->is_native_method(), "no exception handler");
   487.5      assert(nm->header_begin() != nm->exception_begin(), "no exception handler");
   487.6      if (nm->is_deopt_pc(return_address)) {
   487.7 +      // If we come here because of a stack overflow, the stack may be
   487.8 +      // unguarded. Reguard the stack otherwise if we return to the
   487.9 +      // deopt blob and the stack bang causes a stack overflow we
  487.10 +      // crash.
  487.11 +      bool guard_pages_enabled = thread->stack_yellow_zone_enabled();
  487.12 +      if (!guard_pages_enabled) guard_pages_enabled = thread->reguard_stack();
  487.13 +      assert(guard_pages_enabled, "stack banging in deopt blob may cause crash");
  487.14        return SharedRuntime::deopt_blob()->unpack_with_exception();
  487.15      } else {
  487.16        return nm->exception_begin();
  487.17 @@ -2400,7 +2407,7 @@
  487.18    ResourceMark rm;
  487.19  
  487.20    NOT_PRODUCT(int insts_size);
  487.21 -  AdapterBlob* B = NULL;
  487.22 +  AdapterBlob* new_adapter = NULL;
  487.23    AdapterHandlerEntry* entry = NULL;
  487.24    AdapterFingerPrint* fingerprint = NULL;
  487.25    {
  487.26 @@ -2432,7 +2439,8 @@
  487.27  
  487.28  #ifdef ASSERT
  487.29      AdapterHandlerEntry* shared_entry = NULL;
  487.30 -    if (VerifyAdapterSharing && entry != NULL) {
  487.31 +    // Start adapter sharing verification only after the VM is booted.
  487.32 +    if (VerifyAdapterSharing && (entry != NULL)) {
  487.33        shared_entry = entry;
  487.34        entry = NULL;
  487.35      }
  487.36 @@ -2448,41 +2456,44 @@
  487.37      // Make a C heap allocated version of the fingerprint to store in the adapter
  487.38      fingerprint = new AdapterFingerPrint(total_args_passed, sig_bt);
  487.39  
  487.40 +    // StubRoutines::code2() is initialized after this function can be called. As a result,
  487.41 +    // VerifyAdapterCalls and VerifyAdapterSharing can fail if we re-use code that generated
  487.42 +    // prior to StubRoutines::code2() being set. Checks refer to checks generated in an I2C
  487.43 +    // stub that ensure that an I2C stub is called from an interpreter frame.
  487.44 +    bool contains_all_checks = StubRoutines::code2() != NULL;
  487.45 +
  487.46      // Create I2C & C2I handlers
  487.47 -
  487.48      BufferBlob* buf = buffer_blob(); // the temporary code buffer in CodeCache
  487.49      if (buf != NULL) {
  487.50        CodeBuffer buffer(buf);
  487.51        short buffer_locs[20];
  487.52        buffer.insts()->initialize_shared_locs((relocInfo*)buffer_locs,
  487.53                                               sizeof(buffer_locs)/sizeof(relocInfo));
  487.54 +
  487.55        MacroAssembler _masm(&buffer);
  487.56 -
  487.57        entry = SharedRuntime::generate_i2c2i_adapters(&_masm,
  487.58                                                       total_args_passed,
  487.59                                                       comp_args_on_stack,
  487.60                                                       sig_bt,
  487.61                                                       regs,
  487.62                                                       fingerprint);
  487.63 -
  487.64  #ifdef ASSERT
  487.65        if (VerifyAdapterSharing) {
  487.66          if (shared_entry != NULL) {
  487.67 -          assert(shared_entry->compare_code(buf->code_begin(), buffer.insts_size(), total_args_passed, sig_bt),
  487.68 -                 "code must match");
  487.69 +          assert(shared_entry->compare_code(buf->code_begin(), buffer.insts_size()), "code must match");
  487.70            // Release the one just created and return the original
  487.71            _adapters->free_entry(entry);
  487.72            return shared_entry;
  487.73          } else  {
  487.74 -          entry->save_code(buf->code_begin(), buffer.insts_size(), total_args_passed, sig_bt);
  487.75 +          entry->save_code(buf->code_begin(), buffer.insts_size());
  487.76          }
  487.77        }
  487.78  #endif
  487.79  
  487.80 -      B = AdapterBlob::create(&buffer);
  487.81 +      new_adapter = AdapterBlob::create(&buffer);
  487.82        NOT_PRODUCT(insts_size = buffer.insts_size());
  487.83      }
  487.84 -    if (B == NULL) {
  487.85 +    if (new_adapter == NULL) {
  487.86        // CodeCache is full, disable compilation
  487.87        // Ought to log this but compile log is only per compile thread
  487.88        // and we're some non descript Java thread.
  487.89 @@ -2490,7 +2501,7 @@
  487.90        CompileBroker::handle_full_code_cache();
  487.91        return NULL; // Out of CodeCache space
  487.92      }
  487.93 -    entry->relocate(B->content_begin());
  487.94 +    entry->relocate(new_adapter->content_begin());
  487.95  #ifndef PRODUCT
  487.96      // debugging suppport
  487.97      if (PrintAdapterHandlers || PrintStubCode) {
  487.98 @@ -2509,22 +2520,25 @@
  487.99        }
 487.100      }
 487.101  #endif
 487.102 -
 487.103 -    _adapters->add(entry);
 487.104 +    // Add the entry only if the entry contains all required checks (see sharedRuntime_xxx.cpp)
 487.105 +    // The checks are inserted only if -XX:+VerifyAdapterCalls is specified.
 487.106 +    if (contains_all_checks || !VerifyAdapterCalls) {
 487.107 +      _adapters->add(entry);
 487.108 +    }
 487.109    }
 487.110    // Outside of the lock
 487.111 -  if (B != NULL) {
 487.112 +  if (new_adapter != NULL) {
 487.113      char blob_id[256];
 487.114      jio_snprintf(blob_id,
 487.115                   sizeof(blob_id),
 487.116                   "%s(%s)@" PTR_FORMAT,
 487.117 -                 B->name(),
 487.118 +                 new_adapter->name(),
 487.119                   fingerprint->as_string(),
 487.120 -                 B->content_begin());
 487.121 -    Forte::register_stub(blob_id, B->content_begin(), B->content_end());
 487.122 +                 new_adapter->content_begin());
 487.123 +    Forte::register_stub(blob_id, new_adapter->content_begin(),new_adapter->content_end());
 487.124  
 487.125      if (JvmtiExport::should_post_dynamic_code_generated()) {
 487.126 -      JvmtiExport::post_dynamic_code_generated(blob_id, B->content_begin(), B->content_end());
 487.127 +      JvmtiExport::post_dynamic_code_generated(blob_id, new_adapter->content_begin(), new_adapter->content_end());
 487.128      }
 487.129    }
 487.130    return entry;
 487.131 @@ -2556,7 +2570,6 @@
 487.132    delete _fingerprint;
 487.133  #ifdef ASSERT
 487.134    if (_saved_code) FREE_C_HEAP_ARRAY(unsigned char, _saved_code, mtCode);
 487.135 -  if (_saved_sig)  FREE_C_HEAP_ARRAY(Basictype, _saved_sig, mtCode);
 487.136  #endif
 487.137  }
 487.138  
 487.139 @@ -2565,35 +2578,30 @@
 487.140  // Capture the code before relocation so that it can be compared
 487.141  // against other versions.  If the code is captured after relocation
 487.142  // then relative instructions won't be equivalent.
 487.143 -void AdapterHandlerEntry::save_code(unsigned char* buffer, int length, int total_args_passed, BasicType* sig_bt) {
 487.144 +void AdapterHandlerEntry::save_code(unsigned char* buffer, int length) {
 487.145    _saved_code = NEW_C_HEAP_ARRAY(unsigned char, length, mtCode);
 487.146 -  _code_length = length;
 487.147 +  _saved_code_length = length;
 487.148    memcpy(_saved_code, buffer, length);
 487.149 -  _total_args_passed = total_args_passed;
 487.150 -  _saved_sig = NEW_C_HEAP_ARRAY(BasicType, _total_args_passed, mtCode);
 487.151 -  memcpy(_saved_sig, sig_bt, _total_args_passed * sizeof(BasicType));
 487.152  }
 487.153  
 487.154  
 487.155 -bool AdapterHandlerEntry::compare_code(unsigned char* buffer, int length, int total_args_passed, BasicType* sig_bt) {
 487.156 -  if (length != _code_length) {
 487.157 +bool AdapterHandlerEntry::compare_code(unsigned char* buffer, int length) {
 487.158 +  if (length != _saved_code_length) {
 487.159      return false;
 487.160    }
 487.161 -  for (int i = 0; i < length; i++) {
 487.162 -    if (buffer[i] != _saved_code[i]) {
 487.163 -      return false;
 487.164 -    }
 487.165 -  }
 487.166 -  return true;
 487.167 +
 487.168 +  return (memcmp(buffer, _saved_code, length) == 0) ? true : false;
 487.169  }
 487.170  #endif
 487.171  
 487.172  
 487.173 -// Create a native wrapper for this native method.  The wrapper converts the
 487.174 -// java compiled calling convention to the native convention, handlizes
 487.175 -// arguments, and transitions to native.  On return from the native we transition
 487.176 -// back to java blocking if a safepoint is in progress.
 487.177 -nmethod *AdapterHandlerLibrary::create_native_wrapper(methodHandle method, int compile_id) {
 487.178 +/**
 487.179 + * Create a native wrapper for this native method.  The wrapper converts the
 487.180 + * Java-compiled calling convention to the native convention, handles
 487.181 + * arguments, and transitions to native.  On return from the native we transition
 487.182 + * back to java blocking if a safepoint is in progress.
 487.183 + */
 487.184 +void AdapterHandlerLibrary::create_native_wrapper(methodHandle method) {
 487.185    ResourceMark rm;
 487.186    nmethod* nm = NULL;
 487.187  
 487.188 @@ -2602,16 +2610,19 @@
 487.189           method->has_native_function(), "must have something valid to call!");
 487.190  
 487.191    {
 487.192 -    // perform the work while holding the lock, but perform any printing outside the lock
 487.193 +    // Perform the work while holding the lock, but perform any printing outside the lock
 487.194      MutexLocker mu(AdapterHandlerLibrary_lock);
 487.195      // See if somebody beat us to it
 487.196      nm = method->code();
 487.197 -    if (nm) {
 487.198 -      return nm;
 487.199 +    if (nm != NULL) {
 487.200 +      return;
 487.201      }
 487.202  
 487.203 +    const int compile_id = CompileBroker::assign_compile_id(method, CompileBroker::standard_entry_bci);
 487.204 +    assert(compile_id > 0, "Must generate native wrapper");
 487.205 +
 487.206 +
 487.207      ResourceMark rm;
 487.208 -
 487.209      BufferBlob*  buf = buffer_blob(); // the temporary code buffer in CodeCache
 487.210      if (buf != NULL) {
 487.211        CodeBuffer buffer(buf);
 487.212 @@ -2643,16 +2654,14 @@
 487.213        int comp_args_on_stack = SharedRuntime::java_calling_convention(sig_bt, regs, total_args_passed, is_outgoing);
 487.214  
 487.215        // Generate the compiled-to-native wrapper code
 487.216 -      nm = SharedRuntime::generate_native_wrapper(&_masm,
 487.217 -                                                  method,
 487.218 -                                                  compile_id,
 487.219 -                                                  sig_bt,
 487.220 -                                                  regs,
 487.221 -                                                  ret_type);
 487.222 +      nm = SharedRuntime::generate_native_wrapper(&_masm, method, compile_id, sig_bt, regs, ret_type);
 487.223 +
 487.224 +      if (nm != NULL) {
 487.225 +        method->set_code(method, nm);
 487.226 +      }
 487.227      }
 487.228 -  }
 487.229 -
 487.230 -  // Must unlock before calling set_code
 487.231 +  } // Unlock AdapterHandlerLibrary_lock
 487.232 +
 487.233  
 487.234    // Install the generated code.
 487.235    if (nm != NULL) {
 487.236 @@ -2660,13 +2669,11 @@
 487.237        ttyLocker ttyl;
 487.238        CompileTask::print_compilation(tty, nm, method->is_static() ? "(static)" : "");
 487.239      }
 487.240 -    method->set_code(method, nm);
 487.241      nm->post_compiled_method_load_event();
 487.242    } else {
 487.243      // CodeCache is full, disable compilation
 487.244      CompileBroker::handle_full_code_cache();
 487.245    }
 487.246 -  return nm;
 487.247  }
 487.248  
 487.249  JRT_ENTRY_NO_ASYNC(void, SharedRuntime::block_for_jni_critical(JavaThread* thread))
   488.1 --- a/src/share/vm/runtime/sharedRuntime.hpp	Thu Jan 16 14:25:51 2014 +0100
   488.2 +++ b/src/share/vm/runtime/sharedRuntime.hpp	Wed Jan 22 17:42:23 2014 -0800
   488.3 @@ -1,5 +1,5 @@
   488.4  /*
   488.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   488.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   488.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   488.8   *
   488.9   * This code is free software; you can redistribute it and/or modify it
  488.10 @@ -630,9 +630,7 @@
  488.11    // Captures code and signature used to generate this adapter when
  488.12    // verifing adapter equivalence.
  488.13    unsigned char* _saved_code;
  488.14 -  int            _code_length;
  488.15 -  BasicType*     _saved_sig;
  488.16 -  int            _total_args_passed;
  488.17 +  int            _saved_code_length;
  488.18  #endif
  488.19  
  488.20    void init(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry) {
  488.21 @@ -642,9 +640,7 @@
  488.22      _c2i_unverified_entry = c2i_unverified_entry;
  488.23  #ifdef ASSERT
  488.24      _saved_code = NULL;
  488.25 -    _code_length = 0;
  488.26 -    _saved_sig = NULL;
  488.27 -    _total_args_passed = 0;
  488.28 +    _saved_code_length = 0;
  488.29  #endif
  488.30    }
  488.31  
  488.32 @@ -657,7 +653,6 @@
  488.33    address get_i2c_entry()            const { return _i2c_entry; }
  488.34    address get_c2i_entry()            const { return _c2i_entry; }
  488.35    address get_c2i_unverified_entry() const { return _c2i_unverified_entry; }
  488.36 -
  488.37    address base_address();
  488.38    void relocate(address new_base);
  488.39  
  488.40 @@ -669,8 +664,8 @@
  488.41  
  488.42  #ifdef ASSERT
  488.43    // Used to verify that code generated for shared adapters is equivalent
  488.44 -  void save_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt);
  488.45 -  bool compare_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt);
  488.46 +  void save_code   (unsigned char* code, int length);
  488.47 +  bool compare_code(unsigned char* code, int length);
  488.48  #endif
  488.49  
  488.50    //virtual void print_on(outputStream* st) const;  DO NOT USE
  488.51 @@ -689,7 +684,7 @@
  488.52  
  488.53    static AdapterHandlerEntry* new_entry(AdapterFingerPrint* fingerprint,
  488.54                                          address i2c_entry, address c2i_entry, address c2i_unverified_entry);
  488.55 -  static nmethod* create_native_wrapper(methodHandle method, int compile_id);
  488.56 +  static void create_native_wrapper(methodHandle method);
  488.57    static AdapterHandlerEntry* get_adapter(methodHandle method);
  488.58  
  488.59  #ifdef HAVE_DTRACE_H
   489.1 --- a/src/share/vm/runtime/signature.cpp	Thu Jan 16 14:25:51 2014 +0100
   489.2 +++ b/src/share/vm/runtime/signature.cpp	Wed Jan 22 17:42:23 2014 -0800
   489.3 @@ -1,5 +1,5 @@
   489.4  /*
   489.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   489.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   489.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   489.8   *
   489.9   * This code is free software; you can redistribute it and/or modify it
   490.1 --- a/src/share/vm/runtime/signature.hpp	Thu Jan 16 14:25:51 2014 +0100
   490.2 +++ b/src/share/vm/runtime/signature.hpp	Wed Jan 22 17:42:23 2014 -0800
   490.3 @@ -1,5 +1,5 @@
   490.4  /*
   490.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   490.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   490.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   490.8   *
   490.9   * This code is free software; you can redistribute it and/or modify it
   491.1 --- a/src/share/vm/runtime/stubCodeGenerator.cpp	Thu Jan 16 14:25:51 2014 +0100
   491.2 +++ b/src/share/vm/runtime/stubCodeGenerator.cpp	Wed Jan 22 17:42:23 2014 -0800
   491.3 @@ -1,5 +1,5 @@
   491.4  /*
   491.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
   491.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   491.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   491.8   *
   491.9   * This code is free software; you can redistribute it and/or modify it
   492.1 --- a/src/share/vm/runtime/sweeper.cpp	Thu Jan 16 14:25:51 2014 +0100
   492.2 +++ b/src/share/vm/runtime/sweeper.cpp	Wed Jan 22 17:42:23 2014 -0800
   492.3 @@ -129,6 +129,7 @@
   492.4  
   492.5  nmethod* NMethodSweeper::_current                      = NULL; // Current nmethod
   492.6  long     NMethodSweeper::_traversals                   = 0;    // Stack scan count, also sweep ID.
   492.7 +long     NMethodSweeper::_total_nof_code_cache_sweeps  = 0;    // Total number of full sweeps of the code cache
   492.8  long     NMethodSweeper::_time_counter                 = 0;    // Virtual time used to periodically invoke sweeper
   492.9  long     NMethodSweeper::_last_sweep                   = 0;    // Value of _time_counter when the last sweep happened
  492.10  int      NMethodSweeper::_seen                         = 0;    // Nof. nmethod we have currently processed in current pass of CodeCache
  492.11 @@ -143,13 +144,16 @@
  492.12                                                                 //   1) alive       -> not_entrant
  492.13                                                                 //   2) not_entrant -> zombie
  492.14                                                                 //   3) zombie      -> marked_for_reclamation
  492.15 +int    NMethodSweeper::_hotness_counter_reset_val       = 0;
  492.16  
  492.17 -int   NMethodSweeper::_total_nof_methods_reclaimed     = 0;    // Accumulated nof methods flushed
  492.18 -Tickspan NMethodSweeper::_total_time_sweeping;                 // Accumulated time sweeping
  492.19 -Tickspan NMethodSweeper::_total_time_this_sweep;               // Total time this sweep
  492.20 -Tickspan NMethodSweeper::_peak_sweep_time;                     // Peak time for a full sweep
  492.21 -Tickspan NMethodSweeper::_peak_sweep_fraction_time;            // Peak time sweeping one fraction
  492.22 -int   NMethodSweeper::_hotness_counter_reset_val       = 0;
  492.23 +long   NMethodSweeper::_total_nof_methods_reclaimed     = 0;    // Accumulated nof methods flushed
  492.24 +long   NMethodSweeper::_total_nof_c2_methods_reclaimed  = 0;    // Accumulated nof methods flushed
  492.25 +size_t NMethodSweeper::_total_flushed_size              = 0;    // Total number of bytes flushed from the code cache
  492.26 +Tickspan  NMethodSweeper::_total_time_sweeping;                 // Accumulated time sweeping
  492.27 +Tickspan  NMethodSweeper::_total_time_this_sweep;               // Total time this sweep
  492.28 +Tickspan  NMethodSweeper::_peak_sweep_time;                     // Peak time for a full sweep
  492.29 +Tickspan  NMethodSweeper::_peak_sweep_fraction_time;            // Peak time sweeping one fraction
  492.30 +
  492.31  
  492.32  
  492.33  class MarkActivationClosure: public CodeBlobClosure {
  492.34 @@ -257,9 +261,14 @@
  492.35    // Large ReservedCodeCacheSize:   (e.g., 256M + code Cache is 90% full). The formula
  492.36    //                                              computes: (256 / 16) - 10 = 6.
  492.37    if (!_should_sweep) {
  492.38 -    int time_since_last_sweep = _time_counter - _last_sweep;
  492.39 -    double wait_until_next_sweep = (ReservedCodeCacheSize / (16 * M)) - time_since_last_sweep -
  492.40 -                                CodeCache::reverse_free_ratio();
  492.41 +    const int time_since_last_sweep = _time_counter - _last_sweep;
  492.42 +    // ReservedCodeCacheSize has an 'unsigned' type. We need a 'signed' type for max_wait_time,
  492.43 +    // since 'time_since_last_sweep' can be larger than 'max_wait_time'. If that happens using
  492.44 +    // an unsigned type would cause an underflow (wait_until_next_sweep becomes a large positive
  492.45 +    // value) that disables the intended periodic sweeps.
  492.46 +    const int max_wait_time = ReservedCodeCacheSize / (16 * M);
  492.47 +    double wait_until_next_sweep = max_wait_time - time_since_last_sweep - CodeCache::reverse_free_ratio();
  492.48 +    assert(wait_until_next_sweep <= (double)max_wait_time, "Calculation of code cache sweeper interval is incorrect");
  492.49  
  492.50      if ((wait_until_next_sweep <= 0.0) || !CompileBroker::should_compile_new_jobs()) {
  492.51        _should_sweep = true;
  492.52 @@ -287,6 +296,7 @@
  492.53  
  492.54      // We are done with sweeping the code cache once.
  492.55      if (_sweep_fractions_left == 0) {
  492.56 +      _total_nof_code_cache_sweeps++;
  492.57        _last_sweep = _time_counter;
  492.58        // Reset flag; temporarily disables sweeper
  492.59        _should_sweep = false;
  492.60 @@ -374,6 +384,7 @@
  492.61    _total_time_sweeping  += sweep_time;
  492.62    _total_time_this_sweep += sweep_time;
  492.63    _peak_sweep_fraction_time = MAX2(sweep_time, _peak_sweep_fraction_time);
  492.64 +  _total_flushed_size += freed_memory;
  492.65    _total_nof_methods_reclaimed += _flushed_count;
  492.66  
  492.67    EventSweepCodeCache event(UNTIMED);
  492.68 @@ -505,6 +516,9 @@
  492.69          tty->print_cr("### Nmethod %3d/" PTR_FORMAT " (marked for reclamation) being flushed", nm->compile_id(), nm);
  492.70        }
  492.71        freed_memory = nm->total_size();
  492.72 +      if (nm->is_compiled_by_c2()) {
  492.73 +        _total_nof_c2_methods_reclaimed++;
  492.74 +      }
  492.75        release_nmethod(nm);
  492.76        _flushed_count++;
  492.77      } else {
  492.78 @@ -543,6 +557,9 @@
  492.79        SWEEP(nm);
  492.80        // No inline caches will ever point to osr methods, so we can just remove it
  492.81        freed_memory = nm->total_size();
  492.82 +      if (nm->is_compiled_by_c2()) {
  492.83 +        _total_nof_c2_methods_reclaimed++;
  492.84 +      }
  492.85        release_nmethod(nm);
  492.86        _flushed_count++;
  492.87      } else {
  492.88 @@ -630,3 +647,13 @@
  492.89      xtty->end_elem();
  492.90    }
  492.91  }
  492.92 +
  492.93 +void NMethodSweeper::print() {
  492.94 +  ttyLocker ttyl;
  492.95 +  tty->print_cr("Code cache sweeper statistics:");
  492.96 +  tty->print_cr("  Total sweep time:                %1.0lfms", (double)_total_time_sweeping.value()/1000000);
  492.97 +  tty->print_cr("  Total number of full sweeps:     %ld", _total_nof_code_cache_sweeps);
  492.98 +  tty->print_cr("  Total number of flushed methods: %ld(%ld C2 methods)", _total_nof_methods_reclaimed,
  492.99 +                                                    _total_nof_c2_methods_reclaimed);
 492.100 +  tty->print_cr("  Total size of flushed methods:   " SIZE_FORMAT "kB", _total_flushed_size/K);
 492.101 +}
   493.1 --- a/src/share/vm/runtime/sweeper.hpp	Thu Jan 16 14:25:51 2014 +0100
   493.2 +++ b/src/share/vm/runtime/sweeper.hpp	Wed Jan 22 17:42:23 2014 -0800
   493.3 @@ -54,28 +54,33 @@
   493.4  //     is full.
   493.5  
   493.6  class NMethodSweeper : public AllStatic {
   493.7 -  static long      _traversals;                   // Stack scan count, also sweep ID.
   493.8 -  static long      _time_counter;                 // Virtual time used to periodically invoke sweeper
   493.9 -  static long      _last_sweep;                   // Value of _time_counter when the last sweep happened
  493.10 -  static nmethod*  _current;                      // Current nmethod
  493.11 -  static int       _seen;                         // Nof. nmethod we have currently processed in current pass of CodeCache
  493.12 -  static int       _flushed_count;                // Nof. nmethods flushed in current sweep
  493.13 -  static int       _zombified_count;              // Nof. nmethods made zombie in current sweep
  493.14 -  static int       _marked_for_reclamation_count; // Nof. nmethods marked for reclaim in current sweep
  493.15 +  static long      _traversals;                     // Stack scan count, also sweep ID.
  493.16 +  static long      _total_nof_code_cache_sweeps;    // Total number of full sweeps of the code cache
  493.17 +  static long      _time_counter;                   // Virtual time used to periodically invoke sweeper
  493.18 +  static long      _last_sweep;                     // Value of _time_counter when the last sweep happened
  493.19 +  static nmethod*  _current;                        // Current nmethod
  493.20 +  static int       _seen;                           // Nof. nmethod we have currently processed in current pass of CodeCache
  493.21 +  static int       _flushed_count;                  // Nof. nmethods flushed in current sweep
  493.22 +  static int       _zombified_count;                // Nof. nmethods made zombie in current sweep
  493.23 +  static int       _marked_for_reclamation_count;   // Nof. nmethods marked for reclaim in current sweep
  493.24  
  493.25 -  static volatile int  _sweep_fractions_left;     // Nof. invocations left until we are completed with this pass
  493.26 -  static volatile int  _sweep_started;            // Flag to control conc sweeper
  493.27 -  static volatile bool _should_sweep;             // Indicates if we should invoke the sweeper
  493.28 -  static volatile int _bytes_changed;             // Counts the total nmethod size if the nmethod changed from:
  493.29 -                                                  //   1) alive       -> not_entrant
  493.30 -                                                  //   2) not_entrant -> zombie
  493.31 -                                                  //   3) zombie      -> marked_for_reclamation
  493.32 +  static volatile int  _sweep_fractions_left;       // Nof. invocations left until we are completed with this pass
  493.33 +  static volatile int  _sweep_started;              // Flag to control conc sweeper
  493.34 +  static volatile bool _should_sweep;               // Indicates if we should invoke the sweeper
  493.35 +  static volatile int  _bytes_changed;              // Counts the total nmethod size if the nmethod changed from:
  493.36 +                                                    //   1) alive       -> not_entrant
  493.37 +                                                    //   2) not_entrant -> zombie
  493.38 +                                                    //   3) zombie      -> marked_for_reclamation
  493.39    // Stat counters
  493.40 -  static int       _total_nof_methods_reclaimed;  // Accumulated nof methods flushed
  493.41 -  static Tickspan  _total_time_sweeping;          // Accumulated time sweeping
  493.42 -  static Tickspan  _total_time_this_sweep;        // Total time this sweep
  493.43 -  static Tickspan  _peak_sweep_time;              // Peak time for a full sweep
  493.44 -  static Tickspan  _peak_sweep_fraction_time;     // Peak time sweeping one fraction
  493.45 +  static long      _total_nof_methods_reclaimed;    // Accumulated nof methods flushed
  493.46 +  static long      _total_nof_c2_methods_reclaimed; // Accumulated nof C2-compiled methods flushed
  493.47 +  static size_t    _total_flushed_size;             // Total size of flushed methods
  493.48 +  static int       _hotness_counter_reset_val;
  493.49 +
  493.50 +  static Tickspan  _total_time_sweeping;            // Accumulated time sweeping
  493.51 +  static Tickspan  _total_time_this_sweep;          // Total time this sweep
  493.52 +  static Tickspan  _peak_sweep_time;                // Peak time for a full sweep
  493.53 +  static Tickspan  _peak_sweep_fraction_time;       // Peak time sweeping one fraction
  493.54  
  493.55    static int  process_nmethod(nmethod *nm);
  493.56    static void release_nmethod(nmethod* nm);
  493.57 @@ -83,8 +88,6 @@
  493.58    static bool sweep_in_progress();
  493.59    static void sweep_code_cache();
  493.60  
  493.61 -  static int _hotness_counter_reset_val;
  493.62 -
  493.63   public:
  493.64    static long traversal_count()              { return _traversals; }
  493.65    static int  total_nof_methods_reclaimed()  { return _total_nof_methods_reclaimed; }
  493.66 @@ -105,10 +108,10 @@
  493.67    static void mark_active_nmethods();      // Invoked at the end of each safepoint
  493.68    static void possibly_sweep();            // Compiler threads call this to sweep
  493.69  
  493.70 -  static int sort_nmethods_by_hotness(nmethod** nm1, nmethod** nm2);
  493.71    static int hotness_counter_reset_val();
  493.72    static void report_state_change(nmethod* nm);
  493.73    static void possibly_enable_sweeper();
  493.74 +  static void print();   // Printing/debugging
  493.75  };
  493.76  
  493.77  #endif // SHARE_VM_RUNTIME_SWEEPER_HPP
   494.1 --- a/src/share/vm/runtime/synchronizer.hpp	Thu Jan 16 14:25:51 2014 +0100
   494.2 +++ b/src/share/vm/runtime/synchronizer.hpp	Wed Jan 22 17:42:23 2014 -0800
   494.3 @@ -1,5 +1,5 @@
   494.4  /*
   494.5 - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
   494.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   494.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   494.8   *
   494.9   * This code is free software; you can redistribute it and/or modify it
   495.1 --- a/src/share/vm/runtime/unhandledOops.hpp	Thu Jan 16 14:25:51 2014 +0100
   495.2 +++ b/src/share/vm/runtime/unhandledOops.hpp	Wed Jan 22 17:42:23 2014 -0800
   495.3 @@ -1,5 +1,5 @@
   495.4  /*
   495.5 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
   495.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   495.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   495.8   *
   495.9   * This code is free software; you can redistribute it and/or modify it
   496.1 --- a/src/share/vm/runtime/vframe.cpp	Thu Jan 16 14:25:51 2014 +0100
   496.2 +++ b/src/share/vm/runtime/vframe.cpp	Wed Jan 22 17:42:23 2014 -0800
   496.3 @@ -1,5 +1,5 @@
   496.4  /*
   496.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   496.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   496.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   496.8   *
   496.9   * This code is free software; you can redistribute it and/or modify it
   497.1 --- a/src/share/vm/runtime/vframe.hpp	Thu Jan 16 14:25:51 2014 +0100
   497.2 +++ b/src/share/vm/runtime/vframe.hpp	Wed Jan 22 17:42:23 2014 -0800
   497.3 @@ -1,5 +1,5 @@
   497.4  /*
   497.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   497.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   497.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   497.8   *
   497.9   * This code is free software; you can redistribute it and/or modify it
   498.1 --- a/src/share/vm/runtime/vframeArray.hpp	Thu Jan 16 14:25:51 2014 +0100
   498.2 +++ b/src/share/vm/runtime/vframeArray.hpp	Wed Jan 22 17:42:23 2014 -0800
   498.3 @@ -1,5 +1,5 @@
   498.4  /*
   498.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   498.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   498.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   498.8   *
   498.9   * This code is free software; you can redistribute it and/or modify it
   499.1 --- a/src/share/vm/runtime/virtualspace.hpp	Thu Jan 16 14:25:51 2014 +0100
   499.2 +++ b/src/share/vm/runtime/virtualspace.hpp	Wed Jan 22 17:42:23 2014 -0800
   499.3 @@ -1,5 +1,5 @@
   499.4  /*
   499.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   499.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   499.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   499.8   *
   499.9   * This code is free software; you can redistribute it and/or modify it
   500.1 --- a/src/share/vm/runtime/vm_version.hpp	Thu Jan 16 14:25:51 2014 +0100
   500.2 +++ b/src/share/vm/runtime/vm_version.hpp	Wed Jan 22 17:42:23 2014 -0800
   500.3 @@ -1,5 +1,5 @@
   500.4  /*
   500.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   500.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   500.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   500.8   *
   500.9   * This code is free software; you can redistribute it and/or modify it
   501.1 --- a/src/share/vm/services/classLoadingService.hpp	Thu Jan 16 14:25:51 2014 +0100
   501.2 +++ b/src/share/vm/services/classLoadingService.hpp	Wed Jan 22 17:42:23 2014 -0800
   501.3 @@ -1,5 +1,5 @@
   501.4  /*
   501.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   501.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   501.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   501.8   *
   501.9   * This code is free software; you can redistribute it and/or modify it
   502.1 --- a/src/share/vm/services/dtraceAttacher.cpp	Thu Jan 16 14:25:51 2014 +0100
   502.2 +++ b/src/share/vm/services/dtraceAttacher.cpp	Wed Jan 22 17:42:23 2014 -0800
   502.3 @@ -1,5 +1,5 @@
   502.4  /*
   502.5 - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
   502.6 + * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
   502.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   502.8   *
   502.9   * This code is free software; you can redistribute it and/or modify it
   503.1 --- a/src/share/vm/services/g1MemoryPool.hpp	Thu Jan 16 14:25:51 2014 +0100
   503.2 +++ b/src/share/vm/services/g1MemoryPool.hpp	Wed Jan 22 17:42:23 2014 -0800
   503.3 @@ -1,5 +1,5 @@
   503.4  /*
   503.5 - * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
   503.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   503.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   503.8   *
   503.9   * This code is free software; you can redistribute it and/or modify it
   504.1 --- a/src/share/vm/services/memReporter.cpp	Thu Jan 16 14:25:51 2014 +0100
   504.2 +++ b/src/share/vm/services/memReporter.cpp	Wed Jan 22 17:42:23 2014 -0800
   504.3 @@ -1,5 +1,5 @@
   504.4  /*
   504.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   504.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   504.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   504.8   *
   504.9   * This code is free software; you can redistribute it and/or modify it
   505.1 --- a/src/share/vm/services/memReporter.hpp	Thu Jan 16 14:25:51 2014 +0100
   505.2 +++ b/src/share/vm/services/memReporter.hpp	Wed Jan 22 17:42:23 2014 -0800
   505.3 @@ -1,5 +1,5 @@
   505.4  /*
   505.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   505.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   505.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   505.8   *
   505.9   * This code is free software; you can redistribute it and/or modify it
   506.1 --- a/src/share/vm/services/memSnapshot.hpp	Thu Jan 16 14:25:51 2014 +0100
   506.2 +++ b/src/share/vm/services/memSnapshot.hpp	Wed Jan 22 17:42:23 2014 -0800
   506.3 @@ -1,5 +1,5 @@
   506.4  /*
   506.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   506.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   506.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   506.8   *
   506.9   * This code is free software; you can redistribute it and/or modify it
   507.1 --- a/src/share/vm/services/memoryManager.hpp	Thu Jan 16 14:25:51 2014 +0100
   507.2 +++ b/src/share/vm/services/memoryManager.hpp	Wed Jan 22 17:42:23 2014 -0800
   507.3 @@ -1,5 +1,5 @@
   507.4  /*
   507.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   507.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   507.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   507.8   *
   507.9   * This code is free software; you can redistribute it and/or modify it
   508.1 --- a/src/share/vm/services/memoryPool.hpp	Thu Jan 16 14:25:51 2014 +0100
   508.2 +++ b/src/share/vm/services/memoryPool.hpp	Wed Jan 22 17:42:23 2014 -0800
   508.3 @@ -1,5 +1,5 @@
   508.4  /*
   508.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   508.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   508.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   508.8   *
   508.9   * This code is free software; you can redistribute it and/or modify it
   509.1 --- a/src/share/vm/services/memoryService.cpp	Thu Jan 16 14:25:51 2014 +0100
   509.2 +++ b/src/share/vm/services/memoryService.cpp	Wed Jan 22 17:42:23 2014 -0800
   509.3 @@ -1,5 +1,5 @@
   509.4  /*
   509.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   509.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   509.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   509.8   *
   509.9   * This code is free software; you can redistribute it and/or modify it
   510.1 --- a/src/share/vm/services/memoryService.hpp	Thu Jan 16 14:25:51 2014 +0100
   510.2 +++ b/src/share/vm/services/memoryService.hpp	Wed Jan 22 17:42:23 2014 -0800
   510.3 @@ -1,5 +1,5 @@
   510.4  /*
   510.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   510.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   510.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   510.8   *
   510.9   * This code is free software; you can redistribute it and/or modify it
   511.1 --- a/src/share/vm/services/memoryUsage.hpp	Thu Jan 16 14:25:51 2014 +0100
   511.2 +++ b/src/share/vm/services/memoryUsage.hpp	Wed Jan 22 17:42:23 2014 -0800
   511.3 @@ -1,5 +1,5 @@
   511.4  /*
   511.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   511.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   511.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   511.8   *
   511.9   * This code is free software; you can redistribute it and/or modify it
   512.1 --- a/src/share/vm/services/psMemoryPool.hpp	Thu Jan 16 14:25:51 2014 +0100
   512.2 +++ b/src/share/vm/services/psMemoryPool.hpp	Wed Jan 22 17:42:23 2014 -0800
   512.3 @@ -1,5 +1,5 @@
   512.4  /*
   512.5 - * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
   512.6 + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   512.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   512.8   *
   512.9   * This code is free software; you can redistribute it and/or modify it
   513.1 --- a/src/share/vm/services/threadService.hpp	Thu Jan 16 14:25:51 2014 +0100
   513.2 +++ b/src/share/vm/services/threadService.hpp	Wed Jan 22 17:42:23 2014 -0800
   513.3 @@ -1,5 +1,5 @@
   513.4  /*
   513.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   513.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   513.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   513.8   *
   513.9   * This code is free software; you can redistribute it and/or modify it
   514.1 --- a/src/share/vm/shark/sharkBlock.cpp	Thu Jan 16 14:25:51 2014 +0100
   514.2 +++ b/src/share/vm/shark/sharkBlock.cpp	Wed Jan 22 17:42:23 2014 -0800
   514.3 @@ -1,5 +1,5 @@
   514.4  /*
   514.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   514.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   514.7   * Copyright 2008, 2009, 2010 Red Hat, Inc.
   514.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   514.9   *
   515.1 --- a/src/share/vm/shark/sharkBuilder.cpp	Thu Jan 16 14:25:51 2014 +0100
   515.2 +++ b/src/share/vm/shark/sharkBuilder.cpp	Wed Jan 22 17:42:23 2014 -0800
   515.3 @@ -1,5 +1,5 @@
   515.4  /*
   515.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   515.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   515.7   * Copyright 2008, 2009, 2010 Red Hat, Inc.
   515.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   515.9   *
   516.1 --- a/src/share/vm/shark/sharkCompiler.cpp	Thu Jan 16 14:25:51 2014 +0100
   516.2 +++ b/src/share/vm/shark/sharkCompiler.cpp	Wed Jan 22 17:42:23 2014 -0800
   516.3 @@ -1,5 +1,5 @@
   516.4  /*
   516.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   516.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   516.7   * Copyright 2008, 2009, 2010, 2011 Red Hat, Inc.
   516.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   516.9   *
   517.1 --- a/src/share/vm/shark/sharkCompiler.hpp	Thu Jan 16 14:25:51 2014 +0100
   517.2 +++ b/src/share/vm/shark/sharkCompiler.hpp	Wed Jan 22 17:42:23 2014 -0800
   517.3 @@ -1,5 +1,5 @@
   517.4  /*
   517.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   517.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   517.7   * Copyright 2008, 2009, 2010, 2011 Red Hat, Inc.
   517.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   517.9   *
   518.1 --- a/src/share/vm/shark/sharkConstant.cpp	Thu Jan 16 14:25:51 2014 +0100
   518.2 +++ b/src/share/vm/shark/sharkConstant.cpp	Wed Jan 22 17:42:23 2014 -0800
   518.3 @@ -1,5 +1,5 @@
   518.4  /*
   518.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   518.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   518.7   * Copyright 2009 Red Hat, Inc.
   518.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   518.9   *
   519.1 --- a/src/share/vm/shark/sharkFunction.cpp	Thu Jan 16 14:25:51 2014 +0100
   519.2 +++ b/src/share/vm/shark/sharkFunction.cpp	Wed Jan 22 17:42:23 2014 -0800
   519.3 @@ -1,5 +1,5 @@
   519.4  /*
   519.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   519.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   519.7   * Copyright 2008, 2009 Red Hat, Inc.
   519.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   519.9   *
   520.1 --- a/src/share/vm/shark/sharkInliner.cpp	Thu Jan 16 14:25:51 2014 +0100
   520.2 +++ b/src/share/vm/shark/sharkInliner.cpp	Wed Jan 22 17:42:23 2014 -0800
   520.3 @@ -1,5 +1,5 @@
   520.4  /*
   520.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   520.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   520.7   * Copyright 2009 Red Hat, Inc.
   520.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   520.9   *
   521.1 --- a/src/share/vm/shark/sharkInvariants.hpp	Thu Jan 16 14:25:51 2014 +0100
   521.2 +++ b/src/share/vm/shark/sharkInvariants.hpp	Wed Jan 22 17:42:23 2014 -0800
   521.3 @@ -1,5 +1,5 @@
   521.4  /*
   521.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   521.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   521.7   * Copyright 2008, 2009 Red Hat, Inc.
   521.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   521.9   *
   522.1 --- a/src/share/vm/shark/sharkTopLevelBlock.cpp	Thu Jan 16 14:25:51 2014 +0100
   522.2 +++ b/src/share/vm/shark/sharkTopLevelBlock.cpp	Wed Jan 22 17:42:23 2014 -0800
   522.3 @@ -1,5 +1,5 @@
   522.4  /*
   522.5 - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
   522.6 + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   522.7   * Copyright 2008, 2009, 2010 Red Hat, Inc.
   522.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   522.9   *
   523.1 --- a/src/share/vm/utilities/bitMap.cpp	Thu Jan 16 14:25:51 2014 +0100
   523.2 +++ b/src/share/vm/utilities/bitMap.cpp	Wed Jan 22 17:42:23 2014 -0800
   523.3 @@ -1,5 +1,5 @@
   523.4  /*
   523.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   523.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   523.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   523.8   *
   523.9   * This code is free software; you can redistribute it and/or modify it
   524.1 --- a/src/share/vm/utilities/bitMap.hpp	Thu Jan 16 14:25:51 2014 +0100
   524.2 +++ b/src/share/vm/utilities/bitMap.hpp	Wed Jan 22 17:42:23 2014 -0800
   524.3 @@ -1,5 +1,5 @@
   524.4  /*
   524.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   524.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   524.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   524.8   *
   524.9   * This code is free software; you can redistribute it and/or modify it
   525.1 --- a/src/share/vm/utilities/bitMap.inline.hpp	Thu Jan 16 14:25:51 2014 +0100
   525.2 +++ b/src/share/vm/utilities/bitMap.inline.hpp	Wed Jan 22 17:42:23 2014 -0800
   525.3 @@ -1,5 +1,5 @@
   525.4  /*
   525.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   525.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   525.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   525.8   *
   525.9   * This code is free software; you can redistribute it and/or modify it
   526.1 --- a/src/share/vm/utilities/decoder.cpp	Thu Jan 16 14:25:51 2014 +0100
   526.2 +++ b/src/share/vm/utilities/decoder.cpp	Wed Jan 22 17:42:23 2014 -0800
   526.3 @@ -1,5 +1,5 @@
   526.4  /*
   526.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   526.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   526.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   526.8   *
   526.9   * This code is free software; you can redistribute it and/or modify it
   527.1 --- a/src/share/vm/utilities/decoder.hpp	Thu Jan 16 14:25:51 2014 +0100
   527.2 +++ b/src/share/vm/utilities/decoder.hpp	Wed Jan 22 17:42:23 2014 -0800
   527.3 @@ -1,5 +1,5 @@
   527.4  /*
   527.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   527.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   527.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   527.8   *
   527.9   * This code is free software; you can redistribute it and/or modify it
   528.1 --- a/src/share/vm/utilities/exceptions.cpp	Thu Jan 16 14:25:51 2014 +0100
   528.2 +++ b/src/share/vm/utilities/exceptions.cpp	Wed Jan 22 17:42:23 2014 -0800
   528.3 @@ -1,5 +1,5 @@
   528.4  /*
   528.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   528.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   528.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   528.8   *
   528.9   * This code is free software; you can redistribute it and/or modify it
   529.1 --- a/src/share/vm/utilities/globalDefinitions.cpp	Thu Jan 16 14:25:51 2014 +0100
   529.2 +++ b/src/share/vm/utilities/globalDefinitions.cpp	Wed Jan 22 17:42:23 2014 -0800
   529.3 @@ -1,5 +1,5 @@
   529.4  /*
   529.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   529.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   529.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   529.8   *
   529.9   * This code is free software; you can redistribute it and/or modify it
   530.1 --- a/src/share/vm/utilities/globalDefinitions_visCPP.hpp	Thu Jan 16 14:25:51 2014 +0100
   530.2 +++ b/src/share/vm/utilities/globalDefinitions_visCPP.hpp	Wed Jan 22 17:42:23 2014 -0800
   530.3 @@ -1,5 +1,5 @@
   530.4  /*
   530.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   530.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   530.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   530.8   *
   530.9   * This code is free software; you can redistribute it and/or modify it
   531.1 --- a/src/share/vm/utilities/growableArray.hpp	Thu Jan 16 14:25:51 2014 +0100
   531.2 +++ b/src/share/vm/utilities/growableArray.hpp	Wed Jan 22 17:42:23 2014 -0800
   531.3 @@ -1,5 +1,5 @@
   531.4  /*
   531.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   531.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   531.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   531.8   *
   531.9   * This code is free software; you can redistribute it and/or modify it
   532.1 --- a/src/share/vm/utilities/hashtable.hpp	Thu Jan 16 14:25:51 2014 +0100
   532.2 +++ b/src/share/vm/utilities/hashtable.hpp	Wed Jan 22 17:42:23 2014 -0800
   532.3 @@ -1,5 +1,5 @@
   532.4  /*
   532.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
   532.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
   532.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   532.8   *
   532.9   * This code is free software; you can redistribute it and/or modify it
   533.1 --- a/src/share/vm/utilities/macros.hpp	Thu Jan 16 14:25:51 2014 +0100
   533.2 +++ b/src/share/vm/utilities/macros.hpp	Wed Jan 22 17:42:23 2014 -0800
   533.3 @@ -1,5 +1,5 @@
   533.4  /*
   533.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   533.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   533.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   533.8   *
   533.9   * This code is free software; you can redistribute it and/or modify it
   534.1 --- a/src/share/vm/utilities/numberSeq.cpp	Thu Jan 16 14:25:51 2014 +0100
   534.2 +++ b/src/share/vm/utilities/numberSeq.cpp	Wed Jan 22 17:42:23 2014 -0800
   534.3 @@ -1,5 +1,5 @@
   534.4  /*
   534.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
   534.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
   534.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   534.8   *
   534.9   * This code is free software; you can redistribute it and/or modify it
   535.1 --- a/src/share/vm/utilities/ostream.hpp	Thu Jan 16 14:25:51 2014 +0100
   535.2 +++ b/src/share/vm/utilities/ostream.hpp	Wed Jan 22 17:42:23 2014 -0800
   535.3 @@ -1,5 +1,5 @@
   535.4  /*
   535.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
   535.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   535.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   535.8   *
   535.9   * This code is free software; you can redistribute it and/or modify it
   536.1 --- a/src/share/vm/utilities/top.hpp	Thu Jan 16 14:25:51 2014 +0100
   536.2 +++ b/src/share/vm/utilities/top.hpp	Wed Jan 22 17:42:23 2014 -0800
   536.3 @@ -1,5 +1,5 @@
   536.4  /*
   536.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   536.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   536.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   536.8   *
   536.9   * This code is free software; you can redistribute it and/or modify it
   537.1 --- a/src/share/vm/utilities/vmError.cpp	Thu Jan 16 14:25:51 2014 +0100
   537.2 +++ b/src/share/vm/utilities/vmError.cpp	Wed Jan 22 17:42:23 2014 -0800
   537.3 @@ -1040,7 +1040,7 @@
   537.4      OnError = NULL;
   537.5    }
   537.6  
   537.7 -  static bool skip_replay = false;
   537.8 +  static bool skip_replay = ReplayCompiles; // Do not overwrite file during replay
   537.9    if (DumpReplayDataOnError && _thread && _thread->is_Compiler_thread() && !skip_replay) {
  537.10      skip_replay = true;
  537.11      ciEnv* env = ciEnv::current();
   538.1 --- a/src/share/vm/utilities/yieldingWorkgroup.cpp	Thu Jan 16 14:25:51 2014 +0100
   538.2 +++ b/src/share/vm/utilities/yieldingWorkgroup.cpp	Wed Jan 22 17:42:23 2014 -0800
   538.3 @@ -1,5 +1,5 @@
   538.4  /*
   538.5 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
   538.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   538.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   538.8   *
   538.9   * This code is free software; you can redistribute it and/or modify it
   539.1 --- a/test/Makefile	Thu Jan 16 14:25:51 2014 +0100
   539.2 +++ b/test/Makefile	Wed Jan 22 17:42:23 2014 -0800
   539.3 @@ -1,5 +1,5 @@
   539.4  #
   539.5 -# Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
   539.6 +# Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
   539.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   539.8  #
   539.9  # This code is free software; you can redistribute it and/or modify it
   540.1 --- a/test/TEST.ROOT	Thu Jan 16 14:25:51 2014 +0100
   540.2 +++ b/test/TEST.ROOT	Wed Jan 22 17:42:23 2014 -0800
   540.3 @@ -1,5 +1,5 @@
   540.4  # 
   540.5 -# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
   540.6 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   540.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   540.8  #
   540.9  # This code is free software; you can redistribute it and/or modify it
   541.1 --- a/test/compiler/5091921/Test7005594.sh	Thu Jan 16 14:25:51 2014 +0100
   541.2 +++ b/test/compiler/5091921/Test7005594.sh	Wed Jan 22 17:42:23 2014 -0800
   541.3 @@ -1,6 +1,6 @@
   541.4  #!/bin/sh
   541.5  # 
   541.6 -# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
   541.7 +# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   541.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   541.9  # 
  541.10  # This code is free software; you can redistribute it and/or modify it
   542.1 --- a/test/compiler/6431242/Test.java	Thu Jan 16 14:25:51 2014 +0100
   542.2 +++ b/test/compiler/6431242/Test.java	Wed Jan 22 17:42:23 2014 -0800
   542.3 @@ -1,5 +1,5 @@
   542.4  /*
   542.5 - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
   542.6 + * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
   542.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   542.8   *
   542.9   * This code is free software; you can redistribute it and/or modify it
   543.1 --- a/test/compiler/6589834/Test_ia32.java	Thu Jan 16 14:25:51 2014 +0100
   543.2 +++ b/test/compiler/6589834/Test_ia32.java	Wed Jan 22 17:42:23 2014 -0800
   543.3 @@ -1,5 +1,5 @@
   543.4  /*
   543.5 - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
   543.6 + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
   543.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   543.8   *
   543.9   * This code is free software; you can redistribute it and/or modify it
   544.1 --- a/test/compiler/6636138/Test1.java	Thu Jan 16 14:25:51 2014 +0100
   544.2 +++ b/test/compiler/6636138/Test1.java	Wed Jan 22 17:42:23 2014 -0800
   544.3 @@ -1,5 +1,5 @@
   544.4  /*
   544.5 - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
   544.6 + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
   544.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   544.8   *
   544.9   * This code is free software; you can redistribute it and/or modify it
   545.1 --- a/test/compiler/6636138/Test2.java	Thu Jan 16 14:25:51 2014 +0100
   545.2 +++ b/test/compiler/6636138/Test2.java	Wed Jan 22 17:42:23 2014 -0800
   545.3 @@ -1,5 +1,5 @@
   545.4  /*
   545.5 - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
   545.6 + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
   545.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   545.8   *
   545.9   * This code is free software; you can redistribute it and/or modify it
   546.1 --- a/test/compiler/6795161/Test.java	Thu Jan 16 14:25:51 2014 +0100
   546.2 +++ b/test/compiler/6795161/Test.java	Wed Jan 22 17:42:23 2014 -0800
   546.3 @@ -1,5 +1,5 @@
   546.4  /*
   546.5 - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
   546.6 + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
   546.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   546.8   *
   546.9   * This code is free software; you can redistribute it and/or modify it
   547.1 --- a/test/compiler/6857159/Test6857159.sh	Thu Jan 16 14:25:51 2014 +0100
   547.2 +++ b/test/compiler/6857159/Test6857159.sh	Wed Jan 22 17:42:23 2014 -0800
   547.3 @@ -1,6 +1,6 @@
   547.4  #!/bin/sh
   547.5  # 
   547.6 -# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
   547.7 +# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
   547.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   547.9  # 
  547.10  # This code is free software; you can redistribute it and/or modify it
   548.1 --- a/test/compiler/7068051/Test7068051.sh	Thu Jan 16 14:25:51 2014 +0100
   548.2 +++ b/test/compiler/7068051/Test7068051.sh	Wed Jan 22 17:42:23 2014 -0800
   548.3 @@ -1,6 +1,6 @@
   548.4  #!/bin/sh
   548.5  # 
   548.6 -# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
   548.7 +# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   548.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   548.9  # 
  548.10  # This code is free software; you can redistribute it and/or modify it
   549.1 --- a/test/compiler/7070134/Test7070134.sh	Thu Jan 16 14:25:51 2014 +0100
   549.2 +++ b/test/compiler/7070134/Test7070134.sh	Wed Jan 22 17:42:23 2014 -0800
   549.3 @@ -1,6 +1,6 @@
   549.4  #!/bin/sh
   549.5  # 
   549.6 -# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
   549.7 +# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   549.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   549.9  # 
  549.10  # This code is free software; you can redistribute it and/or modify it
   550.1 --- a/test/compiler/7200264/Test7200264.sh	Thu Jan 16 14:25:51 2014 +0100
   550.2 +++ b/test/compiler/7200264/Test7200264.sh	Wed Jan 22 17:42:23 2014 -0800
   550.3 @@ -1,6 +1,6 @@
   550.4  #!/bin/sh
   550.5  # 
   550.6 -# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   550.7 +# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   550.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   550.9  # 
  550.10  # This code is free software; you can redistribute it and/or modify it
   551.1 --- a/test/compiler/8000805/Test8000805.java	Thu Jan 16 14:25:51 2014 +0100
   551.2 +++ b/test/compiler/8000805/Test8000805.java	Wed Jan 22 17:42:23 2014 -0800
   551.3 @@ -1,5 +1,5 @@
   551.4  /*
   551.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   551.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   551.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   551.8   *
   551.9   * This code is free software; you can redistribute it and/or modify it
   552.1 --- a/test/compiler/8005419/Test8005419.java	Thu Jan 16 14:25:51 2014 +0100
   552.2 +++ b/test/compiler/8005419/Test8005419.java	Wed Jan 22 17:42:23 2014 -0800
   552.3 @@ -1,5 +1,5 @@
   552.4  /*
   552.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   552.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   552.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   552.8   *
   552.9   * This code is free software; you can redistribute it and/or modify it
   553.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   553.2 +++ b/test/compiler/debug/VerifyAdapterSharing.java	Wed Jan 22 17:42:23 2014 -0800
   553.3 @@ -0,0 +1,43 @@
   553.4 +/*
   553.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   553.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   553.7 + *
   553.8 + * This code is free software; you can redistribute it and/or modify it
   553.9 + * under the terms of the GNU General Public License version 2 only, as
  553.10 + * published by the Free Software Foundation.
  553.11 + *
  553.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  553.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  553.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  553.15 + * version 2 for more details (a copy is included in the LICENSE file that
  553.16 + * accompanied this code).
  553.17 + *
  553.18 + * You should have received a copy of the GNU General Public License version
  553.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  553.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  553.21 + *
  553.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  553.23 + * or visit www.oracle.com if you need additional information or have any
  553.24 + * questions.
  553.25 + */
  553.26 +
  553.27 +/*
  553.28 + * @test
  553.29 + * @bug 8030783
  553.30 + * @summary Regression test for 8026478
  553.31 + * @library /testlibrary
  553.32 + *
  553.33 + */
  553.34 +import com.oracle.java.testlibrary.*;
  553.35 +
  553.36 +public class VerifyAdapterSharing {
  553.37 +  public static void main(String[] args) throws Exception {
  553.38 +    ProcessBuilder pb;
  553.39 +    OutputAnalyzer out;
  553.40 +
  553.41 +    pb = ProcessTools.createJavaProcessBuilder("-Xcomp", "-XX:+IgnoreUnrecognizedVMOptions",
  553.42 +                                               "-XX:+VerifyAdapterSharing", "-version");
  553.43 +    out = new OutputAnalyzer(pb.start());
  553.44 +    out.shouldHaveExitValue(0);
  553.45 +  }
  553.46 +}
   554.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   554.2 +++ b/test/compiler/intrinsics/mathexact/sanity/AddExactIntTest.java	Wed Jan 22 17:42:23 2014 -0800
   554.3 @@ -0,0 +1,45 @@
   554.4 +/*
   554.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   554.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   554.7 + *
   554.8 + * This code is free software; you can redistribute it and/or modify it
   554.9 + * under the terms of the GNU General Public License version 2 only, as
  554.10 + * published by the Free Software Foundation.
  554.11 + *
  554.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  554.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  554.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  554.15 + * version 2 for more details (a copy is included in the LICENSE file that
  554.16 + * accompanied this code).
  554.17 + *
  554.18 + * You should have received a copy of the GNU General Public License version
  554.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  554.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  554.21 + *
  554.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  554.23 + * or visit www.oracle.com if you need additional information or have any
  554.24 + * questions.
  554.25 + */
  554.26 +
  554.27 +/*
  554.28 + * @test
  554.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  554.30 + * @build AddExactIntTest
  554.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  554.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  554.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  554.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  554.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics AddExactIntTest
  554.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  554.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  554.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  554.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics AddExactIntTest
  554.40 + * @run main Verifier hs_neg.log hs.log
  554.41 + */
  554.42 +
  554.43 +public class AddExactIntTest {
  554.44 +
  554.45 +    public static void main(String[] args) throws Exception {
  554.46 +        new IntrinsicBase.IntTest(MathIntrinsic.IntIntrinsic.Add).test();
  554.47 +    }
  554.48 +}
   555.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   555.2 +++ b/test/compiler/intrinsics/mathexact/sanity/AddExactLongTest.java	Wed Jan 22 17:42:23 2014 -0800
   555.3 @@ -0,0 +1,45 @@
   555.4 +/*
   555.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   555.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   555.7 + *
   555.8 + * This code is free software; you can redistribute it and/or modify it
   555.9 + * under the terms of the GNU General Public License version 2 only, as
  555.10 + * published by the Free Software Foundation.
  555.11 + *
  555.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  555.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  555.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  555.15 + * version 2 for more details (a copy is included in the LICENSE file that
  555.16 + * accompanied this code).
  555.17 + *
  555.18 + * You should have received a copy of the GNU General Public License version
  555.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  555.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  555.21 + *
  555.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  555.23 + * or visit www.oracle.com if you need additional information or have any
  555.24 + * questions.
  555.25 + */
  555.26 +
  555.27 +/*
  555.28 + * @test
  555.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  555.30 + * @build AddExactLongTest
  555.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  555.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  555.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  555.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  555.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics AddExactLongTest
  555.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  555.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  555.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  555.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics AddExactLongTest
  555.40 + * @run main Verifier hs_neg.log hs.log
  555.41 + */
  555.42 +
  555.43 +public class AddExactLongTest {
  555.44 +
  555.45 +    public static void main(String[] args) throws Exception {
  555.46 +        new IntrinsicBase.LongTest(MathIntrinsic.LongIntrinsic.Add).test();
  555.47 +    }
  555.48 +}
   556.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   556.2 +++ b/test/compiler/intrinsics/mathexact/sanity/DecrementExactIntTest.java	Wed Jan 22 17:42:23 2014 -0800
   556.3 @@ -0,0 +1,45 @@
   556.4 +/*
   556.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   556.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   556.7 + *
   556.8 + * This code is free software; you can redistribute it and/or modify it
   556.9 + * under the terms of the GNU General Public License version 2 only, as
  556.10 + * published by the Free Software Foundation.
  556.11 + *
  556.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  556.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  556.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  556.15 + * version 2 for more details (a copy is included in the LICENSE file that
  556.16 + * accompanied this code).
  556.17 + *
  556.18 + * You should have received a copy of the GNU General Public License version
  556.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  556.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  556.21 + *
  556.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  556.23 + * or visit www.oracle.com if you need additional information or have any
  556.24 + * questions.
  556.25 + */
  556.26 +
  556.27 +/*
  556.28 + * @test
  556.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  556.30 + * @build DecrementExactIntTest
  556.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  556.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  556.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  556.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  556.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics DecrementExactIntTest
  556.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  556.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  556.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  556.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics DecrementExactIntTest
  556.40 + * @run main Verifier hs_neg.log hs.log
  556.41 + */
  556.42 +
  556.43 +public class DecrementExactIntTest {
  556.44 +
  556.45 +    public static void main(String[] args) throws Exception {
  556.46 +        new IntrinsicBase.IntTest(MathIntrinsic.IntIntrinsic.Decrement).test();
  556.47 +    }
  556.48 +}
   557.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   557.2 +++ b/test/compiler/intrinsics/mathexact/sanity/DecrementExactLongTest.java	Wed Jan 22 17:42:23 2014 -0800
   557.3 @@ -0,0 +1,45 @@
   557.4 +/*
   557.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   557.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   557.7 + *
   557.8 + * This code is free software; you can redistribute it and/or modify it
   557.9 + * under the terms of the GNU General Public License version 2 only, as
  557.10 + * published by the Free Software Foundation.
  557.11 + *
  557.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  557.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  557.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  557.15 + * version 2 for more details (a copy is included in the LICENSE file that
  557.16 + * accompanied this code).
  557.17 + *
  557.18 + * You should have received a copy of the GNU General Public License version
  557.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  557.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  557.21 + *
  557.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  557.23 + * or visit www.oracle.com if you need additional information or have any
  557.24 + * questions.
  557.25 + */
  557.26 +
  557.27 +/*
  557.28 + * @test
  557.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  557.30 + * @build DecrementExactLongTest
  557.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  557.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  557.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  557.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  557.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics DecrementExactLongTest
  557.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  557.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  557.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  557.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics DecrementExactLongTest
  557.40 + * @run main Verifier hs_neg.log hs.log
  557.41 + */
  557.42 +
  557.43 +public class DecrementExactLongTest {
  557.44 +
  557.45 +    public static void main(String[] args) throws Exception {
  557.46 +        new IntrinsicBase.LongTest(MathIntrinsic.LongIntrinsic.Decrement).test();
  557.47 +    }
  557.48 +}
  557.49 \ No newline at end of file
   558.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   558.2 +++ b/test/compiler/intrinsics/mathexact/sanity/IncrementExactIntTest.java	Wed Jan 22 17:42:23 2014 -0800
   558.3 @@ -0,0 +1,45 @@
   558.4 +/*
   558.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   558.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   558.7 + *
   558.8 + * This code is free software; you can redistribute it and/or modify it
   558.9 + * under the terms of the GNU General Public License version 2 only, as
  558.10 + * published by the Free Software Foundation.
  558.11 + *
  558.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  558.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  558.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  558.15 + * version 2 for more details (a copy is included in the LICENSE file that
  558.16 + * accompanied this code).
  558.17 + *
  558.18 + * You should have received a copy of the GNU General Public License version
  558.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  558.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  558.21 + *
  558.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  558.23 + * or visit www.oracle.com if you need additional information or have any
  558.24 + * questions.
  558.25 + */
  558.26 +
  558.27 +/*
  558.28 + * @test
  558.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  558.30 + * @build IncrementExactIntTest
  558.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  558.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  558.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  558.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  558.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics IncrementExactIntTest
  558.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  558.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  558.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  558.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics IncrementExactIntTest
  558.40 + * @run main Verifier hs_neg.log hs.log
  558.41 + */
  558.42 +
  558.43 +public class IncrementExactIntTest {
  558.44 +
  558.45 +    public static void main(String[] args) throws Exception {
  558.46 +        new IntrinsicBase.IntTest(MathIntrinsic.IntIntrinsic.Increment).test();
  558.47 +    }
  558.48 +}
   559.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   559.2 +++ b/test/compiler/intrinsics/mathexact/sanity/IncrementExactLongTest.java	Wed Jan 22 17:42:23 2014 -0800
   559.3 @@ -0,0 +1,45 @@
   559.4 +/*
   559.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   559.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   559.7 + *
   559.8 + * This code is free software; you can redistribute it and/or modify it
   559.9 + * under the terms of the GNU General Public License version 2 only, as
  559.10 + * published by the Free Software Foundation.
  559.11 + *
  559.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  559.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  559.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  559.15 + * version 2 for more details (a copy is included in the LICENSE file that
  559.16 + * accompanied this code).
  559.17 + *
  559.18 + * You should have received a copy of the GNU General Public License version
  559.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  559.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  559.21 + *
  559.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  559.23 + * or visit www.oracle.com if you need additional information or have any
  559.24 + * questions.
  559.25 + */
  559.26 +
  559.27 +/*
  559.28 + * @test
  559.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  559.30 + * @build IncrementExactLongTest
  559.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  559.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  559.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  559.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  559.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics IncrementExactLongTest
  559.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  559.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  559.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  559.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics IncrementExactLongTest
  559.40 + * @run main Verifier hs_neg.log hs.log
  559.41 + */
  559.42 +
  559.43 +public class IncrementExactLongTest {
  559.44 +
  559.45 +    public static void main(String[] args) throws Exception {
  559.46 +        new IntrinsicBase.LongTest(MathIntrinsic.LongIntrinsic.Increment).test();
  559.47 +    }
  559.48 +}
   560.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   560.2 +++ b/test/compiler/intrinsics/mathexact/sanity/IntrinsicBase.java	Wed Jan 22 17:42:23 2014 -0800
   560.3 @@ -0,0 +1,155 @@
   560.4 +/*
   560.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   560.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   560.7 + *
   560.8 + * This code is free software; you can redistribute it and/or modify it
   560.9 + * under the terms of the GNU General Public License version 2 only, as
  560.10 + * published by the Free Software Foundation.
  560.11 + *
  560.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  560.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  560.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  560.15 + * version 2 for more details (a copy is included in the LICENSE file that
  560.16 + * accompanied this code).
  560.17 + *
  560.18 + * You should have received a copy of the GNU General Public License version
  560.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  560.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  560.21 + *
  560.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  560.23 + * or visit www.oracle.com if you need additional information or have any
  560.24 + * questions.
  560.25 + */
  560.26 +
  560.27 +import com.oracle.java.testlibrary.Platform;
  560.28 +
  560.29 +import java.io.FileOutputStream;
  560.30 +import java.lang.reflect.Executable;
  560.31 +import java.util.Properties;
  560.32 +
  560.33 +public abstract class IntrinsicBase extends CompilerWhiteBoxTest {
  560.34 +    protected String javaVmName;
  560.35 +    protected String useMathExactIntrinsics;
  560.36 +
  560.37 +    protected IntrinsicBase(TestCase testCase) {
  560.38 +        super(testCase);
  560.39 +        javaVmName = System.getProperty("java.vm.name");
  560.40 +        useMathExactIntrinsics = getVMOption("UseMathExactIntrinsics");
  560.41 +    }
  560.42 +
  560.43 +    @Override
  560.44 +    protected void test() throws Exception {
  560.45 +        //java.lang.Math should be loaded to allow a compilation of the methods that use Math's method
  560.46 +        System.out.println("class java.lang.Math should be loaded. Proof: " + Math.class);
  560.47 +        printEnvironmentInfo();
  560.48 +
  560.49 +        int expectedIntrinsicCount = 0;
  560.50 +
  560.51 +        switch (MODE) {
  560.52 +            case "compiled mode":
  560.53 +            case "mixed mode":
  560.54 +                if (isServerVM()) {
  560.55 +                    if (TIERED_COMPILATION) {
  560.56 +                        int max_level = TIERED_STOP_AT_LEVEL;
  560.57 +                        expectedIntrinsicCount = (max_level == COMP_LEVEL_MAX) ? 1 : 0;
  560.58 +                        for (int i = CompilerWhiteBoxTest.COMP_LEVEL_SIMPLE; i <= max_level; ++i) {
  560.59 +                            deoptimize();
  560.60 +                            compileAtLevel(i);
  560.61 +                        }
  560.62 +                    } else {
  560.63 +                        expectedIntrinsicCount = 1;
  560.64 +                        deoptimize();
  560.65 +                        compileAtLevel(CompilerWhiteBoxTest.COMP_LEVEL_MAX);
  560.66 +                    }
  560.67 +                } else {
  560.68 +                    deoptimize();
  560.69 +                    compileAtLevel(CompilerWhiteBoxTest.COMP_LEVEL_SIMPLE);
  560.70 +                }
  560.71 +
  560.72 +                if (!isIntrinsicSupported()) {
  560.73 +                    expectedIntrinsicCount = 0;
  560.74 +                }
  560.75 +                break;
  560.76 +            case "interpreted mode": //test is not applicable in this mode;
  560.77 +                System.err.println("Warning: This test is not applicable in mode: " + MODE);
  560.78 +                break;
  560.79 +            default:
  560.80 +                throw new RuntimeException("Test bug, unknown VM mode: " + MODE);
  560.81 +        }
  560.82 +
  560.83 +        System.out.println("Expected intrinsic count is " + expectedIntrinsicCount + " name " + getIntrinsicId());
  560.84 +
  560.85 +        final FileOutputStream out = new FileOutputStream(getVMOption("LogFile") + ".verify.properties");
  560.86 +        Properties expectedProps = new Properties();
  560.87 +        expectedProps.setProperty("intrinsic.name", getIntrinsicId());
  560.88 +        expectedProps.setProperty("intrinsic.expectedCount", String.valueOf(expectedIntrinsicCount));
  560.89 +        expectedProps.store(out, null);
  560.90 +
  560.91 +        out.close();
  560.92 +    }
  560.93 +
  560.94 +    protected void printEnvironmentInfo() {
  560.95 +        System.out.println("java.vm.name=" + javaVmName);
  560.96 +        System.out.println("os.arch=" + Platform.getOsArch());
  560.97 +        System.out.println("java.vm.info=" + MODE);
  560.98 +        System.out.println("useMathExactIntrinsics=" + useMathExactIntrinsics);
  560.99 +    }
 560.100 +
 560.101 +    protected void compileAtLevel(int level) {
 560.102 +        WHITE_BOX.enqueueMethodForCompilation(method, level);
 560.103 +        waitBackgroundCompilation();
 560.104 +        checkCompilation(method, level);
 560.105 +    }
 560.106 +
 560.107 +    protected void checkCompilation(Executable executable, int level) {
 560.108 +        if (!WHITE_BOX.isMethodCompiled(executable)) {
 560.109 +            throw new RuntimeException("Test bug, expected compilation (level): " + level + ", but not compiled");
 560.110 +        }
 560.111 +        final int compilationLevel = WHITE_BOX.getMethodCompilationLevel(executable);
 560.112 +        if (compilationLevel != level) {
 560.113 +            if (!(TIERED_COMPILATION && level == COMP_LEVEL_FULL_PROFILE && compilationLevel == COMP_LEVEL_LIMITED_PROFILE)) { //possible case
 560.114 +                throw new RuntimeException("Test bug, expected compilation (level): " + level + ", but level: " + compilationLevel);
 560.115 +            }
 560.116 +        }
 560.117 +    }
 560.118 +
 560.119 +    protected abstract boolean isIntrinsicSupported();
 560.120 +
 560.121 +    protected abstract String getIntrinsicId();
 560.122 +
 560.123 +    protected boolean isServerVM() {
 560.124 +        return javaVmName.toLowerCase().contains("server");
 560.125 +    }
 560.126 +
 560.127 +    static class IntTest extends IntrinsicBase {
 560.128 +        protected IntTest(MathIntrinsic.IntIntrinsic testCase) {
 560.129 +            super(testCase);
 560.130 +        }
 560.131 +
 560.132 +        @Override
 560.133 +        protected boolean isIntrinsicSupported() {
 560.134 +            return isServerVM() && Boolean.valueOf(useMathExactIntrinsics) && (Platform.isX86() || Platform.isX64());
 560.135 +        }
 560.136 +
 560.137 +        @Override
 560.138 +        protected String getIntrinsicId() {
 560.139 +            return "_" + testCase.name().toLowerCase() + "ExactI";
 560.140 +        }
 560.141 +    }
 560.142 +
 560.143 +    static class LongTest extends IntrinsicBase {
 560.144 +        protected LongTest(MathIntrinsic.LongIntrinsic testCase) {
 560.145 +            super(testCase);
 560.146 +        }
 560.147 +
 560.148 +        @Override
 560.149 +        protected boolean isIntrinsicSupported() {
 560.150 +            return isServerVM() && Boolean.valueOf(useMathExactIntrinsics) && Platform.isX64();
 560.151 +        }
 560.152 +
 560.153 +        @Override
 560.154 +        protected String getIntrinsicId() {
 560.155 +            return "_" + testCase.name().toLowerCase() + "ExactL";
 560.156 +        }
 560.157 +    }
 560.158 +}
   561.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   561.2 +++ b/test/compiler/intrinsics/mathexact/sanity/MathIntrinsic.java	Wed Jan 22 17:42:23 2014 -0800
   561.3 @@ -0,0 +1,155 @@
   561.4 +/*
   561.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   561.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   561.7 + *
   561.8 + * This code is free software; you can redistribute it and/or modify it
   561.9 + * under the terms of the GNU General Public License version 2 only, as
  561.10 + * published by the Free Software Foundation.
  561.11 + *
  561.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  561.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  561.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  561.15 + * version 2 for more details (a copy is included in the LICENSE file that
  561.16 + * accompanied this code).
  561.17 + *
  561.18 + * You should have received a copy of the GNU General Public License version
  561.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  561.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  561.21 + *
  561.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  561.23 + * or visit www.oracle.com if you need additional information or have any
  561.24 + * questions.
  561.25 + */
  561.26 +
  561.27 +import java.lang.reflect.Executable;
  561.28 +import java.util.concurrent.Callable;
  561.29 +
  561.30 +public class MathIntrinsic {
  561.31 +
  561.32 +    enum IntIntrinsic implements CompilerWhiteBoxTest.TestCase {
  561.33 +        Add {
  561.34 +            @Override
  561.35 +            Object execMathMethod() {
  561.36 +                return intR = Math.addExact(int1, int2);
  561.37 +            }
  561.38 +        },
  561.39 +        Subtract {
  561.40 +            @Override
  561.41 +            Object execMathMethod() {
  561.42 +                return intR = Math.subtractExact(int1, int2);
  561.43 +            }
  561.44 +        },
  561.45 +        Multiply {
  561.46 +            @Override
  561.47 +            Object execMathMethod() {
  561.48 +                return intR = Math.multiplyExact(int1, int2);
  561.49 +            }
  561.50 +        },
  561.51 +        Increment {
  561.52 +            @Override
  561.53 +            Object execMathMethod() {
  561.54 +                return intR = Math.incrementExact(int1);
  561.55 +            }
  561.56 +        },
  561.57 +        Decrement {
  561.58 +            @Override
  561.59 +            Object execMathMethod() {
  561.60 +                return intR = Math.decrementExact(int1);
  561.61 +            }
  561.62 +        },
  561.63 +        Negate {
  561.64 +            @Override
  561.65 +            Object execMathMethod() {
  561.66 +                return intR = Math.negateExact(int1);
  561.67 +            }
  561.68 +        };
  561.69 +        protected int int1;
  561.70 +        protected int int2;
  561.71 +        protected int intR;
  561.72 +
  561.73 +        abstract Object execMathMethod();
  561.74 +
  561.75 +        @Override
  561.76 +        public Executable getExecutable() {
  561.77 +            try {
  561.78 +                return getClass().getDeclaredMethod("execMathMethod");
  561.79 +            } catch (NoSuchMethodException e) {
  561.80 +                throw new RuntimeException("Test bug, no such method: " + e);
  561.81 +            }
  561.82 +        }
  561.83 +
  561.84 +        @Override
  561.85 +        public Callable<Integer> getCallable() {
  561.86 +            return null;
  561.87 +        }
  561.88 +
  561.89 +        @Override
  561.90 +        public boolean isOsr() {
  561.91 +            return false;
  561.92 +        }
  561.93 +
  561.94 +    }
  561.95 +
  561.96 +    enum LongIntrinsic implements CompilerWhiteBoxTest.TestCase {
  561.97 +        Add {
  561.98 +            @Override
  561.99 +            Object execMathMethod() {
 561.100 +                return longR = Math.addExact(long1, long2);
 561.101 +            }
 561.102 +        },
 561.103 +        Subtract {
 561.104 +            @Override
 561.105 +            Object execMathMethod() {
 561.106 +                return longR = Math.subtractExact(long1, long2);
 561.107 +            }
 561.108 +        },
 561.109 +        Multiply {
 561.110 +            @Override
 561.111 +            Object execMathMethod() {
 561.112 +                return longR = Math.multiplyExact(long1, long2);
 561.113 +            }
 561.114 +        },
 561.115 +        Increment {
 561.116 +            @Override
 561.117 +            Object execMathMethod() {
 561.118 +                return longR = Math.incrementExact(long1);
 561.119 +            }
 561.120 +        },
 561.121 +        Decrement {
 561.122 +            @Override
 561.123 +            Object execMathMethod() {
 561.124 +                return longR = Math.decrementExact(long1);
 561.125 +            }
 561.126 +        },
 561.127 +        Negate {
 561.128 +            @Override
 561.129 +            Object execMathMethod() {
 561.130 +                return longR = Math.negateExact(long1);
 561.131 +            }
 561.132 +        };
 561.133 +        protected long long1;
 561.134 +        protected long long2;
 561.135 +        protected long longR;
 561.136 +
 561.137 +        abstract Object execMathMethod();
 561.138 +
 561.139 +        @Override
 561.140 +        public Executable getExecutable() {
 561.141 +            try {
 561.142 +                return getClass().getDeclaredMethod("execMathMethod");
 561.143 +            } catch (NoSuchMethodException e) {
 561.144 +                throw new RuntimeException("Test bug, no such method: " + e);
 561.145 +            }
 561.146 +        }
 561.147 +
 561.148 +        @Override
 561.149 +        public Callable<Integer> getCallable() {
 561.150 +            return null;
 561.151 +        }
 561.152 +
 561.153 +        @Override
 561.154 +        public boolean isOsr() {
 561.155 +            return false;
 561.156 +        }
 561.157 +    }
 561.158 +}
   562.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   562.2 +++ b/test/compiler/intrinsics/mathexact/sanity/MultiplyExactIntTest.java	Wed Jan 22 17:42:23 2014 -0800
   562.3 @@ -0,0 +1,45 @@
   562.4 +/*
   562.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   562.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   562.7 + *
   562.8 + * This code is free software; you can redistribute it and/or modify it
   562.9 + * under the terms of the GNU General Public License version 2 only, as
  562.10 + * published by the Free Software Foundation.
  562.11 + *
  562.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  562.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  562.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  562.15 + * version 2 for more details (a copy is included in the LICENSE file that
  562.16 + * accompanied this code).
  562.17 + *
  562.18 + * You should have received a copy of the GNU General Public License version
  562.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  562.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  562.21 + *
  562.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  562.23 + * or visit www.oracle.com if you need additional information or have any
  562.24 + * questions.
  562.25 + */
  562.26 +
  562.27 +/*
  562.28 + * @test
  562.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  562.30 + * @build MultiplyExactIntTest
  562.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  562.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  562.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  562.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  562.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics MultiplyExactIntTest
  562.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  562.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  562.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  562.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics MultiplyExactIntTest
  562.40 + * @run main Verifier hs_neg.log hs.log
  562.41 + */
  562.42 +
  562.43 +public class MultiplyExactIntTest {
  562.44 +
  562.45 +    public static void main(String[] args) throws Exception {
  562.46 +        new IntrinsicBase.IntTest(MathIntrinsic.IntIntrinsic.Multiply).test();
  562.47 +    }
  562.48 +}
   563.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   563.2 +++ b/test/compiler/intrinsics/mathexact/sanity/MultiplyExactLongTest.java	Wed Jan 22 17:42:23 2014 -0800
   563.3 @@ -0,0 +1,45 @@
   563.4 +/*
   563.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   563.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   563.7 + *
   563.8 + * This code is free software; you can redistribute it and/or modify it
   563.9 + * under the terms of the GNU General Public License version 2 only, as
  563.10 + * published by the Free Software Foundation.
  563.11 + *
  563.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  563.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  563.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  563.15 + * version 2 for more details (a copy is included in the LICENSE file that
  563.16 + * accompanied this code).
  563.17 + *
  563.18 + * You should have received a copy of the GNU General Public License version
  563.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  563.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  563.21 + *
  563.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  563.23 + * or visit www.oracle.com if you need additional information or have any
  563.24 + * questions.
  563.25 + */
  563.26 +
  563.27 +/*
  563.28 + * @test
  563.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  563.30 + * @build MultiplyExactLongTest
  563.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  563.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  563.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  563.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  563.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics MultiplyExactLongTest
  563.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  563.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  563.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  563.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics MultiplyExactLongTest
  563.40 + * @run main Verifier hs_neg.log hs.log
  563.41 + */
  563.42 +
  563.43 +public class MultiplyExactLongTest {
  563.44 +
  563.45 +    public static void main(String[] args) throws Exception {
  563.46 +        new IntrinsicBase.LongTest(MathIntrinsic.LongIntrinsic.Multiply).test();
  563.47 +    }
  563.48 +}
   564.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   564.2 +++ b/test/compiler/intrinsics/mathexact/sanity/NegateExactIntTest.java	Wed Jan 22 17:42:23 2014 -0800
   564.3 @@ -0,0 +1,45 @@
   564.4 +/*
   564.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   564.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   564.7 + *
   564.8 + * This code is free software; you can redistribute it and/or modify it
   564.9 + * under the terms of the GNU General Public License version 2 only, as
  564.10 + * published by the Free Software Foundation.
  564.11 + *
  564.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  564.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  564.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  564.15 + * version 2 for more details (a copy is included in the LICENSE file that
  564.16 + * accompanied this code).
  564.17 + *
  564.18 + * You should have received a copy of the GNU General Public License version
  564.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  564.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  564.21 + *
  564.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  564.23 + * or visit www.oracle.com if you need additional information or have any
  564.24 + * questions.
  564.25 + */
  564.26 +
  564.27 +/*
  564.28 + * @test
  564.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  564.30 + * @build NegateExactIntTest
  564.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  564.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  564.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  564.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  564.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics NegateExactIntTest
  564.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  564.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  564.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  564.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics NegateExactIntTest
  564.40 + * @run main Verifier hs_neg.log hs.log
  564.41 + */
  564.42 +
  564.43 +public class NegateExactIntTest {
  564.44 +
  564.45 +    public static void main(String[] args) throws Exception {
  564.46 +        new IntrinsicBase.IntTest(MathIntrinsic.IntIntrinsic.Negate).test();
  564.47 +    }
  564.48 +}
   565.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   565.2 +++ b/test/compiler/intrinsics/mathexact/sanity/NegateExactLongTest.java	Wed Jan 22 17:42:23 2014 -0800
   565.3 @@ -0,0 +1,45 @@
   565.4 +/*
   565.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   565.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   565.7 + *
   565.8 + * This code is free software; you can redistribute it and/or modify it
   565.9 + * under the terms of the GNU General Public License version 2 only, as
  565.10 + * published by the Free Software Foundation.
  565.11 + *
  565.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  565.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  565.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  565.15 + * version 2 for more details (a copy is included in the LICENSE file that
  565.16 + * accompanied this code).
  565.17 + *
  565.18 + * You should have received a copy of the GNU General Public License version
  565.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  565.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  565.21 + *
  565.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  565.23 + * or visit www.oracle.com if you need additional information or have any
  565.24 + * questions.
  565.25 + */
  565.26 +
  565.27 +/*
  565.28 + * @test
  565.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  565.30 + * @build NegateExactLongTest
  565.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  565.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  565.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  565.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  565.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics NegateExactLongTest
  565.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  565.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  565.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  565.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics NegateExactLongTest
  565.40 + * @run main Verifier hs_neg.log hs.log
  565.41 + */
  565.42 +
  565.43 +public class NegateExactLongTest {
  565.44 +
  565.45 +    public static void main(String[] args) throws Exception {
  565.46 +        new IntrinsicBase.LongTest(MathIntrinsic.LongIntrinsic.Negate).test();
  565.47 +    }
  565.48 +}
   566.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   566.2 +++ b/test/compiler/intrinsics/mathexact/sanity/SubtractExactIntTest.java	Wed Jan 22 17:42:23 2014 -0800
   566.3 @@ -0,0 +1,46 @@
   566.4 +/*
   566.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   566.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   566.7 + *
   566.8 + * This code is free software; you can redistribute it and/or modify it
   566.9 + * under the terms of the GNU General Public License version 2 only, as
  566.10 + * published by the Free Software Foundation.
  566.11 + *
  566.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  566.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  566.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  566.15 + * version 2 for more details (a copy is included in the LICENSE file that
  566.16 + * accompanied this code).
  566.17 + *
  566.18 + * You should have received a copy of the GNU General Public License version
  566.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  566.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  566.21 + *
  566.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  566.23 + * or visit www.oracle.com if you need additional information or have any
  566.24 + * questions.
  566.25 + */
  566.26 +
  566.27 +/*
  566.28 + * @test
  566.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  566.30 + * @build SubtractExactIntTest
  566.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  566.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  566.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  566.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  566.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics SubtractExactIntTest
  566.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  566.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  566.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  566.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics SubtractExactIntTest
  566.40 + * @run main Verifier hs_neg.log hs.log
  566.41 +
  566.42 + */
  566.43 +
  566.44 +public class SubtractExactIntTest {
  566.45 +
  566.46 +    public static void main(String[] args) throws Exception {
  566.47 +        new IntrinsicBase.IntTest(MathIntrinsic.IntIntrinsic.Subtract).test();
  566.48 +    }
  566.49 +}
   567.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   567.2 +++ b/test/compiler/intrinsics/mathexact/sanity/SubtractExactLongTest.java	Wed Jan 22 17:42:23 2014 -0800
   567.3 @@ -0,0 +1,45 @@
   567.4 +/*
   567.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   567.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   567.7 + *
   567.8 + * This code is free software; you can redistribute it and/or modify it
   567.9 + * under the terms of the GNU General Public License version 2 only, as
  567.10 + * published by the Free Software Foundation.
  567.11 + *
  567.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  567.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  567.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  567.15 + * version 2 for more details (a copy is included in the LICENSE file that
  567.16 + * accompanied this code).
  567.17 + *
  567.18 + * You should have received a copy of the GNU General Public License version
  567.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  567.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  567.21 + *
  567.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  567.23 + * or visit www.oracle.com if you need additional information or have any
  567.24 + * questions.
  567.25 + */
  567.26 +
  567.27 +/*
  567.28 + * @test
  567.29 + * @library /testlibrary /testlibrary/whitebox /compiler/whitebox
  567.30 + * @build SubtractExactLongTest
  567.31 + * @run main ClassFileInstaller sun.hotspot.WhiteBox
  567.32 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  567.33 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  567.34 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  567.35 + *                   -XX:LogFile=hs_neg.log -XX:-UseMathExactIntrinsics SubtractExactLongTest
  567.36 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  567.37 + *                   -XX:+IgnoreUnrecognizedVMOptions -XX:+WhiteBoxAPI -XX:+LogCompilation
  567.38 + *                   -XX:CompileCommand=compileonly,MathIntrinsic*::execMathMethod
  567.39 + *                   -XX:LogFile=hs.log -XX:+UseMathExactIntrinsics SubtractExactLongTest
  567.40 + * @run main Verifier hs_neg.log hs.log
  567.41 + */
  567.42 +
  567.43 +public class SubtractExactLongTest {
  567.44 +
  567.45 +    public static void main(String[] args) throws Exception {
  567.46 +        new IntrinsicBase.LongTest(MathIntrinsic.LongIntrinsic.Subtract).test();
  567.47 +    }
  567.48 +}
   568.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   568.2 +++ b/test/compiler/intrinsics/mathexact/sanity/Verifier.java	Wed Jan 22 17:42:23 2014 -0800
   568.3 @@ -0,0 +1,71 @@
   568.4 +/*
   568.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   568.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   568.7 + *
   568.8 + * This code is free software; you can redistribute it and/or modify it
   568.9 + * under the terms of the GNU General Public License version 2 only, as
  568.10 + * published by the Free Software Foundation.
  568.11 + *
  568.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  568.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  568.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  568.15 + * version 2 for more details (a copy is included in the LICENSE file that
  568.16 + * accompanied this code).
  568.17 + *
  568.18 + * You should have received a copy of the GNU General Public License version
  568.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  568.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  568.21 + *
  568.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  568.23 + * or visit www.oracle.com if you need additional information or have any
  568.24 + * questions.
  568.25 + */
  568.26 +
  568.27 +import java.io.BufferedReader;
  568.28 +import java.io.FileReader;
  568.29 +import java.util.Properties;
  568.30 +
  568.31 +public class Verifier {
  568.32 +
  568.33 +    public static void main(String[] args) throws Exception {
  568.34 +        if (args.length == 0)
  568.35 +            throw new RuntimeException("Test bug, nothing to verify");
  568.36 +        for (String hsLogFile : args) {
  568.37 +            verify(hsLogFile);
  568.38 +        }
  568.39 +    }
  568.40 +
  568.41 +    private static void verify(String hsLogFile) throws Exception {
  568.42 +        System.out.println("Verifying " + hsLogFile);
  568.43 +
  568.44 +        final Properties expectedProperties = new Properties();
  568.45 +        final FileReader reader = new FileReader(hsLogFile + ".verify.properties");
  568.46 +        expectedProperties.load(reader);
  568.47 +        reader.close();
  568.48 +
  568.49 +        int fullMatchCnt = 0;
  568.50 +        int suspectCnt = 0;
  568.51 +        final String intrinsicId = expectedProperties.getProperty("intrinsic.name");
  568.52 +        final String prefix = "<intrinsic id='";
  568.53 +        final String prefixWithId = prefix + intrinsicId + "'";
  568.54 +        final int expectedCount = Integer.parseInt(expectedProperties.getProperty("intrinsic.expectedCount"));
  568.55 +
  568.56 +        BufferedReader r = new BufferedReader(new FileReader(hsLogFile));
  568.57 +        String s;
  568.58 +        while ((s = r.readLine()) != null) {
  568.59 +            if (s.startsWith(prefix)) {
  568.60 +                if (s.startsWith(prefixWithId)) {
  568.61 +                    fullMatchCnt++;
  568.62 +                } else {
  568.63 +                    suspectCnt++;
  568.64 +                    System.out.println("WARNING: Other intrinsic detected " + s);
  568.65 +                }
  568.66 +            }
  568.67 +        }
  568.68 +        r.close();
  568.69 +
  568.70 +        System.out.println("Intrinsic " + intrinsicId + " verification, expected: " + expectedCount + ", matched: " + fullMatchCnt + ", suspected: " + suspectCnt);
  568.71 +        if (expectedCount != fullMatchCnt)
  568.72 +            throw new RuntimeException("Unexpected count of intrinsic  " + prefixWithId + " expected:" + expectedCount + ", matched: " + fullMatchCnt + ", suspected: " + suspectCnt);
  568.73 +    }
  568.74 +}
   569.1 --- a/test/compiler/jsr292/ConcurrentClassLoadingTest.java	Thu Jan 16 14:25:51 2014 +0100
   569.2 +++ b/test/compiler/jsr292/ConcurrentClassLoadingTest.java	Wed Jan 22 17:42:23 2014 -0800
   569.3 @@ -159,34 +159,18 @@
   569.4      }
   569.5  
   569.6      final static String[] classNames = {
   569.7 -            "java.lang.invoke.AbstractValidatingLambdaMetafactory",
   569.8 -            "java.lang.invoke.BoundMethodHandle",
   569.9              "java.lang.invoke.CallSite",
  569.10              "java.lang.invoke.ConstantCallSite",
  569.11 -            "java.lang.invoke.DirectMethodHandle",
  569.12 -            "java.lang.invoke.InnerClassLambdaMetafactory",
  569.13 -            "java.lang.invoke.InvokeDynamic",
  569.14 -            "java.lang.invoke.InvokeGeneric",
  569.15 -            "java.lang.invoke.InvokerBytecodeGenerator",
  569.16 -            "java.lang.invoke.Invokers",
  569.17              "java.lang.invoke.LambdaConversionException",
  569.18 -            "java.lang.invoke.LambdaForm",
  569.19              "java.lang.invoke.LambdaMetafactory",
  569.20 -            "java.lang.invoke.MemberName",
  569.21              "java.lang.invoke.MethodHandle",
  569.22 -            "java.lang.invoke.MethodHandleImpl",
  569.23              "java.lang.invoke.MethodHandleInfo",
  569.24 -            "java.lang.invoke.MethodHandleNatives",
  569.25              "java.lang.invoke.MethodHandleProxies",
  569.26              "java.lang.invoke.MethodHandles",
  569.27 -            "java.lang.invoke.MethodHandleStatics",
  569.28              "java.lang.invoke.MethodType",
  569.29 -            "java.lang.invoke.MethodTypeForm",
  569.30              "java.lang.invoke.MutableCallSite",
  569.31              "java.lang.invoke.SerializedLambda",
  569.32 -            "java.lang.invoke.SimpleMethodHandle",
  569.33              "java.lang.invoke.SwitchPoint",
  569.34 -            "java.lang.invoke.TypeConvertingMethodAdapter",
  569.35              "java.lang.invoke.VolatileCallSite",
  569.36              "java.lang.invoke.WrongMethodTypeException"
  569.37      };
   570.1 --- a/test/compiler/startup/SmallCodeCacheStartup.java	Thu Jan 16 14:25:51 2014 +0100
   570.2 +++ b/test/compiler/startup/SmallCodeCacheStartup.java	Wed Jan 22 17:42:23 2014 -0800
   570.3 @@ -37,7 +37,6 @@
   570.4  
   570.5      pb = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=3m", "-XX:CICompilerCount=64", "-version");
   570.6      out = new OutputAnalyzer(pb.start());
   570.7 -    out.shouldContain("no space to run compiler");
   570.8      out.shouldHaveExitValue(0);
   570.9    }
  570.10  }
   571.1 --- a/test/compiler/tiered/NonTieredLevelsTest.java	Thu Jan 16 14:25:51 2014 +0100
   571.2 +++ b/test/compiler/tiered/NonTieredLevelsTest.java	Wed Jan 22 17:42:23 2014 -0800
   571.3 @@ -30,7 +30,7 @@
   571.4   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   571.5   * @run main/othervm -Xbootclasspath/a:. -XX:-TieredCompilation
   571.6   *                   -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
   571.7 - *                   -XX:CompileCommand=compileonly,TestCase$Helper::*
   571.8 + *                   -XX:CompileCommand=compileonly,SimpleTestCase$Helper::*
   571.9   *                   NonTieredLevelsTest
  571.10   * @summary Verify that only one level can be used
  571.11   * @author igor.ignatyev@oracle.com
  571.12 @@ -59,9 +59,7 @@
  571.13                      + "TieredCompilation. Skip test.");
  571.14              return;
  571.15          }
  571.16 -        for (TestCase test : TestCase.values()) {
  571.17 -            new NonTieredLevelsTest(test).runTest();
  571.18 -        }
  571.19 +        CompilerWhiteBoxTest.main(NonTieredLevelsTest::new, args);
  571.20      }
  571.21  
  571.22      private NonTieredLevelsTest(TestCase testCase) {
  571.23 @@ -80,7 +78,7 @@
  571.24          checkLevel(AVAILABLE_COMP_LEVEL, compLevel);
  571.25          int bci = WHITE_BOX.getMethodEntryBci(method);
  571.26          deoptimize();
  571.27 -        if (!testCase.isOsr) {
  571.28 +        if (!testCase.isOsr()) {
  571.29              for (int level = 1; level <= COMP_LEVEL_MAX; ++level) {
  571.30                  if (IS_AVAILABLE_COMPLEVEL.test(level)) {
  571.31                      testAvailableLevel(level, bci);
  571.32 @@ -94,3 +92,4 @@
  571.33          }
  571.34      }
  571.35  }
  571.36 +
   572.1 --- a/test/compiler/tiered/TieredLevelsTest.java	Thu Jan 16 14:25:51 2014 +0100
   572.2 +++ b/test/compiler/tiered/TieredLevelsTest.java	Wed Jan 22 17:42:23 2014 -0800
   572.3 @@ -28,7 +28,7 @@
   572.4   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   572.5   * @run main/othervm -Xbootclasspath/a:. -XX:+TieredCompilation
   572.6   *                   -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
   572.7 - *                   -XX:CompileCommand=compileonly,TestCase$Helper::*
   572.8 + *                   -XX:CompileCommand=compileonly,SimpleTestCase$Helper::*
   572.9   *                   TieredLevelsTest
  572.10   * @summary Verify that all levels &lt; 'TieredStopAtLevel' can be used
  572.11   * @author igor.ignatyev@oracle.com
  572.12 @@ -40,9 +40,7 @@
  572.13                      + "TieredCompilation. Skip test.");
  572.14              return;
  572.15          }
  572.16 -        for (TestCase test : TestCase.values()) {
  572.17 -            new TieredLevelsTest(test).runTest();
  572.18 -        }
  572.19 +        CompilerWhiteBoxTest.main(TieredLevelsTest::new, args);
  572.20      }
  572.21  
  572.22      private TieredLevelsTest(TestCase testCase) {
   573.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   573.2 +++ b/test/compiler/types/TestMeetTopArrayExactConstantArray.java	Wed Jan 22 17:42:23 2014 -0800
   573.3 @@ -0,0 +1,107 @@
   573.4 +/*
   573.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   573.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   573.7 + *
   573.8 + * This code is free software; you can redistribute it and/or modify it
   573.9 + * under the terms of the GNU General Public License version 2 only, as
  573.10 + * published by the Free Software Foundation.
  573.11 + *
  573.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  573.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  573.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  573.15 + * version 2 for more details (a copy is included in the LICENSE file that
  573.16 + * accompanied this code).
  573.17 + *
  573.18 + * You should have received a copy of the GNU General Public License version
  573.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  573.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  573.21 + *
  573.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  573.23 + * or visit www.oracle.com if you need additional information or have any
  573.24 + * questions.
  573.25 + */
  573.26 +
  573.27 +/*
  573.28 + * @test
  573.29 + * @bug 8027571
  573.30 + * @summary meet of TopPTR exact array with constant array is not symmetric
  573.31 + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseOnStackReplacement -XX:TypeProfileLevel=222 -XX:+UnlockExperimentalVMOptions -XX:+UseTypeSpeculation -XX:-BackgroundCompilation TestMeetTopArrayExactConstantArray
  573.32 + *
  573.33 + */
  573.34 +
  573.35 +public class TestMeetTopArrayExactConstantArray {
  573.36 +
  573.37 +    static class A {
  573.38 +    }
  573.39 +
  573.40 +    static class B {
  573.41 +    }
  573.42 +
  573.43 +    static class C extends A {
  573.44 +    }
  573.45 +
  573.46 +    static class D extends C {
  573.47 +    }
  573.48 +
  573.49 +    final static B[] b = new B[10];
  573.50 +
  573.51 +    static void m0(Object[] o) {
  573.52 +        if (o.getClass() ==  Object[].class) {
  573.53 +        }
  573.54 +    }
  573.55 +
  573.56 +    static void m1(Object[] o, boolean cond) {
  573.57 +        if (cond) {
  573.58 +            o = b;
  573.59 +        }
  573.60 +        m0(o);
  573.61 +    }
  573.62 +
  573.63 +    static void m2(Object[] o, boolean cond1, boolean cond2) {
  573.64 +        if (cond1) {
  573.65 +            m1(o, cond2);
  573.66 +        }
  573.67 +    }
  573.68 +
  573.69 +    static void m3(C[] o, boolean cond1, boolean cond2, boolean cond3) {
  573.70 +        if (cond1) {
  573.71 +            m2(o, cond2, cond3);
  573.72 +        }
  573.73 +    }
  573.74 +
  573.75 +    static public void main(String[] args) {
  573.76 +        A[] a = new A[10];
  573.77 +        D[] d = new D[10];
  573.78 +        Object[] o = new Object[10];
  573.79 +        for (int i = 0; i < 5000; i++) {
  573.80 +            // record in profiling that the if in m0 succeeds
  573.81 +            m0(o);
  573.82 +            // record some profiling for m2 and m1
  573.83 +            m2(a, true, (i%2) == 0);
  573.84 +            // record some profiling for m3 and conflicting profile for m2
  573.85 +            m3(d, true, false, (i%2) == 0);
  573.86 +        }
  573.87 +
  573.88 +        // get m3 compiled. The if in m0 will be optimized because of argument profiling in m3
  573.89 +        C[] c = new C[10];
  573.90 +        for (int i = 0; i < 20000; i++) {
  573.91 +            m3(c, true, false, (i%2) == 0);
  573.92 +        }
  573.93 +        // make m3 not entrant and the if in m0 fail
  573.94 +        m3(c, true, true, false);
  573.95 +        m3(c, true, true, false);
  573.96 +        m3(c, true, true, false);
  573.97 +        m3(c, true, true, false);
  573.98 +
  573.99 +        // make m3 recompile, this time with if the not optimized
 573.100 +        // on entry to m3, argument o is of type C[], profiled C[]
 573.101 +        // on entry to m1, argument o is of type C[], speculative C[] exact, profiled A[]. Speculative becomes AnyNull
 573.102 +        // after the if in m1, speculative type of o becomes constant from final field b
 573.103 +        // the true if branch in m0 does a join between the type of o of speculative type constant from final field b and exact klass Object[]
 573.104 +        for (int i = 0; i < 20000; i++) {
 573.105 +            m3(c, true, false, (i%2) == 0);
 573.106 +        }
 573.107 +
 573.108 +        System.out.println("TEST PASSED");
 573.109 +    }
 573.110 +}
   574.1 --- a/test/compiler/types/TypeSpeculation.java	Thu Jan 16 14:25:51 2014 +0100
   574.2 +++ b/test/compiler/types/TypeSpeculation.java	Wed Jan 22 17:42:23 2014 -0800
   574.3 @@ -25,7 +25,7 @@
   574.4   * @test
   574.5   * @bug 8024070
   574.6   * @summary Test that type speculation doesn't cause incorrect execution
   574.7 - * @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -XX:TypeProfileLevel=222 TypeSpeculation
   574.8 + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -XX:TypeProfileLevel=222 -XX:+UnlockExperimentalVMOptions -XX:+UseTypeSpeculation TypeSpeculation
   574.9   *
  574.10   */
  574.11  
  574.12 @@ -398,6 +398,133 @@
  574.13          return true;
  574.14      }
  574.15  
  574.16 +    // java/lang/Object:AnyNull:exact *,iid=top
  574.17 +    // meets
  574.18 +    // stable:bottom[int:max..0]:NotNull *
  574.19 +    static void test10_4(Object o) {
  574.20 +    }
  574.21 +
  574.22 +    static void test10_3(Object o, boolean b) {
  574.23 +        if (b) {
  574.24 +            test10_4(o);
  574.25 +        }
  574.26 +    }
  574.27 +
  574.28 +    static void test10_2(Object o, boolean b1, boolean b2) {
  574.29 +        if (b1) {
  574.30 +            test10_3(o, b2);
  574.31 +        }
  574.32 +    }
  574.33 +
  574.34 +    static void test10_1(B[] b, boolean b1, boolean b2) {
  574.35 +        test10_2(b, b1, b2);
  574.36 +    }
  574.37 +
  574.38 +    static boolean test10() {
  574.39 +        Object o = new Object();
  574.40 +        A[] a = new A[10];
  574.41 +        B[] b = new B[10];
  574.42 +        B[] c = new C[10];
  574.43 +        for (int i = 0; i < 20000; i++) {
  574.44 +            test10_1(b, false, false);
  574.45 +            test10_1(c, false, false);
  574.46 +            test10_2(a, true, false);
  574.47 +            test10_3(o, true);
  574.48 +        }
  574.49 +        return true;
  574.50 +    }
  574.51 +
  574.52 +    // stable:TypeSpeculation$B:TopPTR *,iid=top[int:max..0]:TopPTR *,iid=top
  574.53 +    // meets
  574.54 +    // java/lang/Object:AnyNull:exact *,iid=top
  574.55 +    static void test11_3(Object o) {
  574.56 +    }
  574.57 +
  574.58 +    static void test11_2(Object o, boolean b) {
  574.59 +        if (b) {
  574.60 +            test11_3(o);
  574.61 +        }
  574.62 +    }
  574.63 +
  574.64 +    static void test11_1(B[] b, boolean bb) {
  574.65 +        test11_2(b, bb);
  574.66 +    }
  574.67 +
  574.68 +    static boolean test11() {
  574.69 +        Object o = new Object();
  574.70 +        B[] b = new B[10];
  574.71 +        B[] c = new C[10];
  574.72 +        for (int i = 0; i < 20000; i++) {
  574.73 +            test11_1(b, false);
  574.74 +            test11_1(c, false);
  574.75 +            test11_2(o, true);
  574.76 +        }
  574.77 +        return true;
  574.78 +    }
  574.79 +
  574.80 +    // TypeSpeculation$I *
  574.81 +    // meets
  574.82 +    // java/lang/Object:AnyNull *,iid=top
  574.83 +    static void test12_3(Object o) {
  574.84 +    }
  574.85 +
  574.86 +    static void test12_2(Object o, boolean b) {
  574.87 +        if (b) {
  574.88 +            test12_3(o);
  574.89 +        }
  574.90 +    }
  574.91 +
  574.92 +    static void test12_1(I i, boolean b) {
  574.93 +        test12_2(i, b);
  574.94 +    }
  574.95 +
  574.96 +    static boolean test12() {
  574.97 +        Object o = new Object();
  574.98 +        B b = new B();
  574.99 +        C c = new C();
 574.100 +        for (int i = 0; i < 20000; i++) {
 574.101 +            test12_1(b, false);
 574.102 +            test12_1(c, false);
 574.103 +            test12_2(o, true);
 574.104 +        }
 574.105 +        return true;
 574.106 +    }
 574.107 +
 574.108 +    // stable:bottom[int:max..0]:NotNull *
 574.109 +    // meets
 574.110 +    // stable:TypeSpeculation$A:TopPTR *,iid=top[int:max..0]:AnyNull:exact *,iid=top
 574.111 +    static Object test13_3(Object o, boolean b) {
 574.112 +        Object oo;
 574.113 +        if (b) {
 574.114 +            oo = o;
 574.115 +        } else {
 574.116 +            oo = new A[10];
 574.117 +        }
 574.118 +        return oo;
 574.119 +    }
 574.120 +
 574.121 +    static void test13_2(Object o, boolean b1, boolean b2) {
 574.122 +        if (b1) {
 574.123 +            test13_3(o, b2);
 574.124 +        }
 574.125 +    }
 574.126 +
 574.127 +    static void test13_1(B[] b, boolean b1, boolean b2) {
 574.128 +        test13_2(b, b1, b2);
 574.129 +    }
 574.130 +
 574.131 +    static boolean test13() {
 574.132 +        A[] a = new A[10];
 574.133 +        B[] b = new B[10];
 574.134 +        B[] c = new C[10];
 574.135 +        for (int i = 0; i < 20000; i++) {
 574.136 +            test13_1(b, false, false);
 574.137 +            test13_1(c, false, false);
 574.138 +            test13_2(a, true, (i%2) == 0);
 574.139 +        }
 574.140 +        return true;
 574.141 +    }
 574.142 +
 574.143      static public void main(String[] args) {
 574.144          boolean success = true;
 574.145  
 574.146 @@ -419,6 +546,14 @@
 574.147  
 574.148          success = test9() && success;
 574.149  
 574.150 +        success = test10() && success;
 574.151 +
 574.152 +        success = test11() && success;
 574.153 +
 574.154 +        success = test12() && success;
 574.155 +
 574.156 +        success = test13() && success;
 574.157 +
 574.158          if (success) {
 574.159              System.out.println("TEST PASSED");
 574.160          } else {
   575.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   575.2 +++ b/test/compiler/uncommontrap/StackOverflowGuardPagesOff.java	Wed Jan 22 17:42:23 2014 -0800
   575.3 @@ -0,0 +1,355 @@
   575.4 +/*
   575.5 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
   575.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   575.7 + *
   575.8 + * This code is free software; you can redistribute it and/or modify it
   575.9 + * under the terms of the GNU General Public License version 2 only, as
  575.10 + * published by the Free Software Foundation.
  575.11 + *
  575.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  575.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  575.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  575.15 + * version 2 for more details (a copy is included in the LICENSE file that
  575.16 + * accompanied this code).
  575.17 + *
  575.18 + * You should have received a copy of the GNU General Public License version
  575.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  575.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  575.21 + *
  575.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  575.23 + * or visit www.oracle.com if you need additional information or have any
  575.24 + * questions.
  575.25 + */
  575.26 +
  575.27 +/*
  575.28 + * @test
  575.29 + * @bug 8029383
  575.30 + * @summary stack overflow if callee is marked for deoptimization causes crash
  575.31 + * @run main/othervm -XX:TieredStopAtLevel=1 -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,StackOverflowGuardPagesOff::m1 -XX:CompileCommand=exclude,StackOverflowGuardPagesOff::m2 -Xss256K -XX:-UseOnStackReplacement StackOverflowGuardPagesOff
  575.32 + *
  575.33 + */
  575.34 +
  575.35 +// This test calls m2 recursively until a stack overflow. Then calls
  575.36 +// m3 that calls m1. m1 triggers B's class loading, as a result m1 and
  575.37 +// m3 needs to be deoptimized. Deoptimization of m1 causes a stack
  575.38 +// overflow exception to be thrown which is propagated to m3 in the
  575.39 +// deopt blob. If the guard pages are no enabled, the stack bang in
  575.40 +// the deopt blob triggers a crash.
  575.41 +public class StackOverflowGuardPagesOff {
  575.42 +
  575.43 +    static class A {
  575.44 +        void m() {}
  575.45 +    }
  575.46 +
  575.47 +    static class B extends A {
  575.48 +        void m() {}
  575.49 +    }
  575.50 +
  575.51 +    static void m1(boolean deopt, A a) {
  575.52 +        long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
  575.53 +        l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24,
  575.54 +        l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36,
  575.55 +        l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48,
  575.56 +        l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60,
  575.57 +        l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72,
  575.58 +        l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84,
  575.59 +        l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96,
  575.60 +        l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107,
  575.61 +        l108, l109, l110, l111, l112, l113, l114, l115, l116, l117,
  575.62 +        l118, l119, l120, l121, l122, l123, l124, l125, l126, l127,
  575.63 +        l128, l129, l130, l131, l132, l133, l134, l135, l136, l137,
  575.64 +        l138, l139, l140, l141, l142, l143, l144, l145, l146, l147,
  575.65 +        l148, l149, l150, l151, l152, l153, l154, l155, l156, l157,
  575.66 +        l158, l159, l160, l161, l162, l163, l164, l165, l166, l167,
  575.67 +        l168, l169, l170, l171, l172, l173, l174, l175, l176, l177,
  575.68 +        l178, l179, l180, l181, l182, l183, l184, l185, l186, l187,
  575.69 +        l188, l189, l190, l191, l192, l193, l194, l195, l196, l197,
  575.70 +        l198, l199, l200, l201, l202, l203, l204, l205, l206, l207,
  575.71 +        l208, l209, l210, l211, l212, l213, l214, l215, l216, l217,
  575.72 +        l218, l219, l220, l221, l222, l223, l224, l225, l226, l227,
  575.73 +        l228, l229, l230, l231, l232, l233, l234, l235, l236, l237,
  575.74 +        l238, l239, l240, l241, l242, l243, l244, l245, l246, l247,
  575.75 +        l248, l249, l250, l251, l252, l253, l254, l255, l256, l257,
  575.76 +        l258, l259, l260, l261, l262, l263, l264, l265, l266, l267,
  575.77 +        l268, l269, l270, l271, l272, l273, l274, l275, l276, l277,
  575.78 +        l278, l279, l280, l281, l282, l283, l284, l285, l286, l287,
  575.79 +        l288, l289, l290, l291, l292, l293, l294, l295, l296, l297,
  575.80 +        l298, l299, l300, l301, l302, l303, l304, l305, l306, l307,
  575.81 +        l308, l309, l310, l311, l312, l313, l314, l315, l316, l317,
  575.82 +        l318, l319, l320, l321, l322, l323, l324, l325, l326, l327,
  575.83 +        l328, l329, l330, l331, l332, l333, l334, l335, l336, l337,
  575.84 +        l338, l339, l340, l341, l342, l343, l344, l345, l346, l347,
  575.85 +        l348, l349, l350, l351, l352, l353, l354, l355, l356, l357,
  575.86 +        l358, l359, l360, l361, l362, l363, l364, l365, l366, l367,
  575.87 +        l368, l369, l370, l371, l372, l373, l374, l375, l376, l377,
  575.88 +        l378, l379, l380, l381, l382, l383, l384, l385, l386, l387,
  575.89 +        l388, l389, l390, l391, l392, l393, l394, l395, l396, l397,
  575.90 +        l398, l399, l400, l401, l402, l403, l404, l405, l406, l407,
  575.91 +        l408, l409, l410, l411, l412, l413, l414, l415, l416, l417,
  575.92 +        l418, l419, l420, l421, l422, l423, l424, l425, l426, l427,
  575.93 +        l428, l429, l430, l431, l432, l433, l434, l435, l436, l437,
  575.94 +        l438, l439, l440, l441, l442, l443, l444, l445, l446, l447,
  575.95 +        l448, l449, l450, l451, l452, l453, l454, l455, l456, l457,
  575.96 +        l458, l459, l460, l461, l462, l463, l464, l465, l466, l467,
  575.97 +        l468, l469, l470, l471, l472, l473, l474, l475, l476, l477,
  575.98 +        l478, l479, l480, l481, l482, l483, l484, l485, l486, l487,
  575.99 +        l488, l489, l490, l491, l492, l493, l494, l495, l496, l497,
 575.100 +        l498, l499, l500, l501, l502, l503, l504, l505, l506, l507,
 575.101 +        l508, l509, l510, l511;
 575.102 +
 575.103 +        long ll0, ll1, ll2, ll3, ll4, ll5, ll6, ll7, ll8, ll9, ll10, ll11, ll12,
 575.104 +        ll13, ll14, ll15, ll16, ll17, ll18, ll19, ll20, ll21, ll22, ll23, ll24,
 575.105 +        ll25, ll26, ll27, ll28, ll29, ll30, ll31, ll32, ll33, ll34, ll35, ll36,
 575.106 +        ll37, ll38, ll39, ll40, ll41, ll42, ll43, ll44, ll45, ll46, ll47, ll48,
 575.107 +        ll49, ll50, ll51, ll52, ll53, ll54, ll55, ll56, ll57, ll58, ll59, ll60,
 575.108 +        ll61, ll62, ll63, ll64, ll65, ll66, ll67, ll68, ll69, ll70, ll71, ll72,
 575.109 +        ll73, ll74, ll75, ll76, ll77, ll78, ll79, ll80, ll81, ll82, ll83, ll84,
 575.110 +        ll85, ll86, ll87, ll88, ll89, ll90, ll91, ll92, ll93, ll94, ll95, ll96,
 575.111 +        ll97, ll98, ll99, ll100, ll101, ll102, ll103, ll104, ll105, ll106, ll107,
 575.112 +        ll108, ll109, ll110, ll111, ll112, ll113, ll114, ll115, ll116, ll117,
 575.113 +        ll118, ll119, ll120, ll121, ll122, ll123, ll124, ll125, ll126, ll127,
 575.114 +        ll128, ll129, ll130, ll131, ll132, ll133, ll134, ll135, ll136, ll137,
 575.115 +        ll138, ll139, ll140, ll141, ll142, ll143, ll144, ll145, ll146, ll147,
 575.116 +        ll148, ll149, ll150, ll151, ll152, ll153, ll154, ll155, ll156, ll157,
 575.117 +        ll158, ll159, ll160, ll161, ll162, ll163, ll164, ll165, ll166, ll167,
 575.118 +        ll168, ll169, ll170, ll171, ll172, ll173, ll174, ll175, ll176, ll177,
 575.119 +        ll178, ll179, ll180, ll181, ll182, ll183, ll184, ll185, ll186, ll187,
 575.120 +        ll188, ll189, ll190, ll191, ll192, ll193, ll194, ll195, ll196, ll197,
 575.121 +        ll198, ll199, ll200, ll201, ll202, ll203, ll204, ll205, ll206, ll207,
 575.122 +        ll208, ll209, ll210, ll211, ll212, ll213, ll214, ll215, ll216, ll217,
 575.123 +        ll218, ll219, ll220, ll221, ll222, ll223, ll224, ll225, ll226, ll227,
 575.124 +        ll228, ll229, ll230, ll231, ll232, ll233, ll234, ll235, ll236, ll237,
 575.125 +        ll238, ll239, ll240, ll241, ll242, ll243, ll244, ll245, ll246, ll247,
 575.126 +        ll248, ll249, ll250, ll251, ll252, ll253, ll254, ll255, ll256, ll257,
 575.127 +        ll258, ll259, ll260, ll261, ll262, ll263, ll264, ll265, ll266, ll267,
 575.128 +        ll268, ll269, ll270, ll271, ll272, ll273, ll274, ll275, ll276, ll277,
 575.129 +        ll278, ll279, ll280, ll281, ll282, ll283, ll284, ll285, ll286, ll287,
 575.130 +        ll288, ll289, ll290, ll291, ll292, ll293, ll294, ll295, ll296, ll297,
 575.131 +        ll298, ll299, ll300, ll301, ll302, ll303, ll304, ll305, ll306, ll307,
 575.132 +        ll308, ll309, ll310, ll311, ll312, ll313, ll314, ll315, ll316, ll317,
 575.133 +        ll318, ll319, ll320, ll321, ll322, ll323, ll324, ll325, ll326, ll327,
 575.134 +        ll328, ll329, ll330, ll331, ll332, ll333, ll334, ll335, ll336, ll337,
 575.135 +        ll338, ll339, ll340, ll341, ll342, ll343, ll344, ll345, ll346, ll347,
 575.136 +        ll348, ll349, ll350, ll351, ll352, ll353, ll354, ll355, ll356, ll357,
 575.137 +        ll358, ll359, ll360, ll361, ll362, ll363, ll364, ll365, ll366, ll367,
 575.138 +        ll368, ll369, ll370, ll371, ll372, ll373, ll374, ll375, ll376, ll377,
 575.139 +        ll378, ll379, ll380, ll381, ll382, ll383, ll384, ll385, ll386, ll387,
 575.140 +        ll388, ll389, ll390, ll391, ll392, ll393, ll394, ll395, ll396, ll397,
 575.141 +        ll398, ll399, ll400, ll401, ll402, ll403, ll404, ll405, ll406, ll407,
 575.142 +        ll408, ll409, ll410, ll411, ll412, ll413, ll414, ll415, ll416, ll417,
 575.143 +        ll418, ll419, ll420, ll421, ll422, ll423, ll424, ll425, ll426, ll427,
 575.144 +        ll428, ll429, ll430, ll431, ll432, ll433, ll434, ll435, ll436, ll437,
 575.145 +        ll438, ll439, ll440, ll441, ll442, ll443, ll444, ll445, ll446, ll447,
 575.146 +        ll448, ll449, ll450, ll451, ll452, ll453, ll454, ll455, ll456, ll457,
 575.147 +        ll458, ll459, ll460, ll461, ll462, ll463, ll464, ll465, ll466, ll467,
 575.148 +        ll468, ll469, ll470, ll471, ll472, ll473, ll474, ll475, ll476, ll477,
 575.149 +        ll478, ll479, ll480, ll481, ll482, ll483, ll484, ll485, ll486, ll487,
 575.150 +        ll488, ll489, ll490, ll491, ll492, ll493, ll494, ll495, ll496, ll497,
 575.151 +        ll498, ll499, ll500, ll501, ll502, ll503, ll504, ll505, ll506, ll507,
 575.152 +        ll508, ll509, ll510, ll511;
 575.153 +
 575.154 +        a.m();
 575.155 +
 575.156 +        if (deopt) {
 575.157 +            do_load = true;
 575.158 +            while (!load_done);
 575.159 +        }
 575.160 +    }
 575.161 +
 575.162 +    static void m2(boolean deopt, A a) {
 575.163 +        long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
 575.164 +        l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24,
 575.165 +        l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36,
 575.166 +        l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48,
 575.167 +        l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60,
 575.168 +        l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72,
 575.169 +        l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84,
 575.170 +        l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96,
 575.171 +        l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107,
 575.172 +        l108, l109, l110, l111, l112, l113, l114, l115, l116, l117,
 575.173 +        l118, l119, l120, l121, l122, l123, l124, l125, l126, l127,
 575.174 +        l128, l129, l130, l131, l132, l133, l134, l135, l136, l137,
 575.175 +        l138, l139, l140, l141, l142, l143, l144, l145, l146, l147,
 575.176 +        l148, l149, l150, l151, l152, l153, l154, l155, l156, l157,
 575.177 +        l158, l159, l160, l161, l162, l163, l164, l165, l166, l167,
 575.178 +        l168, l169, l170, l171, l172, l173, l174, l175, l176, l177,
 575.179 +        l178, l179, l180, l181, l182, l183, l184, l185, l186, l187,
 575.180 +        l188, l189, l190, l191, l192, l193, l194, l195, l196, l197,
 575.181 +        l198, l199, l200, l201, l202, l203, l204, l205, l206, l207,
 575.182 +        l208, l209, l210, l211, l212, l213, l214, l215, l216, l217,
 575.183 +        l218, l219, l220, l221, l222, l223, l224, l225, l226, l227,
 575.184 +        l228, l229, l230, l231, l232, l233, l234, l235, l236, l237,
 575.185 +        l238, l239, l240, l241, l242, l243, l244, l245, l246, l247,
 575.186 +        l248, l249, l250, l251, l252, l253, l254, l255, l256, l257,
 575.187 +        l258, l259, l260, l261, l262, l263, l264, l265, l266, l267,
 575.188 +        l268, l269, l270, l271, l272, l273, l274, l275, l276, l277,
 575.189 +        l278, l279, l280, l281, l282, l283, l284, l285, l286, l287,
 575.190 +        l288, l289, l290, l291, l292, l293, l294, l295, l296, l297,
 575.191 +        l298, l299, l300, l301, l302, l303, l304, l305, l306, l307,
 575.192 +        l308, l309, l310, l311, l312, l313, l314, l315, l316, l317,
 575.193 +        l318, l319, l320, l321, l322, l323, l324, l325, l326, l327,
 575.194 +        l328, l329, l330, l331, l332, l333, l334, l335, l336, l337,
 575.195 +        l338, l339, l340, l341, l342, l343, l344, l345, l346, l347,
 575.196 +        l348, l349, l350, l351, l352, l353, l354, l355, l356, l357,
 575.197 +        l358, l359, l360, l361, l362, l363, l364, l365, l366, l367,
 575.198 +        l368, l369, l370, l371, l372, l373, l374, l375, l376, l377,
 575.199 +        l378, l379, l380, l381, l382, l383, l384, l385, l386, l387,
 575.200 +        l388, l389, l390, l391, l392, l393, l394, l395, l396, l397,
 575.201 +        l398, l399, l400, l401, l402, l403, l404, l405, l406, l407,
 575.202 +        l408, l409, l410, l411, l412, l413, l414, l415, l416, l417,
 575.203 +        l418, l419, l420, l421, l422, l423, l424, l425, l426, l427,
 575.204 +        l428, l429, l430, l431, l432, l433, l434, l435, l436, l437,
 575.205 +        l438, l439, l440, l441, l442, l443, l444, l445, l446, l447,
 575.206 +        l448, l449, l450, l451, l452, l453, l454, l455, l456, l457,
 575.207 +        l458, l459, l460, l461, l462, l463, l464, l465, l466, l467,
 575.208 +        l468, l469, l470, l471, l472, l473, l474, l475, l476, l477,
 575.209 +        l478, l479, l480, l481, l482, l483, l484, l485, l486, l487,
 575.210 +        l488, l489, l490, l491, l492, l493, l494, l495, l496, l497,
 575.211 +        l498, l499, l500, l501, l502, l503, l504, l505, l506, l507,
 575.212 +        l508, l509, l510, l511;
 575.213 +
 575.214 +        try {
 575.215 +            m2(deopt, a);
 575.216 +        } catch (StackOverflowError e) {
 575.217 +            m3(deopt, a);
 575.218 +        }
 575.219 +    }
 575.220 +
 575.221 +    static void m3(boolean deopt, A a) {
 575.222 +        long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
 575.223 +        l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24,
 575.224 +        l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36,
 575.225 +        l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48,
 575.226 +        l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60,
 575.227 +        l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72,
 575.228 +        l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84,
 575.229 +        l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96,
 575.230 +        l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107,
 575.231 +        l108, l109, l110, l111, l112, l113, l114, l115, l116, l117,
 575.232 +        l118, l119, l120, l121, l122, l123, l124, l125, l126, l127,
 575.233 +        l128, l129, l130, l131, l132, l133, l134, l135, l136, l137,
 575.234 +        l138, l139, l140, l141, l142, l143, l144, l145, l146, l147,
 575.235 +        l148, l149, l150, l151, l152, l153, l154, l155, l156, l157,
 575.236 +        l158, l159, l160, l161, l162, l163, l164, l165, l166, l167,
 575.237 +        l168, l169, l170, l171, l172, l173, l174, l175, l176, l177,
 575.238 +        l178, l179, l180, l181, l182, l183, l184, l185, l186, l187,
 575.239 +        l188, l189, l190, l191, l192, l193, l194, l195, l196, l197,
 575.240 +        l198, l199, l200, l201, l202, l203, l204, l205, l206, l207,
 575.241 +        l208, l209, l210, l211, l212, l213, l214, l215, l216, l217,
 575.242 +        l218, l219, l220, l221, l222, l223, l224, l225, l226, l227,
 575.243 +        l228, l229, l230, l231, l232, l233, l234, l235, l236, l237,
 575.244 +        l238, l239, l240, l241, l242, l243, l244, l245, l246, l247,
 575.245 +        l248, l249, l250, l251, l252, l253, l254, l255, l256, l257,
 575.246 +        l258, l259, l260, l261, l262, l263, l264, l265, l266, l267,
 575.247 +        l268, l269, l270, l271, l272, l273, l274, l275, l276, l277,
 575.248 +        l278, l279, l280, l281, l282, l283, l284, l285, l286, l287,
 575.249 +        l288, l289, l290, l291, l292, l293, l294, l295, l296, l297,
 575.250 +        l298, l299, l300, l301, l302, l303, l304, l305, l306, l307,
 575.251 +        l308, l309, l310, l311, l312, l313, l314, l315, l316, l317,
 575.252 +        l318, l319, l320, l321, l322, l323, l324, l325, l326, l327,
 575.253 +        l328, l329, l330, l331, l332, l333, l334, l335, l336, l337,
 575.254 +        l338, l339, l340, l341, l342, l343, l344, l345, l346, l347,
 575.255 +        l348, l349, l350, l351, l352, l353, l354, l355, l356, l357,
 575.256 +        l358, l359, l360, l361, l362, l363, l364, l365, l366, l367,
 575.257 +        l368, l369, l370, l371, l372, l373, l374, l375, l376, l377,
 575.258 +        l378, l379, l380, l381, l382, l383, l384, l385, l386, l387,
 575.259 +        l388, l389, l390, l391, l392, l393, l394, l395, l396, l397,
 575.260 +        l398, l399, l400, l401, l402, l403, l404, l405, l406, l407,
 575.261 +        l408, l409, l410, l411, l412, l413, l414, l415, l416, l417,
 575.262 +        l418, l419, l420, l421, l422, l423, l424, l425, l426, l427,
 575.263 +        l428, l429, l430, l431, l432, l433, l434, l435, l436, l437,
 575.264 +        l438, l439, l440, l441, l442, l443, l444, l445, l446, l447,
 575.265 +        l448, l449, l450, l451, l452, l453, l454, l455, l456, l457,
 575.266 +        l458, l459, l460, l461, l462, l463, l464, l465, l466, l467,
 575.267 +        l468, l469, l470, l471, l472, l473, l474, l475, l476, l477,
 575.268 +        l478, l479, l480, l481, l482, l483, l484, l485, l486, l487,
 575.269 +        l488, l489, l490, l491, l492, l493, l494, l495, l496, l497,
 575.270 +        l498, l499, l500, l501, l502, l503, l504, l505, l506, l507,
 575.271 +        l508, l509, l510, l511;
 575.272 +
 575.273 +        long ll0, ll1, ll2, ll3, ll4, ll5, ll6, ll7, ll8, ll9, ll10, ll11, ll12,
 575.274 +        ll13, ll14, ll15, ll16, ll17, ll18, ll19, ll20, ll21, ll22, ll23, ll24,
 575.275 +        ll25, ll26, ll27, ll28, ll29, ll30, ll31, ll32, ll33, ll34, ll35, ll36,
 575.276 +        ll37, ll38, ll39, ll40, ll41, ll42, ll43, ll44, ll45, ll46, ll47, ll48,
 575.277 +        ll49, ll50, ll51, ll52, ll53, ll54, ll55, ll56, ll57, ll58, ll59, ll60,
 575.278 +        ll61, ll62, ll63, ll64, ll65, ll66, ll67, ll68, ll69, ll70, ll71, ll72,
 575.279 +        ll73, ll74, ll75, ll76, ll77, ll78, ll79, ll80, ll81, ll82, ll83, ll84,
 575.280 +        ll85, ll86, ll87, ll88, ll89, ll90, ll91, ll92, ll93, ll94, ll95, ll96,
 575.281 +        ll97, ll98, ll99, ll100, ll101, ll102, ll103, ll104, ll105, ll106, ll107,
 575.282 +        ll108, ll109, ll110, ll111, ll112, ll113, ll114, ll115, ll116, ll117,
 575.283 +        ll118, ll119, ll120, ll121, ll122, ll123, ll124, ll125, ll126, ll127,
 575.284 +        ll128, ll129, ll130, ll131, ll132, ll133, ll134, ll135, ll136, ll137,
 575.285 +        ll138, ll139, ll140, ll141, ll142, ll143, ll144, ll145, ll146, ll147,
 575.286 +        ll148, ll149, ll150, ll151, ll152, ll153, ll154, ll155, ll156, ll157,
 575.287 +        ll158, ll159, ll160, ll161, ll162, ll163, ll164, ll165, ll166, ll167,
 575.288 +        ll168, ll169, ll170, ll171, ll172, ll173, ll174, ll175, ll176, ll177,
 575.289 +        ll178, ll179, ll180, ll181, ll182, ll183, ll184, ll185, ll186, ll187,
 575.290 +        ll188, ll189, ll190, ll191, ll192, ll193, ll194, ll195, ll196, ll197,
 575.291 +        ll198, ll199, ll200, ll201, ll202, ll203, ll204, ll205, ll206, ll207,
 575.292 +        ll208, ll209, ll210, ll211, ll212, ll213, ll214, ll215, ll216, ll217,
 575.293 +        ll218, ll219, ll220, ll221, ll222, ll223, ll224, ll225, ll226, ll227,
 575.294 +        ll228, ll229, ll230, ll231, ll232, ll233, ll234, ll235, ll236, ll237,
 575.295 +        ll238, ll239, ll240, ll241, ll242, ll243, ll244, ll245, ll246, ll247,
 575.296 +        ll248, ll249, ll250, ll251, ll252, ll253, ll254, ll255, ll256, ll257,
 575.297 +        ll258, ll259, ll260, ll261, ll262, ll263, ll264, ll265, ll266, ll267,
 575.298 +        ll268, ll269, ll270, ll271, ll272, ll273, ll274, ll275, ll276, ll277,
 575.299 +        ll278, ll279, ll280, ll281, ll282, ll283, ll284, ll285, ll286, ll287,
 575.300 +        ll288, ll289, ll290, ll291, ll292, ll293, ll294, ll295, ll296, ll297,
 575.301 +        ll298, ll299, ll300, ll301, ll302, ll303, ll304, ll305, ll306, ll307,
 575.302 +        ll308, ll309, ll310, ll311, ll312, ll313, ll314, ll315, ll316, ll317,
 575.303 +        ll318, ll319, ll320, ll321, ll322, ll323, ll324, ll325, ll326, ll327,
 575.304 +        ll328, ll329, ll330, ll331, ll332, ll333, ll334, ll335, ll336, ll337,
 575.305 +        ll338, ll339, ll340, ll341, ll342, ll343, ll344, ll345, ll346, ll347,
 575.306 +        ll348, ll349, ll350, ll351, ll352, ll353, ll354, ll355, ll356, ll357,
 575.307 +        ll358, ll359, ll360, ll361, ll362, ll363, ll364, ll365, ll366, ll367,
 575.308 +        ll368, ll369, ll370, ll371, ll372, ll373, ll374, ll375, ll376, ll377,
 575.309 +        ll378, ll379, ll380, ll381, ll382, ll383, ll384, ll385, ll386, ll387,
 575.310 +        ll388, ll389, ll390, ll391, ll392, ll393, ll394, ll395, ll396, ll397,
 575.311 +        ll398, ll399, ll400, ll401, ll402, ll403, ll404, ll405, ll406, ll407,
 575.312 +        ll408, ll409, ll410, ll411, ll412, ll413, ll414, ll415, ll416, ll417,
 575.313 +        ll418, ll419, ll420, ll421, ll422, ll423, ll424, ll425, ll426, ll427,
 575.314 +        ll428, ll429, ll430, ll431, ll432, ll433, ll434, ll435, ll436, ll437,
 575.315 +        ll438, ll439, ll440, ll441, ll442, ll443, ll444, ll445, ll446, ll447,
 575.316 +        ll448, ll449, ll450, ll451, ll452, ll453, ll454, ll455, ll456, ll457,
 575.317 +        ll458, ll459, ll460, ll461, ll462, ll463, ll464, ll465, ll466, ll467,
 575.318 +        ll468, ll469, ll470, ll471, ll472, ll473, ll474, ll475, ll476, ll477,
 575.319 +        ll478, ll479, ll480, ll481, ll482, ll483, ll484, ll485, ll486, ll487,
 575.320 +        ll488, ll489, ll490, ll491, ll492, ll493, ll494, ll495, ll496, ll497,
 575.321 +        ll498, ll499, ll500, ll501, ll502, ll503, ll504, ll505, ll506, ll507,
 575.322 +        ll508, ll509, ll510, ll511;
 575.323 +
 575.324 +        a.m();
 575.325 +
 575.326 +        m1(deopt, a);
 575.327 +    }
 575.328 +
 575.329 +    // Used for synchronization betwen main thread and thread
 575.330 +    // responsible for class loading
 575.331 +    static volatile boolean thread_started = false;
 575.332 +    static volatile boolean do_load = false;
 575.333 +    static volatile boolean load_done = false;
 575.334 +
 575.335 +    static public void main(String[] args) {
 575.336 +        // This thread does the loading of B. If m1 does it, the class
 575.337 +        // loading can cause stack overflows.
 575.338 +        Thread thread = new Thread() {
 575.339 +            public void run() {
 575.340 +                thread_started = true;
 575.341 +                while(!do_load);
 575.342 +                new B();
 575.343 +                load_done = true;
 575.344 +            }
 575.345 +        };
 575.346 +        thread.start();
 575.347 +        while(!thread_started);
 575.348 +        // get m3 and m1 compiled
 575.349 +        A a = new A();
 575.350 +        for (int i = 0; i < 5000; i++) {
 575.351 +            m3(false, a);
 575.352 +            m1(false, a);
 575.353 +        }
 575.354 +        m2(true, a);
 575.355 +
 575.356 +        System.out.println("TEST PASSED");
 575.357 +    }
 575.358 +}
   576.1 --- a/test/compiler/whitebox/ClearMethodStateTest.java	Thu Jan 16 14:25:51 2014 +0100
   576.2 +++ b/test/compiler/whitebox/ClearMethodStateTest.java	Wed Jan 22 17:42:23 2014 -0800
   576.3 @@ -21,25 +21,25 @@
   576.4   * questions.
   576.5   */
   576.6  
   576.7 +import java.util.function.Function;
   576.8 +
   576.9  /*
  576.10   * @test ClearMethodStateTest
  576.11   * @bug 8006683 8007288 8022832
  576.12   * @library /testlibrary /testlibrary/whitebox
  576.13   * @build ClearMethodStateTest
  576.14   * @run main ClassFileInstaller sun.hotspot.WhiteBox
  576.15 - * @run main/othervm -Xbootclasspath/a:. -Xmixed -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,TestCase$Helper::* ClearMethodStateTest
  576.16 + * @run main/othervm -Xbootclasspath/a:. -Xmixed -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* ClearMethodStateTest
  576.17   * @summary testing of WB::clearMethodState()
  576.18   * @author igor.ignatyev@oracle.com
  576.19   */
  576.20  public class ClearMethodStateTest extends CompilerWhiteBoxTest {
  576.21  
  576.22      public static void main(String[] args) throws Exception {
  576.23 -        for (TestCase test : TestCase.values()) {
  576.24 -            new ClearMethodStateTest(test).runTest();
  576.25 -        }
  576.26 +        CompilerWhiteBoxTest.main(ClearMethodStateTest::new, args);
  576.27      }
  576.28  
  576.29 -    public ClearMethodStateTest(TestCase testCase) {
  576.30 +    private ClearMethodStateTest(TestCase testCase) {
  576.31          super(testCase);
  576.32          // to prevent inlining of #method
  576.33          WHITE_BOX.testSetDontInlineMethod(method, true);
  576.34 @@ -63,7 +63,7 @@
  576.35          deoptimize();
  576.36          checkNotCompiled();
  576.37  
  576.38 -        if (testCase.isOsr) {
  576.39 +        if (testCase.isOsr()) {
  576.40              // part test isn't applicable for OSR test case
  576.41              return;
  576.42          }
   577.1 --- a/test/compiler/whitebox/CompilerWhiteBoxTest.java	Thu Jan 16 14:25:51 2014 +0100
   577.2 +++ b/test/compiler/whitebox/CompilerWhiteBoxTest.java	Wed Jan 22 17:42:23 2014 -0800
   577.3 @@ -31,6 +31,7 @@
   577.4  import java.lang.reflect.Method;
   577.5  import java.util.Objects;
   577.6  import java.util.concurrent.Callable;
   577.7 +import java.util.function.Function;
   577.8  
   577.9  /**
  577.10   * Abstract class for WhiteBox testing of JIT.
  577.11 @@ -50,7 +51,7 @@
  577.12      protected static int COMP_LEVEL_FULL_PROFILE = 3;
  577.13      /** {@code CompLevel::CompLevel_full_optimization} -- C2 or Shark */
  577.14      protected static int COMP_LEVEL_FULL_OPTIMIZATION = 4;
  577.15 -    /** Maximal value for CompLeveL */
  577.16 +    /** Maximal value for CompLevel */
  577.17      protected static int COMP_LEVEL_MAX = COMP_LEVEL_FULL_OPTIMIZATION;
  577.18  
  577.19      /** Instance of WhiteBox */
  577.20 @@ -75,8 +76,7 @@
  577.21      /** count of invocation to triger OSR compilation */
  577.22      protected static final long BACKEDGE_THRESHOLD;
  577.23      /** Value of {@code java.vm.info} (interpreted|mixed|comp mode) */
  577.24 -    protected static final String MODE
  577.25 -            = System.getProperty("java.vm.info");
  577.26 +    protected static final String MODE = System.getProperty("java.vm.info");
  577.27  
  577.28      static {
  577.29          if (TIERED_COMPILATION) {
  577.30 @@ -133,6 +133,20 @@
  577.31          return compLevel == COMP_LEVEL_FULL_OPTIMIZATION;
  577.32      }
  577.33  
  577.34 +    protected static void main(
  577.35 +            Function<TestCase, CompilerWhiteBoxTest> constructor,
  577.36 +            String[] args) {
  577.37 +        if (args.length == 0) {
  577.38 +            for (TestCase test : SimpleTestCase.values()) {
  577.39 +                constructor.apply(test).runTest();
  577.40 +            }
  577.41 +        } else {
  577.42 +            for (String name : args) {
  577.43 +                constructor.apply(SimpleTestCase.valueOf(name)).runTest();
  577.44 +            }
  577.45 +        }
  577.46 +    }
  577.47 +
  577.48      /** tested method */
  577.49      protected final Executable method;
  577.50      protected final TestCase testCase;
  577.51 @@ -145,7 +159,7 @@
  577.52      protected CompilerWhiteBoxTest(TestCase testCase) {
  577.53          Objects.requireNonNull(testCase);
  577.54          System.out.println("TEST CASE:" + testCase.name());
  577.55 -        method = testCase.executable;
  577.56 +        method = testCase.getExecutable();
  577.57          this.testCase = testCase;
  577.58      }
  577.59  
  577.60 @@ -204,7 +218,7 @@
  577.61          if (WHITE_BOX.getMethodCompilationLevel(method, true) != 0) {
  577.62              throw new RuntimeException(method + " osr_comp_level must be == 0");
  577.63          }
  577.64 -   }
  577.65 +    }
  577.66  
  577.67      /**
  577.68       * Checks, that {@linkplain #method} is compiled.
  577.69 @@ -221,44 +235,46 @@
  577.70                      method, System.currentTimeMillis() - start);
  577.71              return;
  577.72          }
  577.73 -        if (!WHITE_BOX.isMethodCompiled(method, testCase.isOsr)) {
  577.74 +        if (!WHITE_BOX.isMethodCompiled(method, testCase.isOsr())) {
  577.75              throw new RuntimeException(method + " must be "
  577.76 -                    + (testCase.isOsr ? "osr_" : "") + "compiled");
  577.77 +                    + (testCase.isOsr() ? "osr_" : "") + "compiled");
  577.78          }
  577.79 -        if (WHITE_BOX.getMethodCompilationLevel(method, testCase.isOsr) == 0) {
  577.80 +        if (WHITE_BOX.getMethodCompilationLevel(method, testCase.isOsr())
  577.81 +                == 0) {
  577.82              throw new RuntimeException(method
  577.83 -                    + (testCase.isOsr ? " osr_" : " ")
  577.84 +                    + (testCase.isOsr() ? " osr_" : " ")
  577.85                      + "comp_level must be != 0");
  577.86          }
  577.87      }
  577.88  
  577.89      protected final void deoptimize() {
  577.90 -        WHITE_BOX.deoptimizeMethod(method, testCase.isOsr);
  577.91 -        if (testCase.isOsr) {
  577.92 +        WHITE_BOX.deoptimizeMethod(method, testCase.isOsr());
  577.93 +        if (testCase.isOsr()) {
  577.94              WHITE_BOX.deoptimizeMethod(method, false);
  577.95          }
  577.96      }
  577.97  
  577.98      protected final int getCompLevel() {
  577.99 -        return WHITE_BOX.getMethodCompilationLevel(method, testCase.isOsr);
 577.100 +        return WHITE_BOX.getMethodCompilationLevel(method, testCase.isOsr());
 577.101      }
 577.102  
 577.103      protected final boolean isCompilable() {
 577.104          return WHITE_BOX.isMethodCompilable(method, COMP_LEVEL_ANY,
 577.105 -                testCase.isOsr);
 577.106 +                testCase.isOsr());
 577.107      }
 577.108  
 577.109      protected final boolean isCompilable(int compLevel) {
 577.110 -        return WHITE_BOX.isMethodCompilable(method, compLevel, testCase.isOsr);
 577.111 +        return WHITE_BOX
 577.112 +                .isMethodCompilable(method, compLevel, testCase.isOsr());
 577.113      }
 577.114  
 577.115      protected final void makeNotCompilable() {
 577.116          WHITE_BOX.makeMethodNotCompilable(method, COMP_LEVEL_ANY,
 577.117 -                testCase.isOsr);
 577.118 +                testCase.isOsr());
 577.119      }
 577.120  
 577.121      protected final void makeNotCompilable(int compLevel) {
 577.122 -        WHITE_BOX.makeMethodNotCompilable(method, compLevel, testCase.isOsr);
 577.123 +        WHITE_BOX.makeMethodNotCompilable(method, compLevel, testCase.isOsr());
 577.124      }
 577.125  
 577.126      /**
 577.127 @@ -298,7 +314,7 @@
 577.128                  WHITE_BOX.isMethodCompiled(method, true));
 577.129          System.out.printf("\tosr_comp_level:\t%d%n",
 577.130                  WHITE_BOX.getMethodCompilationLevel(method, true));
 577.131 -         System.out.printf("\tin_queue:\t%b%n",
 577.132 +        System.out.printf("\tin_queue:\t%b%n",
 577.133                  WHITE_BOX.isMethodQueuedForCompilation(method));
 577.134          System.out.printf("compile_queues_size:\t%d%n%n",
 577.135                  WHITE_BOX.getCompileQueuesSize());
 577.136 @@ -311,13 +327,13 @@
 577.137  
 577.138      /**
 577.139       * Tries to trigger compilation of {@linkplain #method} by call
 577.140 -     * {@linkplain #testCase.callable} enough times.
 577.141 +     * {@linkplain TestCase#getCallable()} enough times.
 577.142       *
 577.143       * @return accumulated result
 577.144       * @see #compile(int)
 577.145       */
 577.146      protected final int compile() {
 577.147 -        if (testCase.isOsr) {
 577.148 +        if (testCase.isOsr()) {
 577.149              return compile(1);
 577.150          } else {
 577.151              return compile(THRESHOLD);
 577.152 @@ -326,7 +342,7 @@
 577.153  
 577.154      /**
 577.155       * Tries to trigger compilation of {@linkplain #method} by call
 577.156 -     * {@linkplain #testCase.callable} specified times.
 577.157 +     * {@linkplain TestCase#getCallable()} specified times.
 577.158       *
 577.159       * @param count invocation count
 577.160       * @return accumulated result
 577.161 @@ -336,7 +352,7 @@
 577.162          Integer tmp;
 577.163          for (int i = 0; i < count; ++i) {
 577.164              try {
 577.165 -                tmp = testCase.callable.call();
 577.166 +                tmp = testCase.getCallable().call();
 577.167              } catch (Exception e) {
 577.168                  tmp = null;
 577.169              }
 577.170 @@ -347,19 +363,32 @@
 577.171          }
 577.172          return result;
 577.173      }
 577.174 +
 577.175 +    /**
 577.176 +     * Utility interface provides tested method and object to invoke it.
 577.177 +     */
 577.178 +    public interface TestCase {
 577.179 +        /** the name of test case */
 577.180 +        String name();
 577.181 +
 577.182 +        /** tested method */
 577.183 +        Executable getExecutable();
 577.184 +
 577.185 +        /** object to invoke {@linkplain #getExecutable()} */
 577.186 +        Callable<Integer> getCallable();
 577.187 +
 577.188 +        /** flag for OSR test case */
 577.189 +        boolean isOsr();
 577.190 +    }
 577.191  }
 577.192  
 577.193 -/**
 577.194 - * Utility structure containing tested method and object to invoke it.
 577.195 - */
 577.196 -enum TestCase {
 577.197 +enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase {
 577.198      /** constructor test case */
 577.199      CONSTRUCTOR_TEST(Helper.CONSTRUCTOR, Helper.CONSTRUCTOR_CALLABLE, false),
 577.200      /** method test case */
 577.201      METOD_TEST(Helper.METHOD, Helper.METHOD_CALLABLE, false),
 577.202      /** static method test case */
 577.203      STATIC_TEST(Helper.STATIC, Helper.STATIC_CALLABLE, false),
 577.204 -
 577.205      /** OSR constructor test case */
 577.206      OSR_CONSTRUCTOR_TEST(Helper.OSR_CONSTRUCTOR,
 577.207              Helper.OSR_CONSTRUCTOR_CALLABLE, true),
 577.208 @@ -368,20 +397,32 @@
 577.209      /** OSR static method test case */
 577.210      OSR_STATIC_TEST(Helper.OSR_STATIC, Helper.OSR_STATIC_CALLABLE, true);
 577.211  
 577.212 -    /** tested method */
 577.213 -    final Executable executable;
 577.214 -    /** object to invoke {@linkplain #executable} */
 577.215 -    final Callable<Integer> callable;
 577.216 -    /** flag for OSR test case */
 577.217 -    final boolean isOsr;
 577.218 +    private final Executable executable;
 577.219 +    private final Callable<Integer> callable;
 577.220 +    private final boolean isOsr;
 577.221  
 577.222 -    private TestCase(Executable executable, Callable<Integer> callable,
 577.223 +    private SimpleTestCase(Executable executable, Callable<Integer> callable,
 577.224              boolean isOsr) {
 577.225          this.executable = executable;
 577.226          this.callable = callable;
 577.227          this.isOsr = isOsr;
 577.228      }
 577.229  
 577.230 +    @Override
 577.231 +    public Executable getExecutable() {
 577.232 +        return executable;
 577.233 +    }
 577.234 +
 577.235 +    @Override
 577.236 +    public Callable<Integer> getCallable() {
 577.237 +        return callable;
 577.238 +    }
 577.239 +
 577.240 +    @Override
 577.241 +    public boolean isOsr() {
 577.242 +        return isOsr;
 577.243 +    }
 577.244 +
 577.245      private static class Helper {
 577.246  
 577.247          private static final Callable<Integer> CONSTRUCTOR_CALLABLE
 577.248 @@ -436,7 +477,6 @@
 577.249              }
 577.250          };
 577.251  
 577.252 -
 577.253          private static final Constructor CONSTRUCTOR;
 577.254          private static final Constructor OSR_CONSTRUCTOR;
 577.255          private static final Method METHOD;
   578.1 --- a/test/compiler/whitebox/DeoptimizeAllTest.java	Thu Jan 16 14:25:51 2014 +0100
   578.2 +++ b/test/compiler/whitebox/DeoptimizeAllTest.java	Wed Jan 22 17:42:23 2014 -0800
   578.3 @@ -27,19 +27,17 @@
   578.4   * @library /testlibrary /testlibrary/whitebox
   578.5   * @build DeoptimizeAllTest
   578.6   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   578.7 - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,TestCase$Helper::* DeoptimizeAllTest
   578.8 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* DeoptimizeAllTest
   578.9   * @summary testing of WB::deoptimizeAll()
  578.10   * @author igor.ignatyev@oracle.com
  578.11   */
  578.12  public class DeoptimizeAllTest extends CompilerWhiteBoxTest {
  578.13  
  578.14      public static void main(String[] args) throws Exception {
  578.15 -        for (TestCase test : TestCase.values()) {
  578.16 -            new DeoptimizeAllTest(test).runTest();
  578.17 -        }
  578.18 +        CompilerWhiteBoxTest.main(DeoptimizeAllTest::new, args);
  578.19      }
  578.20  
  578.21 -    public DeoptimizeAllTest(TestCase testCase) {
  578.22 +    private DeoptimizeAllTest(TestCase testCase) {
  578.23          super(testCase);
  578.24          // to prevent inlining of #method
  578.25          WHITE_BOX.testSetDontInlineMethod(method, true);
  578.26 @@ -53,7 +51,7 @@
  578.27       */
  578.28      @Override
  578.29      protected void test() throws Exception {
  578.30 -        if (testCase.isOsr && CompilerWhiteBoxTest.MODE.startsWith(
  578.31 +        if (testCase.isOsr() && CompilerWhiteBoxTest.MODE.startsWith(
  578.32                  "compiled ")) {
  578.33            System.err.printf("Warning: %s is not applicable in %s%n",
  578.34                  testCase.name(), CompilerWhiteBoxTest.MODE);
   579.1 --- a/test/compiler/whitebox/DeoptimizeMethodTest.java	Thu Jan 16 14:25:51 2014 +0100
   579.2 +++ b/test/compiler/whitebox/DeoptimizeMethodTest.java	Wed Jan 22 17:42:23 2014 -0800
   579.3 @@ -27,19 +27,17 @@
   579.4   * @library /testlibrary /testlibrary/whitebox
   579.5   * @build DeoptimizeMethodTest
   579.6   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   579.7 - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,TestCase$Helper::* DeoptimizeMethodTest
   579.8 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* DeoptimizeMethodTest
   579.9   * @summary testing of WB::deoptimizeMethod()
  579.10   * @author igor.ignatyev@oracle.com
  579.11   */
  579.12  public class DeoptimizeMethodTest extends CompilerWhiteBoxTest {
  579.13  
  579.14      public static void main(String[] args) throws Exception {
  579.15 -        for (TestCase test : TestCase.values()) {
  579.16 -            new DeoptimizeMethodTest(test).runTest();
  579.17 -        }
  579.18 +        CompilerWhiteBoxTest.main(DeoptimizeMethodTest::new, args);
  579.19      }
  579.20  
  579.21 -    public DeoptimizeMethodTest(TestCase testCase) {
  579.22 +    private DeoptimizeMethodTest(TestCase testCase) {
  579.23          super(testCase);
  579.24          // to prevent inlining of #method
  579.25          WHITE_BOX.testSetDontInlineMethod(method, true);
  579.26 @@ -53,7 +51,7 @@
  579.27       */
  579.28      @Override
  579.29      protected void test() throws Exception {
  579.30 -        if (testCase.isOsr && CompilerWhiteBoxTest.MODE.startsWith(
  579.31 +        if (testCase.isOsr() && CompilerWhiteBoxTest.MODE.startsWith(
  579.32                  "compiled ")) {
  579.33            System.err.printf("Warning: %s is not applicable in %s%n",
  579.34                  testCase.name(), CompilerWhiteBoxTest.MODE);
   580.1 --- a/test/compiler/whitebox/EnqueueMethodForCompilationTest.java	Thu Jan 16 14:25:51 2014 +0100
   580.2 +++ b/test/compiler/whitebox/EnqueueMethodForCompilationTest.java	Wed Jan 22 17:42:23 2014 -0800
   580.3 @@ -27,19 +27,17 @@
   580.4   * @library /testlibrary /testlibrary/whitebox
   580.5   * @build EnqueueMethodForCompilationTest
   580.6   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   580.7 - * @run main/othervm/timeout=600 -Xbootclasspath/a:. -Xmixed -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,TestCase$Helper::* EnqueueMethodForCompilationTest
   580.8 + * @run main/othervm/timeout=600 -Xbootclasspath/a:. -Xmixed -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* EnqueueMethodForCompilationTest
   580.9   * @summary testing of WB::enqueueMethodForCompilation()
  580.10   * @author igor.ignatyev@oracle.com
  580.11   */
  580.12  public class EnqueueMethodForCompilationTest extends CompilerWhiteBoxTest {
  580.13  
  580.14      public static void main(String[] args) throws Exception {
  580.15 -        for (TestCase test : TestCase.values()) {
  580.16 -            new EnqueueMethodForCompilationTest(test).runTest();
  580.17 -        }
  580.18 +        CompilerWhiteBoxTest.main(EnqueueMethodForCompilationTest::new, args);
  580.19      }
  580.20  
  580.21 -    public EnqueueMethodForCompilationTest(TestCase testCase) {
  580.22 +    private EnqueueMethodForCompilationTest(TestCase testCase) {
  580.23          super(testCase);
  580.24          // to prevent inlining of #method
  580.25          WHITE_BOX.testSetDontInlineMethod(method, true);
   581.1 --- a/test/compiler/whitebox/IsMethodCompilableTest.java	Thu Jan 16 14:25:51 2014 +0100
   581.2 +++ b/test/compiler/whitebox/IsMethodCompilableTest.java	Wed Jan 22 17:42:23 2014 -0800
   581.3 @@ -27,7 +27,7 @@
   581.4   * @library /testlibrary /testlibrary/whitebox
   581.5   * @build IsMethodCompilableTest
   581.6   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   581.7 - * @run main/othervm/timeout=2400 -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,TestCase$Helper::* IsMethodCompilableTest
   581.8 + * @run main/othervm/timeout=2400 -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* IsMethodCompilableTest
   581.9   * @summary testing of WB::isMethodCompilable()
  581.10   * @author igor.ignatyev@oracle.com
  581.11   */
  581.12 @@ -48,12 +48,10 @@
  581.13      }
  581.14  
  581.15      public static void main(String[] args) throws Exception {
  581.16 -        for (TestCase test : TestCase.values()) {
  581.17 -            new IsMethodCompilableTest(test).runTest();
  581.18 -        }
  581.19 +        CompilerWhiteBoxTest.main(IsMethodCompilableTest::new, args);
  581.20      }
  581.21  
  581.22 -    public IsMethodCompilableTest(TestCase testCase) {
  581.23 +    private IsMethodCompilableTest(TestCase testCase) {
  581.24          super(testCase);
  581.25          // to prevent inlining of #method
  581.26          WHITE_BOX.testSetDontInlineMethod(method, true);
  581.27 @@ -68,7 +66,7 @@
  581.28       */
  581.29      @Override
  581.30      protected void test() throws Exception {
  581.31 -        if (testCase.isOsr && CompilerWhiteBoxTest.MODE.startsWith(
  581.32 +        if (testCase.isOsr() && CompilerWhiteBoxTest.MODE.startsWith(
  581.33                  "compiled ")) {
  581.34            System.err.printf("Warning: %s is not applicable in %s%n",
  581.35                  testCase.name(), CompilerWhiteBoxTest.MODE);
  581.36 @@ -89,7 +87,7 @@
  581.37          for (long i = 0L, n = PER_METHOD_RECOMPILATION_CUTOFF - 1; i < n; ++i) {
  581.38              compileAndDeoptimize();
  581.39          }
  581.40 -        if (!testCase.isOsr && !isCompilable()) {
  581.41 +        if (!testCase.isOsr() && !isCompilable()) {
  581.42              // in osr test case count of deopt maybe more than iterations
  581.43              throw new RuntimeException(method + " is not compilable after "
  581.44                      + (PER_METHOD_RECOMPILATION_CUTOFF - 1) + " iterations");
  581.45 @@ -102,7 +100,7 @@
  581.46                  && isCompilable(); ++i) {
  581.47              compileAndDeoptimize();
  581.48          }
  581.49 -        if (!testCase.isOsr && i != PER_METHOD_RECOMPILATION_CUTOFF) {
  581.50 +        if (!testCase.isOsr() && i != PER_METHOD_RECOMPILATION_CUTOFF) {
  581.51              // in osr test case count of deopt maybe more than iterations
  581.52              throw new RuntimeException(method + " is not compilable after "
  581.53                      + i + " iterations, but must only after "
   582.1 --- a/test/compiler/whitebox/MakeMethodNotCompilableTest.java	Thu Jan 16 14:25:51 2014 +0100
   582.2 +++ b/test/compiler/whitebox/MakeMethodNotCompilableTest.java	Wed Jan 22 17:42:23 2014 -0800
   582.3 @@ -27,26 +27,17 @@
   582.4   * @library /testlibrary /testlibrary/whitebox
   582.5   * @build MakeMethodNotCompilableTest
   582.6   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   582.7 - * @run main/othervm/timeout=2400 -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,TestCase$Helper::* MakeMethodNotCompilableTest
   582.8 + * @run main/othervm/timeout=2400 -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* MakeMethodNotCompilableTest
   582.9   * @summary testing of WB::makeMethodNotCompilable()
  582.10   * @author igor.ignatyev@oracle.com
  582.11   */
  582.12  public class MakeMethodNotCompilableTest extends CompilerWhiteBoxTest {
  582.13      private int bci;
  582.14      public static void main(String[] args) throws Exception {
  582.15 -        if (args.length == 0) {
  582.16 -            for (TestCase test : TestCase.values()) {
  582.17 -                new MakeMethodNotCompilableTest(test).runTest();
  582.18 -            }
  582.19 -        } else {
  582.20 -            for (String name : args) {
  582.21 -                new MakeMethodNotCompilableTest(
  582.22 -                        TestCase.valueOf(name)).runTest();
  582.23 -            }
  582.24 -        }
  582.25 +        CompilerWhiteBoxTest.main(MakeMethodNotCompilableTest::new, args);
  582.26      }
  582.27  
  582.28 -    public MakeMethodNotCompilableTest(TestCase testCase) {
  582.29 +    private MakeMethodNotCompilableTest(TestCase testCase) {
  582.30          super(testCase);
  582.31          // to prevent inlining of #method
  582.32          WHITE_BOX.testSetDontInlineMethod(method, true);
  582.33 @@ -62,7 +53,7 @@
  582.34       */
  582.35      @Override
  582.36      protected void test() throws Exception {
  582.37 -        if (testCase.isOsr && CompilerWhiteBoxTest.MODE.startsWith(
  582.38 +        if (testCase.isOsr() && CompilerWhiteBoxTest.MODE.startsWith(
  582.39                  "compiled ")) {
  582.40            System.err.printf("Warning: %s is not applicable in %s%n",
  582.41                  testCase.name(), CompilerWhiteBoxTest.MODE);
   583.1 --- a/test/compiler/whitebox/SetDontInlineMethodTest.java	Thu Jan 16 14:25:51 2014 +0100
   583.2 +++ b/test/compiler/whitebox/SetDontInlineMethodTest.java	Wed Jan 22 17:42:23 2014 -0800
   583.3 @@ -27,19 +27,17 @@
   583.4   * @library /testlibrary /testlibrary/whitebox
   583.5   * @build SetDontInlineMethodTest
   583.6   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   583.7 - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,TestCase$Helper::* SetDontInlineMethodTest
   583.8 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* SetDontInlineMethodTest
   583.9   * @summary testing of WB::testSetDontInlineMethod()
  583.10   * @author igor.ignatyev@oracle.com
  583.11   */
  583.12  public class SetDontInlineMethodTest extends CompilerWhiteBoxTest {
  583.13  
  583.14      public static void main(String[] args) throws Exception {
  583.15 -        for (TestCase test : TestCase.values()) {
  583.16 -            new SetDontInlineMethodTest(test).runTest();
  583.17 -        }
  583.18 +        CompilerWhiteBoxTest.main(SetDontInlineMethodTest::new, args);
  583.19      }
  583.20  
  583.21 -    public SetDontInlineMethodTest(TestCase testCase) {
  583.22 +    private SetDontInlineMethodTest(TestCase testCase) {
  583.23          super(testCase);
  583.24      }
  583.25  
   584.1 --- a/test/compiler/whitebox/SetForceInlineMethodTest.java	Thu Jan 16 14:25:51 2014 +0100
   584.2 +++ b/test/compiler/whitebox/SetForceInlineMethodTest.java	Wed Jan 22 17:42:23 2014 -0800
   584.3 @@ -27,19 +27,17 @@
   584.4   * @library /testlibrary /testlibrary/whitebox
   584.5   * @build SetForceInlineMethodTest
   584.6   * @run main ClassFileInstaller sun.hotspot.WhiteBox
   584.7 - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,TestCase$Helper::* SetForceInlineMethodTest
   584.8 + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* SetForceInlineMethodTest
   584.9   * @summary testing of WB::testSetForceInlineMethod()
  584.10   * @author igor.ignatyev@oracle.com
  584.11   */
  584.12  public class SetForceInlineMethodTest extends CompilerWhiteBoxTest {
  584.13  
  584.14      public static void main(String[] args) throws Exception {
  584.15 -        for (TestCase test : TestCase.values()) {
  584.16 -            new SetForceInlineMethodTest(test).runTest();
  584.17 -        }
  584.18 +        CompilerWhiteBoxTest.main(SetForceInlineMethodTest::new, args);
  584.19      }
  584.20  
  584.21 -    public SetForceInlineMethodTest(TestCase testCase) {
  584.22 +    private SetForceInlineMethodTest(TestCase testCase) {
  584.23          super(testCase);
  584.24      }
  584.25  
   585.1 --- a/test/gc/6941923/Test6941923.java	Thu Jan 16 14:25:51 2014 +0100
   585.2 +++ b/test/gc/6941923/Test6941923.java	Wed Jan 22 17:42:23 2014 -0800
   585.3 @@ -1,5 +1,5 @@
   585.4  /*
   585.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   585.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   585.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   585.8   *
   585.9   * This code is free software; you can redistribute it and/or modify it
   586.1 --- a/test/gc/g1/TestHumongousAllocInitialMark.java	Thu Jan 16 14:25:51 2014 +0100
   586.2 +++ b/test/gc/g1/TestHumongousAllocInitialMark.java	Wed Jan 22 17:42:23 2014 -0800
   586.3 @@ -1,5 +1,5 @@
   586.4  /*
   586.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   586.6 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   586.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   586.8   *
   586.9   * This code is free software; you can redistribute it and/or modify it
   587.1 --- a/test/runtime/6626217/Test6626217.sh	Thu Jan 16 14:25:51 2014 +0100
   587.2 +++ b/test/runtime/6626217/Test6626217.sh	Wed Jan 22 17:42:23 2014 -0800
   587.3 @@ -1,5 +1,5 @@
   587.4  # 
   587.5 -#  Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   587.6 +#  Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   587.7  #  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   587.8  # 
   587.9  #  This code is free software; you can redistribute it and/or modify it
   588.1 --- a/test/runtime/7110720/Test7110720.sh	Thu Jan 16 14:25:51 2014 +0100
   588.2 +++ b/test/runtime/7110720/Test7110720.sh	Wed Jan 22 17:42:23 2014 -0800
   588.3 @@ -1,5 +1,5 @@
   588.4  #
   588.5 -#  Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   588.6 +#  Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   588.7  #  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   588.8  #
   588.9  
   589.1 --- a/test/runtime/7162488/Test7162488.sh	Thu Jan 16 14:25:51 2014 +0100
   589.2 +++ b/test/runtime/7162488/Test7162488.sh	Wed Jan 22 17:42:23 2014 -0800
   589.3 @@ -1,5 +1,5 @@
   589.4  #
   589.5 -#  Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   589.6 +#  Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   589.7  #  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   589.8  #
   589.9  #  This code is free software; you can redistribute it and/or modify it
   590.1 --- a/test/runtime/RedefineObject/Agent.java	Thu Jan 16 14:25:51 2014 +0100
   590.2 +++ b/test/runtime/RedefineObject/Agent.java	Wed Jan 22 17:42:23 2014 -0800
   590.3 @@ -1,5 +1,5 @@
   590.4  /*
   590.5 - * Copyright (c) 2013, 2013, Oracle and/or its affiliates. All rights reserved.
   590.6 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   590.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   590.8   *
   590.9   * This code is free software; you can redistribute it and/or modify it
   591.1 --- a/test/runtime/RedefineObject/TestRedefineObject.java	Thu Jan 16 14:25:51 2014 +0100
   591.2 +++ b/test/runtime/RedefineObject/TestRedefineObject.java	Wed Jan 22 17:42:23 2014 -0800
   591.3 @@ -1,5 +1,5 @@
   591.4  /*
   591.5 - * Copyright (c) 2013, 2013, Oracle and/or its affiliates. All rights reserved.
   591.6 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   591.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   591.8   *
   591.9   * This code is free software; you can redistribute it and/or modify it

mercurial