< prev index next >

test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java

Print this page

        

*** 34,44 **** * TestUnsafeVolatileCAS} * and <testtype> in {G1, * CMS, * CMSCondMark, * Serial, ! * Parallel} */ package compiler.c2.aarch64; --- 34,46 ---- * TestUnsafeVolatileCAS} * and <testtype> in {G1, * CMS, * CMSCondMark, * Serial, ! * Parallel, ! * Shenandoah, ! * ShenandoahTraversal} */ package compiler.c2.aarch64;
*** 92,101 **** --- 94,115 ---- argcount = 9 ; procArgs = new String[argcount]; procArgs[argcount - 3] = "-XX:+UseConcMarkSweepGC"; procArgs[argcount - 2] = "-XX:+UseCondCardMark"; break; + case "Shenandoah": + argcount = 8; + procArgs = new String[argcount]; + procArgs[argcount - 2] = "-XX:+UseShenandoahGC"; + break; + case "ShenandoahTraversal": + argcount = 10; + procArgs = new String[argcount]; + procArgs[argcount - 4] = "-XX:+UseShenandoahGC"; + procArgs[argcount - 3] = "-XX:+UnlockExperimentalVMOptions"; + procArgs[argcount - 2] = "-XX:ShenandoahGCHeuristics=traversal"; + break; default: throw new RuntimeException("unexpected test type " + testType); } // fill in arguments common to all cases
*** 315,324 **** --- 329,349 ---- "strb", "membar_volatile (elided)", "ret" }; break; + case "Shenandoah": + case "ShenandoahTraversal": + // Shenandoah generates normal object graphs for + // volatile stores + matches = new String[] { + "membar_release (elided)", + "stlrw", + "membar_volatile (elided)", + "ret" + }; + break; } } else { switch (testType) { default: // this is the basic sequence of instructions
*** 378,387 **** --- 403,426 ---- "membar_volatile", "dmb ish", "ret" }; break; + + case "Shenandoah": + case "ShenandoahTraversal": + // Shenandoah generates normal object graphs for + // volatile stores + matches = new String[] { + "membar_release", + "dmb ish", + "strw", + "membar_volatile", + "dmb ish", + "ret" + }; + break; } } checkCompile(iter, "testObj", matches, output); }
*** 472,481 **** --- 511,531 ---- "strb", "membar_acquire (elided)", "ret" }; break; + case "Shenandoah": + case "ShenandoahTraversal": + // For volatile CAS, Shenanodoah generates normal + // graphs with a shenandoah-specific cmpxchg + matches = new String[] { + "membar_release (elided)", + "cmpxchgw_acq_shenandoah", + "membar_acquire (elided)", + "ret" + }; + break; } } else { switch (testType) { default: // this is the basic sequence of instructions
*** 535,544 **** --- 585,607 ---- "membar_acquire", "dmb ish", "ret" }; break; + case "Shenandoah": + case "ShenandoahTraversal": + // For volatile CAS, Shenanodoah generates normal + // graphs with a shenandoah-specific cmpxchg + matches = new String[] { + "membar_release", + "dmb ish", + "cmpxchgw_shenandoah", + "membar_acquire", + "dmb ish", + "ret" + }; + break; } } checkCompile(iter, "testObj", matches, output); }
< prev index next >