< prev index next >

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

Print this page
rev 52710 : Upstream/backport Shenandoah to JDK11u

*** 37,47 **** * TestUnsafeVolatileGAS} * and <testtype> in {G1, * CMS, * CMSCondMark, * Serial, ! * Parallel} */ package compiler.c2.aarch64; --- 37,49 ---- * TestUnsafeVolatileGAS} * and <testtype> in {G1, * CMS, * CMSCondMark, * Serial, ! * Parallel, ! * Shenandoah, ! * ShenandoahTraversal} */ package compiler.c2.aarch64;
*** 98,107 **** --- 100,121 ---- argcount = 10; 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:ShenandoahGCMode=traversal"; + break; default: throw new RuntimeException("unexpected test type " + testType); } // fill in arguments common to all cases
*** 353,362 **** --- 367,387 ---- "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
*** 416,425 **** --- 441,464 ---- "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, true); }
*** 518,527 **** --- 557,577 ---- "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
*** 762,771 **** --- 812,834 ---- "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, true); }
< prev index next >