Merge

Tue, 29 Mar 2016 23:01:10 +0100

author
robm
date
Tue, 29 Mar 2016 23:01:10 +0100
changeset 8332
b5b3db42efca
parent 8328
d36b75043517
parent 8331
e443d4e588a3
child 8333
f21c5c4d5231
child 8415
d109bda16490

Merge

     1.1 --- a/src/cpu/sparc/vm/vm_version_sparc.cpp	Tue Mar 29 13:25:38 2016 -0700
     1.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.cpp	Tue Mar 29 23:01:10 2016 +0100
     1.3 @@ -40,7 +40,10 @@
     1.4  unsigned int VM_Version::_L2_data_cache_line_size = 0;
     1.5  
     1.6  void VM_Version::initialize() {
     1.7 -  _features = determine_features();
     1.8 +
     1.9 +  assert(_features != VM_Version::unknown_m, "System pre-initialization is not complete.");
    1.10 +  guarantee(VM_Version::has_v9(), "only SPARC v9 is supported");
    1.11 +
    1.12    PrefetchCopyIntervalInBytes = prefetch_copy_interval_in_bytes();
    1.13    PrefetchScanIntervalInBytes = prefetch_scan_interval_in_bytes();
    1.14    PrefetchFieldsAhead         = prefetch_fields_ahead();
    1.15 @@ -76,8 +79,6 @@
    1.16      FLAG_SET_DEFAULT(AllocatePrefetchStyle, 1);
    1.17    }
    1.18  
    1.19 -  guarantee(VM_Version::has_v9(), "only SPARC v9 is supported");
    1.20 -
    1.21    assert(ArraycopySrcPrefetchDistance < 4096, "invalid value");
    1.22    if (ArraycopySrcPrefetchDistance >= 4096)
    1.23      ArraycopySrcPrefetchDistance = 4064;
     2.1 --- a/src/cpu/sparc/vm/vm_version_sparc.hpp	Tue Mar 29 13:25:38 2016 -0700
     2.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.hpp	Tue Mar 29 23:01:10 2016 +0100
     2.3 @@ -124,6 +124,8 @@
     2.4    // Initialization
     2.5    static void initialize();
     2.6  
     2.7 +  static void init_before_ergo()        { _features = determine_features(); }
     2.8 +
     2.9    // Instruction support
    2.10    static bool has_v8()                  { return (_features & v8_instructions_m) != 0; }
    2.11    static bool has_v9()                  { return (_features & v9_instructions_m) != 0; }
     3.1 --- a/src/share/vm/prims/jvmtiExport.cpp	Tue Mar 29 13:25:38 2016 -0700
     3.2 +++ b/src/share/vm/prims/jvmtiExport.cpp	Tue Mar 29 23:01:10 2016 +0100
     3.3 @@ -995,7 +995,9 @@
     3.4          // Before we call the JVMTI agent, we have to set the state in the
     3.5          // thread for which we are proxying.
     3.6          JavaThreadState prev_state = real_thread->thread_state();
     3.7 -        assert(prev_state == _thread_blocked, "JavaThread should be at safepoint");
     3.8 +        assert(((Thread *)real_thread)->is_ConcurrentGC_thread() ||
     3.9 +               (real_thread->is_Java_thread() && prev_state == _thread_blocked),
    3.10 +               "should be ConcurrentGCThread or JavaThread at safepoint");
    3.11          real_thread->set_thread_state(_thread_in_native);
    3.12  
    3.13          jvmtiExtensionEvent callback = env->ext_callbacks()->ClassUnload;
     4.1 --- a/src/share/vm/runtime/os.cpp	Tue Mar 29 13:25:38 2016 -0700
     4.2 +++ b/src/share/vm/runtime/os.cpp	Tue Mar 29 23:01:10 2016 +0100
     4.3 @@ -325,6 +325,10 @@
     4.4    // We need to initialize large page support here because ergonomics takes some
     4.5    // decisions depending on large page support and the calculated large page size.
     4.6    large_page_init();
     4.7 +
     4.8 +  // VM version initialization identifies some characteristics of the
     4.9 +  // the platform that are used during ergonomic decisions.
    4.10 +  VM_Version::init_before_ergo();
    4.11  }
    4.12  
    4.13  void os::signal_init() {
     5.1 --- a/src/share/vm/runtime/vm_version.hpp	Tue Mar 29 13:25:38 2016 -0700
     5.2 +++ b/src/share/vm/runtime/vm_version.hpp	Tue Mar 29 23:01:10 2016 +0100
     5.3 @@ -54,6 +54,12 @@
     5.4                                                    unsigned int dem,
     5.5                                                    unsigned int switch_pt);
     5.6   public:
     5.7 +  // Called as part of the runtime services initialization which is
     5.8 +  // called from the management module initialization (via init_globals())
     5.9 +  // after argument parsing and attaching of the main thread has
    5.10 +  // occurred.  Examines a variety of the hardware capabilities of
    5.11 +  // the platform to determine which features can be used to execute the
    5.12 +  // program.
    5.13    static void initialize();
    5.14  
    5.15    // This allows for early initialization of VM_Version information
    5.16 @@ -63,6 +69,11 @@
    5.17    // need to specialize this define VM_Version::early_initialize().
    5.18    static void early_initialize() { }
    5.19  
    5.20 +  // Called to initialize VM variables needing initialization
    5.21 +  // after command line parsing. Platforms that need to specialize
    5.22 +  // this should define VM_Version::init_before_ergo().
    5.23 +  static void init_before_ergo() {}
    5.24 +
    5.25    // Name
    5.26    static const char* vm_name();
    5.27    // Vendor
     6.1 --- a/test/compiler/intrinsics/montgomerymultiply/MontgomeryMultiplyTest.java	Tue Mar 29 13:25:38 2016 -0700
     6.2 +++ b/test/compiler/intrinsics/montgomerymultiply/MontgomeryMultiplyTest.java	Tue Mar 29 23:01:10 2016 +0100
     6.3 @@ -39,12 +39,12 @@
     6.4   * @library /testlibrary
     6.5   * @requires (os.simpleArch == "x64") & (os.family != "windows")
     6.6   * @summary Verify that the Montgomery multiply intrinsic works and correctly checks its arguments.
     6.7 - * @run main/othervm -XX:+UseMontgomerySquareIntrinsic -XX:+UseMontgomeryMultiplyIntrinsic
     6.8 - *      MontgomeryMultiplyTest
     6.9 - * @run main/othervm -XX:+UseMontgomerySquareIntrinsic -XX:-UseMontgomeryMultiplyIntrinsic
    6.10 - *      MontgomeryMultiplyTest
    6.11 - * @run main/othervm -XX:-UseMontgomerySquareIntrinsic -XX:+UseMontgomeryMultiplyIntrinsic
    6.12 - *      MontgomeryMultiplyTest
    6.13 + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseMontgomerySquareIntrinsic
    6.14 + *      -XX:+UseMontgomeryMultiplyIntrinsic MontgomeryMultiplyTest
    6.15 + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseMontgomerySquareIntrinsic
    6.16 + *      -XX:-UseMontgomeryMultiplyIntrinsic MontgomeryMultiplyTest
    6.17 + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseMontgomerySquareIntrinsic
    6.18 + *      -XX:+UseMontgomeryMultiplyIntrinsic MontgomeryMultiplyTest
    6.19   */
    6.20  
    6.21  public class MontgomeryMultiplyTest {
     7.1 --- a/test/compiler/intrinsics/squaretolen/TestSquareToLen.java	Tue Mar 29 13:25:38 2016 -0700
     7.2 +++ b/test/compiler/intrinsics/squaretolen/TestSquareToLen.java	Tue Mar 29 23:01:10 2016 +0100
     7.3 @@ -28,6 +28,7 @@
     7.4   * @summary Add C2 x86 intrinsic for BigInteger::squareToLen() method
     7.5   *
     7.6   * @run main/othervm/timeout=600 -XX:-TieredCompilation -Xbatch
     7.7 + *      -XX:+IgnoreUnrecognizedVMOptions
     7.8   *      -XX:+UseSquareToLenIntrinsic
     7.9   *      -XX:CompileCommand=exclude,TestSquareToLen::main
    7.10   *      -XX:CompileCommand=option,TestSquareToLen::base_multiply,ccstr,DisableIntrinsic,_squareToLen

mercurial