HotSpotNodeLIRBuilder.java revision 12968:4d8a004e5c6d
1239313Sdim/* 2239313Sdim * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. 3239313Sdim * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4239313Sdim * 5239313Sdim * This code is free software; you can redistribute it and/or modify it 6239313Sdim * under the terms of the GNU General Public License version 2 only, as 7239313Sdim * published by the Free Software Foundation. 8239313Sdim * 9239313Sdim * This code is distributed in the hope that it will be useful, but WITHOUT 10239313Sdim * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11239313Sdim * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12239313Sdim * version 2 for more details (a copy is included in the LICENSE file that 13251662Sdim * accompanied this code). 14239313Sdim * 15239313Sdim * You should have received a copy of the GNU General Public License version 16239313Sdim * 2 along with this work; if not, write to the Free Software Foundation, 17239313Sdim * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18239313Sdim * 19239313Sdim * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20239313Sdim * or visit www.oracle.com if you need additional information or have any 21239313Sdim * questions. 22243830Sdim */ 23239313Sdimpackage org.graalvm.compiler.hotspot; 24239313Sdim 25239313Sdimimport org.graalvm.compiler.core.match.MatchableNode; 26239313Sdimimport org.graalvm.compiler.hotspot.nodes.CompressionNode; 27239313Sdimimport org.graalvm.compiler.lir.gen.LIRGenerator; 28239313Sdimimport org.graalvm.compiler.nodes.ValueNode; 29239313Sdimimport org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool; 30239313Sdim 31239313Sdim/** 32239313Sdim * This interface defines the contract a HotSpot backend LIR generator needs to fulfill in addition 33239313Sdim * to abstract methods from {@link LIRGenerator} and {@link NodeLIRBuilderTool}. 34239313Sdim */ 35239313Sdim@MatchableNode(nodeClass = CompressionNode.class, inputs = {"value"}) 36239313Sdimpublic interface HotSpotNodeLIRBuilder { 37239313Sdim 38239313Sdim void emitPatchReturnAddress(ValueNode address); 39239313Sdim 40239313Sdim default void emitJumpToExceptionHandler(ValueNode address) { 41239313Sdim emitPatchReturnAddress(address); 42239313Sdim } 43239313Sdim 44251662Sdim void emitJumpToExceptionHandlerInCaller(ValueNode handlerInCallerPc, ValueNode exception, ValueNode exceptionPc); 45239313Sdim} 46239313Sdim