use of com.oracle.truffle.espresso.nodes.BytecodeNode in project graal by oracle.
the class QuickenedGetFieldNode method execute.
@Override
public int execute(VirtualFrame frame) {
BytecodeNode root = getBytecodeNode();
StaticObject receiver = nullCheck(BytecodeNode.popObject(frame, top - 1));
// -receiver
return getFieldNode.getField(frame, root, receiver, top - 1, statementIndex) - 1;
}
use of com.oracle.truffle.espresso.nodes.BytecodeNode in project graal by oracle.
the class InlinedSetterNode method execute.
@Override
public int execute(VirtualFrame frame) {
BytecodeNode root = getBytecodeNode();
StaticObject receiver = field.isStatic() ? field.getDeclaringKlass().tryInitializeAndGetStatics() : nullCheck(BytecodeNode.popObject(frame, top - 1 - slotCount));
setFieldNode.setField(frame, root, receiver, top, statementIndex);
return -slotCount + stackEffect;
}
use of com.oracle.truffle.espresso.nodes.BytecodeNode in project graal by oracle.
the class QuickenedPutFieldNode method execute.
@Override
public int execute(VirtualFrame frame) {
BytecodeNode root = getBytecodeNode();
StaticObject receiver = nullCheck(BytecodeNode.popObject(frame, top - 1 - slotCount));
setFieldNode.setField(frame, root, receiver, top, statementIndex);
// -receiver
return -slotCount - 1;
}
use of com.oracle.truffle.espresso.nodes.BytecodeNode in project graal by oracle.
the class InlinedGetterNode method execute.
@Override
public int execute(VirtualFrame frame) {
BytecodeNode root = getBytecodeNode();
StaticObject receiver = field.isStatic() ? field.getDeclaringKlass().tryInitializeAndGetStatics() : nullCheck(BytecodeNode.popObject(frame, top - 1));
return (getResultAt() - top) + getFieldNode.getField(frame, root, receiver, getResultAt(), statementIndex);
}
use of com.oracle.truffle.espresso.nodes.BytecodeNode in project graal by oracle.
the class LeafAssumptionGetterNode method execute.
@Override
public int execute(VirtualFrame frame) {
BytecodeNode root = getBytecodeNode();
if (inlinedMethod.leafAssumption()) {
StaticObject receiver = field.isStatic() ? field.getDeclaringKlass().tryInitializeAndGetStatics() : nullCheck(BytecodeNode.popObject(frame, top - 1));
int resultAt = inlinedMethod.isStatic() ? top : (top - 1);
return (resultAt - top) + getFieldNode.getField(frame, root, receiver, resultAt, statementIndex);
} else {
CompilerDirectives.transferToInterpreterAndInvalidate();
return root.reQuickenInvoke(frame, top, curBCI, opCode, statementIndex, inlinedMethod);
}
}
Aggregations