< 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 >