@Override public void lower(CEntryPointLeaveNode node, LoweringTool tool) { Arguments args; switch (node.getLeaveAction()) { case Leave: args = new Arguments(returnFromJavaToC, node.graph().getGuardsStage(), tool.getLoweringStage()); break; case DetachThread: args = new Arguments(detachThread, node.graph().getGuardsStage(), tool.getLoweringStage()); break; case TearDownIsolate: args = new Arguments(tearDownIsolate, node.graph().getGuardsStage(), tool.getLoweringStage()); break; case ExceptionAbort: args = new Arguments(reportException, node.graph().getGuardsStage(), tool.getLoweringStage()); args.add("exception", node.getException()); break; default: throw shouldNotReachHere(); } template(node, args).instantiate(providers.getMetaAccess(), node, SnippetTemplate.DEFAULT_REPLACER, args); }