コード例 #1
0
 public void lower(ArrayCopyUnrollNode arraycopy, LoweringTool tool) {
   StructuredGraph graph = arraycopy.graph();
   if (!graph.getGuardsStage().areFrameStatesAtDeopts()) {
     // Can't be lowered yet
     return;
   }
   SnippetInfo snippetInfo = arraycopyUnrolledWorkSnippet;
   Arguments args = new Arguments(snippetInfo, graph.getGuardsStage(), tool.getLoweringStage());
   args.add("nonNullSrc", arraycopy.getSource());
   args.add("srcPos", arraycopy.getSourcePosition());
   args.add("nonNullDest", arraycopy.getDestination());
   args.add("destPos", arraycopy.getDestinationPosition());
   args.addConst("length", arraycopy.getUnrollLength());
   args.addConst("elementKind", arraycopy.getElementKind());
   template(args)
       .instantiate(
           providers.getMetaAccess(), arraycopy, SnippetTemplate.DEFAULT_REPLACER, args);
 }