# HG changeset patch # User mgronlun # Date 1386522058 -3600 # Node ID bf15208b72a5d8837bb971353e864da339c9e4d1 # Parent a150ff9e8efc374db16aa86ef4a16b35b991efe9# Parent 3aa20cee331a0d97fa70382e56ee45c5ba1aff47 Merge diff -r a150ff9e8efc -r bf15208b72a5 .hgtags --- a/.hgtags Fri Dec 06 11:49:50 2013 -0500 +++ b/.hgtags Sun Dec 08 18:00:58 2013 +0100 @@ -399,3 +399,5 @@ abad3b2d905d9e1ad767c94baa94aba6ed5b207b hs25-b60 c9f439732b18ea16f7e65815327d5ea7092cc258 jdk8-b118 b2426da30009cd3069d03de073f351e6432c7682 hs25-b61 +ce42d815dd2130250acf6132b51b624001638f0d jdk8-b119 +05fedd51e40da22c9460bf17c7185889e435db3d hs25-b62 diff -r a150ff9e8efc -r bf15208b72a5 agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/G1HeapRegionTable.java --- a/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/G1HeapRegionTable.java Fri Dec 06 11:49:50 2013 -0500 +++ b/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/G1HeapRegionTable.java Sun Dec 08 18:00:58 2013 +0100 @@ -103,14 +103,14 @@ @Override public void remove() { /* not supported */ } - HeapRegionIterator(Address addr) { + HeapRegionIterator(long committedLength) { index = 0; - length = length(); + length = committedLength; } } - public Iterator heapRegionIterator() { - return new HeapRegionIterator(addr); + public Iterator heapRegionIterator(long committedLength) { + return new HeapRegionIterator(committedLength); } public G1HeapRegionTable(Address addr) { diff -r a150ff9e8efc -r bf15208b72a5 agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java --- a/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java Fri Dec 06 11:49:50 2013 -0500 +++ b/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java Sun Dec 08 18:00:58 2013 +0100 @@ -42,6 +42,8 @@ public class HeapRegionSeq extends VMObject { // G1HeapRegionTable _regions static private long regionsFieldOffset; + // uint _committed_length + static private CIntegerField committedLengthField; static { VM.registerVMInitializedObserver(new Observer() { @@ -55,6 +57,7 @@ Type type = db.lookupType("HeapRegionSeq"); regionsFieldOffset = type.getField("_regions").getOffset(); + committedLengthField = type.getCIntegerField("_committed_length"); } private G1HeapRegionTable regions() { @@ -67,8 +70,12 @@ return regions().length(); } + public long committedLength() { + return committedLengthField.getValue(addr); + } + public Iterator heapRegionIterator() { - return regions().heapRegionIterator(); + return regions().heapRegionIterator(committedLength()); } public HeapRegionSeq(Address addr) { diff -r a150ff9e8efc -r bf15208b72a5 make/hotspot_version --- a/make/hotspot_version Fri Dec 06 11:49:50 2013 -0500 +++ b/make/hotspot_version Sun Dec 08 18:00:58 2013 +0100 @@ -35,7 +35,7 @@ HS_MAJOR_VER=25 HS_MINOR_VER=0 -HS_BUILD_NUMBER=62 +HS_BUILD_NUMBER=63 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 diff -r a150ff9e8efc -r bf15208b72a5 src/cpu/sparc/vm/vm_version_sparc.cpp --- a/src/cpu/sparc/vm/vm_version_sparc.cpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/cpu/sparc/vm/vm_version_sparc.cpp Sun Dec 08 18:00:58 2013 +0100 @@ -89,6 +89,27 @@ _supports_cx8 = has_v9(); _supports_atomic_getset4 = true; // swap instruction + // There are Fujitsu Sparc64 CPUs which support blk_init as well so + // we have to take this check out of the 'is_niagara()' block below. + if (has_blk_init()) { + // When using CMS or G1, we cannot use memset() in BOT updates + // because the sun4v/CMT version in libc_psr uses BIS which + // exposes "phantom zeros" to concurrent readers. See 6948537. + if (FLAG_IS_DEFAULT(UseMemSetInBOT) && (UseConcMarkSweepGC || UseG1GC)) { + FLAG_SET_DEFAULT(UseMemSetInBOT, false); + } + // Issue a stern warning if the user has explicitly set + // UseMemSetInBOT (it is known to cause issues), but allow + // use for experimentation and debugging. + if (UseConcMarkSweepGC || UseG1GC) { + if (UseMemSetInBOT) { + assert(!FLAG_IS_DEFAULT(UseMemSetInBOT), "Error"); + warning("Experimental flag -XX:+UseMemSetInBOT is known to cause instability" + " on sun4v; please understand that you are using at your own risk!"); + } + } + } + if (is_niagara()) { // Indirect branch is the same cost as direct if (FLAG_IS_DEFAULT(UseInlineCaches)) { @@ -98,12 +119,6 @@ if (FLAG_IS_DEFAULT(OptoLoopAlignment)) { FLAG_SET_DEFAULT(OptoLoopAlignment, 4); } - // When using CMS or G1, we cannot use memset() in BOT updates - // because the sun4v/CMT version in libc_psr uses BIS which - // exposes "phantom zeros" to concurrent readers. See 6948537. - if (FLAG_IS_DEFAULT(UseMemSetInBOT) && (UseConcMarkSweepGC || UseG1GC)) { - FLAG_SET_DEFAULT(UseMemSetInBOT, false); - } #ifdef _LP64 // 32-bit oops don't make sense for the 64-bit VM on sparc // since the 32-bit VM has the same registers and smaller objects. diff -r a150ff9e8efc -r bf15208b72a5 src/cpu/sparc/vm/vm_version_sparc.hpp --- a/src/cpu/sparc/vm/vm_version_sparc.hpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/cpu/sparc/vm/vm_version_sparc.hpp Sun Dec 08 18:00:58 2013 +0100 @@ -94,7 +94,13 @@ static bool is_M_family(int features) { return (features & M_family_m) != 0; } static bool is_T_family(int features) { return (features & T_family_m) != 0; } static bool is_niagara() { return is_T_family(_features); } - DEBUG_ONLY( static bool is_niagara(int features) { return (features & sun4v_m) != 0; } ) +#ifdef ASSERT + static bool is_niagara(int features) { + // 'sun4v_m' may be defined on both Sun/Oracle Sparc CPUs as well as + // on Fujitsu Sparc64 CPUs, but only Sun/Oracle Sparcs can be 'niagaras'. + return (features & sun4v_m) != 0 && (features & sparc64_family_m) == 0; + } +#endif // Returns true if it is niagara1 (T1). static bool is_T1_model(int features) { return is_T_family(features) && ((features & T1_model_m) != 0); } diff -r a150ff9e8efc -r bf15208b72a5 src/cpu/x86/vm/c1_Runtime1_x86.cpp --- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp Sun Dec 08 18:00:58 2013 +0100 @@ -1719,10 +1719,12 @@ BarrierSet* bs = Universe::heap()->barrier_set(); CardTableModRefBS* ct = (CardTableModRefBS*)bs; + assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code"); + Label done; Label runtime; - // At this point we know new_value is non-NULL and the new_value crosses regsion. + // At this point we know new_value is non-NULL and the new_value crosses regions. // Must check to see if card is already dirty const Register thread = NOT_LP64(rax) LP64_ONLY(r15_thread); @@ -1735,26 +1737,17 @@ __ push(rax); __ push(rcx); - NOT_LP64(__ get_thread(thread);) - ExternalAddress cardtable((address)ct->byte_map_base); - assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code"); + const Register cardtable = rax; + const Register card_addr = rcx; - const Register card_addr = rcx; -#ifdef _LP64 - const Register tmp = rscratch1; f.load_argument(0, card_addr); - __ shrq(card_addr, CardTableModRefBS::card_shift); - __ lea(tmp, cardtable); - // get the address of the card - __ addq(card_addr, tmp); -#else - const Register card_index = rcx; - f.load_argument(0, card_index); - __ shrl(card_index, CardTableModRefBS::card_shift); + __ shrptr(card_addr, CardTableModRefBS::card_shift); + // Do not use ExternalAddress to load 'byte_map_base', since 'byte_map_base' is NOT + // a valid address and therefore is not properly handled by the relocation code. + __ movptr(cardtable, (intptr_t)ct->byte_map_base); + __ addptr(card_addr, cardtable); - Address index(noreg, card_index, Address::times_1); - __ leal(card_addr, __ as_Address(ArrayAddress(cardtable, index))); -#endif + NOT_LP64(__ get_thread(thread);) __ cmpb(Address(card_addr, 0), (int)G1SATBCardTableModRefBS::g1_young_card_val()); __ jcc(Assembler::equal, done); diff -r a150ff9e8efc -r bf15208b72a5 src/cpu/x86/vm/macroAssembler_x86.cpp --- a/src/cpu/x86/vm/macroAssembler_x86.cpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/cpu/x86/vm/macroAssembler_x86.cpp Sun Dec 08 18:00:58 2013 +0100 @@ -3354,6 +3354,8 @@ BarrierSet* bs = Universe::heap()->barrier_set(); CardTableModRefBS* ct = (CardTableModRefBS*)bs; + assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code"); + Label done; Label runtime; @@ -3371,28 +3373,16 @@ // storing region crossing non-NULL, is card already dirty? - ExternalAddress cardtable((address) ct->byte_map_base); - assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code"); -#ifdef _LP64 const Register card_addr = tmp; - - movq(card_addr, store_addr); - shrq(card_addr, CardTableModRefBS::card_shift); - - lea(tmp2, cardtable); - - // get the address of the card - addq(card_addr, tmp2); -#else - const Register card_index = tmp; - - movl(card_index, store_addr); - shrl(card_index, CardTableModRefBS::card_shift); - - Address index(noreg, card_index, Address::times_1); - const Register card_addr = tmp; - lea(card_addr, as_Address(ArrayAddress(cardtable, index))); -#endif + const Register cardtable = tmp2; + + movptr(card_addr, store_addr); + shrptr(card_addr, CardTableModRefBS::card_shift); + // Do not use ExternalAddress to load 'byte_map_base', since 'byte_map_base' is NOT + // a valid address and therefore is not properly handled by the relocation code. + movptr(cardtable, (intptr_t)ct->byte_map_base); + addptr(card_addr, cardtable); + cmpb(Address(card_addr, 0), (int)G1SATBCardTableModRefBS::g1_young_card_val()); jcc(Assembler::equal, done); @@ -3416,7 +3406,7 @@ movq(Address(tmp2, 0), card_addr); #else addl(tmp2, queue_index); - movl(Address(tmp2, 0), card_index); + movl(Address(tmp2, 0), card_addr); #endif jmp(done); @@ -3468,25 +3458,19 @@ // The calculation for byte_map_base is as follows: // byte_map_base = _byte_map - (uintptr_t(low_bound) >> card_shift); - // So this essentially converts an address to a displacement and - // it will never need to be relocated. On 64bit however the value may be too - // large for a 32bit displacement - + // So this essentially converts an address to a displacement and it will + // never need to be relocated. On 64bit however the value may be too + // large for a 32bit displacement. intptr_t disp = (intptr_t) ct->byte_map_base; if (is_simm32(disp)) { Address cardtable(noreg, obj, Address::times_1, disp); movb(cardtable, 0); } else { - // By doing it as an ExternalAddress disp could be converted to a rip-relative - // displacement and done in a single instruction given favorable mapping and - // a smarter version of as_Address. Worst case it is two instructions which - // is no worse off then loading disp into a register and doing as a simple - // Address() as above. - // We can't do as ExternalAddress as the only style since if disp == 0 we'll - // assert since NULL isn't acceptable in a reloci (see 6644928). In any case - // in some cases we'll get a single instruction version. - - ExternalAddress cardtable((address)disp); + // By doing it as an ExternalAddress 'disp' could be converted to a rip-relative + // displacement and done in a single instruction given favorable mapping and a + // smarter version of as_Address. However, 'ExternalAddress' generates a relocation + // entry and that entry is not properly handled by the relocation code. + AddressLiteral cardtable((address)ct->byte_map_base, relocInfo::none); Address index(noreg, obj, Address::times_1); movb(as_Address(ArrayAddress(cardtable, index)), 0); } diff -r a150ff9e8efc -r bf15208b72a5 src/share/vm/gc_implementation/shared/markSweep.cpp --- a/src/share/vm/gc_implementation/shared/markSweep.cpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/share/vm/gc_implementation/shared/markSweep.cpp Sun Dec 08 18:00:58 2013 +0100 @@ -66,29 +66,10 @@ klass->oops_do(&MarkSweep::adjust_pointer_closure); } -void MarkSweep::follow_klass(Klass* klass) { - ClassLoaderData* cld = klass->class_loader_data(); - // The actual processing of the klass is done when we - // traverse the list of Klasses in the class loader data. - MarkSweep::follow_class_loader(cld); -} - -void MarkSweep::adjust_klass(Klass* klass) { - ClassLoaderData* cld = klass->class_loader_data(); - // The actual processing of the klass is done when we - // traverse the list of Klasses in the class loader data. - MarkSweep::adjust_class_loader(cld); -} - void MarkSweep::follow_class_loader(ClassLoaderData* cld) { cld->oops_do(&MarkSweep::mark_and_push_closure, &MarkSweep::follow_klass_closure, true); } -void MarkSweep::adjust_class_loader(ClassLoaderData* cld) { - cld->oops_do(&MarkSweep::adjust_pointer_closure, &MarkSweep::adjust_klass_closure, true); -} - - void MarkSweep::follow_stack() { do { while (!_marking_stack.is_empty()) { diff -r a150ff9e8efc -r bf15208b72a5 src/share/vm/gc_implementation/shared/markSweep.hpp --- a/src/share/vm/gc_implementation/shared/markSweep.hpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/share/vm/gc_implementation/shared/markSweep.hpp Sun Dec 08 18:00:58 2013 +0100 @@ -172,10 +172,8 @@ static void follow_stack(); // Empty marking stack. static void follow_klass(Klass* klass); - static void adjust_klass(Klass* klass); static void follow_class_loader(ClassLoaderData* cld); - static void adjust_class_loader(ClassLoaderData* cld); static void preserve_mark(oop p, markOop mark); // Save the mark word so it can be restored later diff -r a150ff9e8efc -r bf15208b72a5 src/share/vm/gc_implementation/shared/markSweep.inline.hpp --- a/src/share/vm/gc_implementation/shared/markSweep.inline.hpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/share/vm/gc_implementation/shared/markSweep.inline.hpp Sun Dec 08 18:00:58 2013 +0100 @@ -44,6 +44,11 @@ } } +inline void MarkSweep::follow_klass(Klass* klass) { + oop op = klass->klass_holder(); + MarkSweep::mark_and_push(&op); +} + template inline void MarkSweep::follow_root(T* p) { assert(!Universe::heap()->is_in_reserved(p), "roots shouldn't be things within the heap"); diff -r a150ff9e8efc -r bf15208b72a5 src/share/vm/oops/instanceKlass.cpp --- a/src/share/vm/oops/instanceKlass.cpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/share/vm/oops/instanceKlass.cpp Sun Dec 08 18:00:58 2013 +0100 @@ -2180,7 +2180,6 @@ obj, \ MarkSweep::adjust_pointer(p), \ assert_is_in) - MarkSweep::adjust_klass(obj->klass()); return size; } diff -r a150ff9e8efc -r bf15208b72a5 src/share/vm/oops/instanceMirrorKlass.cpp --- a/src/share/vm/oops/instanceMirrorKlass.cpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/share/vm/oops/instanceMirrorKlass.cpp Sun Dec 08 18:00:58 2013 +0100 @@ -155,7 +155,13 @@ // Follow the klass field in the mirror. Klass* klass = java_lang_Class::as_Klass(obj); if (klass != NULL) { - MarkSweep::follow_klass(klass); + // For anonymous classes we need to handle the class loader data, + // otherwise it won't be claimed and can be unloaded. + if (klass->oop_is_instance() && InstanceKlass::cast(klass)->is_anonymous()) { + MarkSweep::follow_class_loader(klass->class_loader_data()); + } else { + MarkSweep::follow_klass(klass); + } } else { // If klass is NULL then this a mirror for a primitive type. // We don't have to follow them, since they are handled as strong @@ -196,17 +202,6 @@ int size = oop_size(obj); InstanceKlass::oop_adjust_pointers(obj); - // Follow the klass field in the mirror. - Klass* klass = java_lang_Class::as_Klass(obj); - if (klass != NULL) { - MarkSweep::adjust_klass(klass); - } else { - // If klass is NULL then this a mirror for a primitive type. - // We don't have to follow them, since they are handled as strong - // roots in Universe::oops_do. - assert(java_lang_Class::is_primitive(obj), "Sanity check"); - } - InstanceMirrorKlass_OOP_ITERATE( \ start_of_static_fields(obj), java_lang_Class::static_oop_field_count(obj), \ MarkSweep::adjust_pointer(p), \ diff -r a150ff9e8efc -r bf15208b72a5 src/share/vm/oops/objArrayKlass.cpp --- a/src/share/vm/oops/objArrayKlass.cpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/share/vm/oops/objArrayKlass.cpp Sun Dec 08 18:00:58 2013 +0100 @@ -569,7 +569,6 @@ // Get size before changing pointers. // Don't call size() or oop_size() since that is a virtual call. int size = a->object_size(); - MarkSweep::adjust_klass(a->klass()); ObjArrayKlass_OOP_ITERATE(a, p, MarkSweep::adjust_pointer(p)) return size; } diff -r a150ff9e8efc -r bf15208b72a5 src/share/vm/opto/c2_globals.hpp --- a/src/share/vm/opto/c2_globals.hpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/share/vm/opto/c2_globals.hpp Sun Dec 08 18:00:58 2013 +0100 @@ -637,7 +637,7 @@ diagnostic(bool, OptimizeExpensiveOps, true, \ "Find best control for expensive operations") \ \ - product(bool, UseMathExactIntrinsics, true, \ + experimental(bool, UseMathExactIntrinsics, false, \ "Enables intrinsification of various java.lang.Math functions") \ \ experimental(bool, ReplaceInParentMaps, false, \ diff -r a150ff9e8efc -r bf15208b72a5 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Fri Dec 06 11:49:50 2013 -0500 +++ b/src/share/vm/runtime/arguments.cpp Sun Dec 08 18:00:58 2013 +0100 @@ -2278,18 +2278,6 @@ status = status && verify_percentage(MarkSweepDeadRatio, "MarkSweepDeadRatio"); status = status && verify_min_value(MarkSweepAlwaysCompactCount, 1, "MarkSweepAlwaysCompactCount"); -#ifdef SPARC - if (UseConcMarkSweepGC || UseG1GC) { - // Issue a stern warning if the user has explicitly set - // UseMemSetInBOT (it is known to cause issues), but allow - // use for experimentation and debugging. - if (VM_Version::is_sun4v() && UseMemSetInBOT) { - assert(!FLAG_IS_DEFAULT(UseMemSetInBOT), "Error"); - warning("Experimental flag -XX:+UseMemSetInBOT is known to cause instability" - " on sun4v; please understand that you are using at your own risk!"); - } - } -#endif // SPARC if (PrintNMTStatistics) { #if INCLUDE_NMT diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/AddExactICondTest.java --- a/test/compiler/intrinsics/mathexact/AddExactICondTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/AddExactICondTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8024924 * @summary Test non constant addExact * @compile AddExactICondTest.java - * @run main AddExactICondTest + * @run main AddExactICondTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/AddExactIConstantTest.java --- a/test/compiler/intrinsics/mathexact/AddExactIConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/AddExactIConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8024924 * @summary Test constant addExact * @compile AddExactIConstantTest.java Verify.java - * @run main AddExactIConstantTest + * @run main AddExactIConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/AddExactILoadTest.java --- a/test/compiler/intrinsics/mathexact/AddExactILoadTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/AddExactILoadTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8024924 * @summary Test non constant addExact * @compile AddExactILoadTest.java Verify.java - * @run main AddExactILoadTest + * @run main AddExactILoadTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/AddExactILoopDependentTest.java --- a/test/compiler/intrinsics/mathexact/AddExactILoopDependentTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/AddExactILoopDependentTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8024924 * @summary Test non constant addExact * @compile AddExactILoopDependentTest.java Verify.java - * @run main AddExactILoopDependentTest + * @run main AddExactILoopDependentTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/AddExactINonConstantTest.java --- a/test/compiler/intrinsics/mathexact/AddExactINonConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/AddExactINonConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8024924 * @summary Test non constant addExact * @compile AddExactINonConstantTest.java Verify.java - * @run main AddExactINonConstantTest + * @run main AddExactINonConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/AddExactIRepeatTest.java --- a/test/compiler/intrinsics/mathexact/AddExactIRepeatTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/AddExactIRepeatTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8025657 * @summary Test repeating addExact * @compile AddExactIRepeatTest.java Verify.java - * @run main AddExactIRepeatTest + * @run main AddExactIRepeatTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/AddExactLConstantTest.java --- a/test/compiler/intrinsics/mathexact/AddExactLConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/AddExactLConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test constant addExact * @compile AddExactLConstantTest.java Verify.java - * @run main AddExactLConstantTest + * @run main AddExactLConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/AddExactLNonConstantTest.java --- a/test/compiler/intrinsics/mathexact/AddExactLNonConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/AddExactLNonConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test non constant addExact * @compile AddExactLNonConstantTest.java Verify.java - * @run main AddExactLNonConstantTest + * @run main AddExactLNonConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/CompareTest.java --- a/test/compiler/intrinsics/mathexact/CompareTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/CompareTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026722 * @summary Verify that the compare after addExact is a signed compare * @compile CompareTest.java - * @run main CompareTest + * @run main CompareTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/DecExactITest.java --- a/test/compiler/intrinsics/mathexact/DecExactITest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/DecExactITest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test decrementExact * @compile DecExactITest.java Verify.java - * @run main DecExactITest + * @run main DecExactITest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/DecExactLTest.java --- a/test/compiler/intrinsics/mathexact/DecExactLTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/DecExactLTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -25,8 +25,8 @@ * @test * @bug 8026844 * @summary Test decrementExact - * @compile DecExactITest.java Verify.java - * @run main DecExactITest + * @compile DecExactLTest.java Verify.java + * @run main DecExactLTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/GVNTest.java --- a/test/compiler/intrinsics/mathexact/GVNTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/GVNTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8028207 * @summary Verify that GVN doesn't mess up the two addExacts * @compile GVNTest.java - * @run main GVNTest + * @run main GVNTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/IncExactITest.java --- a/test/compiler/intrinsics/mathexact/IncExactITest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/IncExactITest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test incrementExact * @compile IncExactITest.java Verify.java - * @run main IncExactITest + * @run main IncExactITest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/IncExactLTest.java --- a/test/compiler/intrinsics/mathexact/IncExactLTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/IncExactLTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test incrementExact * @compile IncExactLTest.java Verify.java - * @run main IncExactLTest + * @run main IncExactLTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/MulExactICondTest.java --- a/test/compiler/intrinsics/mathexact/MulExactICondTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/MulExactICondTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test multiplyExact as condition * @compile MulExactICondTest.java - * @run main MulExactICondTest + * @run main MulExactICondTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/MulExactIConstantTest.java --- a/test/compiler/intrinsics/mathexact/MulExactIConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/MulExactIConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test constant multiplyExact * @compile MulExactIConstantTest.java Verify.java - * @run main MulExactIConstantTest + * @run main MulExactIConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/MulExactILoadTest.java --- a/test/compiler/intrinsics/mathexact/MulExactILoadTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/MulExactILoadTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test multiplyExact * @compile MulExactILoadTest.java Verify.java - * @run main MulExactILoadTest + * @run main MulExactILoadTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/MulExactILoopDependentTest.java --- a/test/compiler/intrinsics/mathexact/MulExactILoopDependentTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/MulExactILoopDependentTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test loop dependent multiplyExact * @compile MulExactILoopDependentTest.java Verify.java - * @run main MulExactILoopDependentTest + * @run main MulExactILoopDependentTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ public class MulExactILoopDependentTest { diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/MulExactINonConstantTest.java --- a/test/compiler/intrinsics/mathexact/MulExactINonConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/MulExactINonConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test non constant multiplyExact * @compile MulExactINonConstantTest.java Verify.java - * @run main MulExactINonConstantTest + * @run main MulExactINonConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/MulExactIRepeatTest.java --- a/test/compiler/intrinsics/mathexact/MulExactIRepeatTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/MulExactIRepeatTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test repeating multiplyExact * @compile MulExactIRepeatTest.java Verify.java - * @run main MulExactIRepeatTest + * @run main MulExactIRepeatTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/MulExactLConstantTest.java --- a/test/compiler/intrinsics/mathexact/MulExactLConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/MulExactLConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test constant mulExact * @compile MulExactLConstantTest.java Verify.java - * @run main MulExactLConstantTest + * @run main MulExactLConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/MulExactLNonConstantTest.java --- a/test/compiler/intrinsics/mathexact/MulExactLNonConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/MulExactLNonConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test non constant mulExact * @compile MulExactLNonConstantTest.java Verify.java - * @run main MulExactLNonConstantTest + * @run main MulExactLNonConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/NegExactIConstantTest.java --- a/test/compiler/intrinsics/mathexact/NegExactIConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/NegExactIConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test constant negExact * @compile NegExactIConstantTest.java Verify.java - * @run main NegExactIConstantTest + * @run main NegExactIConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/NegExactILoadTest.java --- a/test/compiler/intrinsics/mathexact/NegExactILoadTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/NegExactILoadTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test negExact * @compile NegExactILoadTest.java Verify.java - * @run main NegExactILoadTest + * @run main NegExactILoadTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/NegExactILoopDependentTest.java --- a/test/compiler/intrinsics/mathexact/NegExactILoopDependentTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/NegExactILoopDependentTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test negExact loop dependent * @compile NegExactILoopDependentTest.java Verify.java - * @run main NegExactILoopDependentTest + * @run main NegExactILoopDependentTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ public class NegExactILoopDependentTest { diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/NegExactINonConstantTest.java --- a/test/compiler/intrinsics/mathexact/NegExactINonConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/NegExactINonConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test non constant negExact * @compile NegExactINonConstantTest.java Verify.java - * @run main NegExactINonConstantTest + * @run main NegExactINonConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/NegExactLConstantTest.java --- a/test/compiler/intrinsics/mathexact/NegExactLConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/NegExactLConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test constant negExact * @compile NegExactLConstantTest.java Verify.java - * @run main NegExactLConstantTest + * @run main NegExactLConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/NegExactLNonConstantTest.java --- a/test/compiler/intrinsics/mathexact/NegExactLNonConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/NegExactLNonConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test constant negExact * @compile NegExactLNonConstantTest.java Verify.java - * @run main NegExactLNonConstantTest + * @run main NegExactLNonConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/NestedMathExactTest.java --- a/test/compiler/intrinsics/mathexact/NestedMathExactTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/NestedMathExactTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8027444 * @summary Test nested loops * @compile NestedMathExactTest.java - * @run main NestedMathExactTest + * @run main NestedMathExactTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SplitThruPhiTest.java --- a/test/compiler/intrinsics/mathexact/SplitThruPhiTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SplitThruPhiTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8028198 * @summary Verify that split through phi does the right thing * @compile SplitThruPhiTest.java - * @run main SplitThruPhiTest + * @run main SplitThruPhiTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SubExactICondTest.java --- a/test/compiler/intrinsics/mathexact/SubExactICondTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SubExactICondTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test subtractExact as condition * @compile SubExactICondTest.java Verify.java - * @run main SubExactICondTest + * @run main SubExactICondTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SubExactIConstantTest.java --- a/test/compiler/intrinsics/mathexact/SubExactIConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SubExactIConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test constant subtractExact * @compile SubExactIConstantTest.java Verify.java - * @run main SubExactIConstantTest + * @run main SubExactIConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SubExactILoadTest.java --- a/test/compiler/intrinsics/mathexact/SubExactILoadTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SubExactILoadTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test non constant subtractExact * @compile SubExactILoadTest.java Verify.java - * @run main SubExactILoadTest + * @run main SubExactILoadTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SubExactILoopDependentTest.java --- a/test/compiler/intrinsics/mathexact/SubExactILoopDependentTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SubExactILoopDependentTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test non constant subtractExact * @compile SubExactILoopDependentTest.java Verify.java - * @run main SubExactILoopDependentTest + * @run main SubExactILoopDependentTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SubExactINonConstantTest.java --- a/test/compiler/intrinsics/mathexact/SubExactINonConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SubExactINonConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test non constant subtractExact * @compile SubExactINonConstantTest.java Verify.java - * @run main SubExactINonConstantTest + * @run main SubExactINonConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SubExactIRepeatTest.java --- a/test/compiler/intrinsics/mathexact/SubExactIRepeatTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SubExactIRepeatTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -26,7 +26,7 @@ * @bug 8026844 * @summary Test repeating subtractExact * @compile SubExactIRepeatTest.java Verify.java - * @run main SubExactIRepeatTest + * @run main SubExactIRepeatTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SubExactLConstantTest.java --- a/test/compiler/intrinsics/mathexact/SubExactLConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SubExactLConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -27,7 +27,7 @@ * @bug 8027353 * @summary Test constant subtractExact * @compile SubExactLConstantTest.java Verify.java - * @run main SubExactLConstantTest + * @run main SubExactLConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */ diff -r a150ff9e8efc -r bf15208b72a5 test/compiler/intrinsics/mathexact/SubExactLNonConstantTest.java --- a/test/compiler/intrinsics/mathexact/SubExactLNonConstantTest.java Fri Dec 06 11:49:50 2013 -0500 +++ b/test/compiler/intrinsics/mathexact/SubExactLNonConstantTest.java Sun Dec 08 18:00:58 2013 +0100 @@ -27,7 +27,7 @@ * @bug 8027353 * @summary Test non constant subtractExact * @compile SubExactLNonConstantTest.java Verify.java - * @run main SubExactLNonConstantTest + * @run main SubExactLNonConstantTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics * */