Search in sources :

Example 1 with CheckCastQuickNode

use of com.oracle.truffle.espresso.nodes.quick.CheckCastQuickNode in project graal by oracle.

the class BytecodeNode method quickenCheckCast.

private int quickenCheckCast(VirtualFrame frame, int top, int curBCI, int opcode) {
    if (StaticObject.isNull(peekObject(frame, top - 1))) {
        // Skip resolution.
        return -Bytecodes.stackEffectOf(opcode);
    }
    CompilerDirectives.transferToInterpreterAndInvalidate();
    assert opcode == CHECKCAST;
    BaseQuickNode quick = tryPatchQuick(curBCI, () -> new CheckCastQuickNode(resolveType(CHECKCAST, readCPI(curBCI)), top, curBCI));
    return quick.execute(frame) - Bytecodes.stackEffectOf(opcode);
}
Also used : CheckCastQuickNode(com.oracle.truffle.espresso.nodes.quick.CheckCastQuickNode) BaseQuickNode(com.oracle.truffle.espresso.nodes.quick.BaseQuickNode)

Aggregations

BaseQuickNode (com.oracle.truffle.espresso.nodes.quick.BaseQuickNode)1 CheckCastQuickNode (com.oracle.truffle.espresso.nodes.quick.CheckCastQuickNode)1