@Override public int executeInt(VirtualFrame frameValue) throws UnexpectedResultException { transferToInterpreter(); Object expressionValue = this.expression.execute(frameValue); return super.executeAndSpecialize0( GlobalFlagGuardUninitializedNode.class, frameValue, expressionValue, "Uninitialized monomorphic"); }
@Override public int executeInt(VirtualFrame frameValue) throws UnexpectedResultException { transferToInterpreter(); Object value0Value = this.value0.execute(frameValue); Object value1Value = this.value1.execute(frameValue); return super.executeAndSpecialize0( InvocationGuardUninitializedNode.class, frameValue, value0Value, value1Value, "Uninitialized monomorphic"); }
@Override public int executeInt(VirtualFrame frameValue) throws UnexpectedResultException { Object expressionValue = this.expression.execute(frameValue); if (super.globalFlagGuard()) { return super.doSpecialized(expressionValue); } transferToInterpreter(); return executeAndSpecialize0( GlobalFlagGuardGenericNode.class, frameValue, expressionValue, "One of guards [globalFlagGuard] failed"); }
@Override public int executeInt(VirtualFrame frameValue) throws UnexpectedResultException { int value0Value; try { value0Value = this.value0.executeInt(frameValue); } catch (UnexpectedResultException ex) { transferToInterpreter(); Object value1Value = this.value1.execute(frameValue); return executeAndSpecialize0( InvocationGuardGenericNode.class, frameValue, ex.getResult(), value1Value, "Expected value0Value instanceof int"); } int value1Value; try { value1Value = this.value1.executeInt(frameValue); } catch (UnexpectedResultException ex) { transferToInterpreter(); return executeAndSpecialize0( InvocationGuardGenericNode.class, frameValue, value0Value, ex.getResult(), "Expected value1Value instanceof int"); } if (super.guard(value0Value, value1Value)) { return super.doSpecialized(value0Value, value1Value); } transferToInterpreter(); return executeAndSpecialize0( InvocationGuardGenericNode.class, frameValue, value0Value, value1Value, "One of guards [guard] failed"); }