comparison jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java @ 22782:bf8a5a6861b1

Add CompilerToVM.interpreterFrameSize to support stack banging for deopt
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Wed, 20 Jan 2016 13:56:34 -0800
parents d57508b1bcb5
children 2d1ca131b8be
comparison
equal deleted inserted replaced
22781:5d06abd6d35b 22782:bf8a5a6861b1
27 import static jdk.vm.ci.inittimer.InitTimer.timer; 27 import static jdk.vm.ci.inittimer.InitTimer.timer;
28 28
29 import java.lang.reflect.Constructor; 29 import java.lang.reflect.Constructor;
30 import java.lang.reflect.Method; 30 import java.lang.reflect.Method;
31 31
32 import jdk.vm.ci.code.BytecodeFrame;
32 import jdk.vm.ci.code.InstalledCode; 33 import jdk.vm.ci.code.InstalledCode;
33 import jdk.vm.ci.code.InvalidInstalledCodeException; 34 import jdk.vm.ci.code.InvalidInstalledCodeException;
34 import jdk.vm.ci.code.TargetDescription; 35 import jdk.vm.ci.code.TargetDescription;
35 import jdk.vm.ci.common.JVMCIError; 36 import jdk.vm.ci.common.JVMCIError;
36 import jdk.vm.ci.hotspotvmconfig.HotSpotVMField; 37 import jdk.vm.ci.hotspotvmconfig.HotSpotVMField;
585 * @param position 586 * @param position
586 * @return the size of the ProfileData item pointed at by {@code position} 587 * @return the size of the ProfileData item pointed at by {@code position}
587 * @throws IllegalArgumentException if an out of range position is given 588 * @throws IllegalArgumentException if an out of range position is given
588 */ 589 */
589 native int methodDataProfileDataSize(long metaspaceMethodData, int position); 590 native int methodDataProfileDataSize(long metaspaceMethodData, int position);
591
592 /**
593 * Return the amount of native stack required for the interpreter frames represented by
594 * {@code frame}. This is used when emitting the stack banging code to ensure that there is
595 * enough space for the frames during deoptimization.
596 *
597 * @param frame
598 * @return the number of bytes required for deoptimization of this frame state
599 */
600 native int interpreterFrameSize(BytecodeFrame frame);
590 } 601 }