src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/AssertionSnippets.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/AssertionSnippets.java Mon Mar 20 17:38:52 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/AssertionSnippets.java Mon Mar 20 17:38:52 2017
*** 33,42 ****
--- 33,43 ----
import org.graalvm.compiler.hotspot.meta.HotSpotProviders;
import org.graalvm.compiler.hotspot.nodes.StubStartNode;
import org.graalvm.compiler.nodes.StructuredGraph;
import org.graalvm.compiler.nodes.extended.ForeignCallNode;
import org.graalvm.compiler.nodes.spi.LoweringTool;
+ import org.graalvm.compiler.options.OptionValues;
import org.graalvm.compiler.replacements.SnippetTemplate.AbstractTemplates;
import org.graalvm.compiler.replacements.SnippetTemplate.Arguments;
import org.graalvm.compiler.replacements.SnippetTemplate.SnippetInfo;
import org.graalvm.compiler.replacements.Snippets;
import org.graalvm.compiler.replacements.nodes.AssertionNode;
*** 51,69 ****
--- 52,70 ----
* configured to be a leaf method.
*/
public static final ForeignCallDescriptor ASSERTION_VM_MESSAGE_C = new ForeignCallDescriptor("assertionVmMessageC", void.class, boolean.class, Word.class, long.class, long.class, long.class);
@Snippet
! public static void assertion(boolean value, @ConstantParameter String message) {
! if (!value) {
! public static void assertion(boolean condition, @ConstantParameter String message) {
! if (!condition) {
vmMessageC(ASSERTION_VM_MESSAGE_C, true, cstring(message), 0L, 0L, 0L);
}
}
@Snippet
! public static void stubAssertion(boolean value, @ConstantParameter String message) {
! if (!value) {
! public static void stubAssertion(boolean condition, @ConstantParameter String message) {
! if (!condition) {
vmMessageC(ASSERTION_VM_MESSAGE_C, true, cstring(message), 0L, 0L, 0L);
}
}
@NodeIntrinsic(ForeignCallNode.class)
*** 72,89 ****
--- 73,90 ----
public static class Templates extends AbstractTemplates {
private final SnippetInfo assertion = snippet(AssertionSnippets.class, "assertion");
private final SnippetInfo stubAssertion = snippet(AssertionSnippets.class, "stubAssertion");
! public Templates(OptionValues options, HotSpotProviders providers, TargetDescription target) {
! super(options, providers, providers.getSnippetReflection(), target);
}
public void lower(AssertionNode assertionNode, LoweringTool tool) {
StructuredGraph graph = assertionNode.graph();
Arguments args = new Arguments(graph.start() instanceof StubStartNode ? stubAssertion : assertion, graph.getGuardsStage(), tool.getLoweringStage());
! args.add("value", assertionNode.value());
! args.add("condition", assertionNode.condition());
args.addConst("message", "failed runtime assertion in snippet/stub: " + assertionNode.message() + " (" + graph.method() + ")");
template(args).instantiate(providers.getMetaAccess(), assertionNode, DEFAULT_REPLACER, args);
}
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/AssertionSnippets.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File