< prev index next >

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

Print this page

        

*** 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,122 ---- argcount = 10; procArgs = new String[argcount]; procArgs[argcount - 3] = "-XX:+UseConcMarkSweepGC"; procArgs[argcount - 2] = "-XX:+UseCondCardMark"; break; + case "Shenandoah": + argcount = 10; + procArgs = new String[argcount]; + procArgs[argcount - 3] = "-XX:+UnlockExperimentalVMOptions"; + procArgs[argcount - 2] = "-XX:+UseShenandoahGC"; + break; + case "ShenandoahTraversal": + argcount = 11; + procArgs = new String[argcount]; + procArgs[argcount - 4] = "-XX:+UnlockExperimentalVMOptions"; + procArgs[argcount - 3] = "-XX:+UseShenandoahGC"; + procArgs[argcount - 2] = "-XX:ShenandoahGCHeuristics=traversal"; + break; default: throw new RuntimeException("unexpected test type " + testType); } // fill in arguments common to all cases
*** 353,362 **** --- 368,388 ---- "strb", "membar_volatile \\(elided\\)", "ret" }; break; + case "Shenandoah": + case "ShenandoahTraversal": + // Shenandoah generates normal object graphs for + // volatile stores + matches = new String[] { + "membar_release \\(elided\\)", + useCompressedOops ? "stlrw?" : "stlr", + "membar_volatile \\(elided\\)", + "ret" + }; + break; } } else { switch (testType) { default: // this is the basic sequence of instructions
*** 416,425 **** --- 442,465 ---- "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", + useCompressedOops ? "strw?" : "str", + "membar_volatile", + "dmb ish", + "ret" + }; + break; } } checkCompile(iter, "testObj", matches, output, true); }
*** 518,527 **** --- 558,578 ---- "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\\)", + useCompressedOops ? "cmpxchgw?_acq_shenandoah" : "cmpxchg_acq_shenandoah", + "membar_acquire \\(elided\\)", + "ret" + }; + break; } } else { switch (testType) { default: // this is the basic sequence of instructions
*** 581,590 **** --- 632,654 ---- "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", + useCompressedOops ? "cmpxchgw?_shenandoah" : "cmpxchg_shenandoah", + "membar_acquire", + "dmb ish", + "ret" + }; + break; } } checkCompile(iter, "testObj", matches, output, true); }
*** 699,708 **** --- 763,783 ---- "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\\)", + useCompressedOops ? "cmpxchgw?_acq_shenandoah" : "cmpxchg_acq_shenandoah", + "membar_acquire \\(elided\\)", + "ret" + }; + break; } } else { switch (testType) { default: // this is the basic sequence of instructions
*** 762,771 **** --- 837,859 ---- "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", + useCompressedOops ? "cmpxchgw?_shenandoah" : "cmpxchg_shenandoah", + "membar_acquire", + "dmb ish", + "ret" + }; + break; } } checkCompile(iter, "testObj", matches, output, true); }
*** 860,869 **** --- 948,966 ---- "strb", "membar_acquire \\(elided\\)", "ret" }; break; + case "Shenandoah": + case "ShenandoahTraversal": + matches = new String[] { + "membar_release \\(elided\\)", + useCompressedOops ? "atomic_xchgw?_acq" : "atomic_xchg_acq", + "membar_acquire \\(elided\\)", + "ret" + }; + break; } } else { switch (testType) { default: // this is the basic sequence of instructions
*** 923,932 **** --- 1020,1040 ---- "membar_acquire", "dmb ish", "ret" }; break; + case "Shenandoah": + case "ShenandoahTraversal": + matches = new String[] { + "membar_release", + "dmb ish", + useCompressedOops ? "atomic_xchgw? " : "atomic_xchg ", + "membar_acquire", + "dmb ish", + "ret" + }; + break; } } checkCompile(iter, "testObj", matches, output, true); }
< prev index next >