@Override public Instr cloneForBlockCloning(InlinerInfo ii) { return new BUndefInstr(getArg1().cloneForInlining(ii), getJumpTarget()); }
@Override public int interpretAndGetNewIPC(ThreadContext context, DynamicScope currDynScope, StaticScope currScope, IRubyObject self, Object[] temp, int ipc) { Object value1 = getArg1().retrieve(context, self, currScope, currDynScope, temp); return value1 == UndefinedValue.UNDEFINED ? getJumpTarget().getTargetPC() : ipc; }
public static BUndefInstr decode(IRReaderDecoder d) { return new BUndefInstr(d.decodeLabel(), d.decodeOperand()); }
case B_SWITCH: return BSwitchInstr.decode(this); case B_TRUE: return BTrueInstr.decode(this); case B_UNDEF: return BUndefInstr.decode(this); case BINDING_LOAD: return LoadLocalVarInstr.decode(this); case BINDING_STORE: return StoreLocalVarInstr.decode(this);
@Override public int interpretAndGetNewIPC(ThreadContext context, DynamicScope currDynScope, StaticScope currScope, IRubyObject self, Object[] temp, int ipc) { Object value1 = getArg1().retrieve(context, self, currScope, currDynScope, temp); return value1 == UndefinedValue.UNDEFINED ? getJumpTarget().getTargetPC() : ipc; }
public static BUndefInstr decode(IRReaderDecoder d) { return new BUndefInstr(d.decodeLabel(), d.decodeOperand()); }
case B_SWITCH: return BSwitchInstr.decode(this); case B_TRUE: return BTrueInstr.decode(this); case B_UNDEF: return BUndefInstr.decode(this); case BINDING_LOAD: return LoadLocalVarInstr.decode(this); case BINDING_STORE: return StoreLocalVarInstr.decode(this);
@Override public Instr cloneForBlockCloning(InlinerInfo ii) { return new BUndefInstr(getArg1().cloneForInlining(ii), getJumpTarget()); }
@Override public int interpretAndGetNewIPC(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, int ipc) { Object value1 = getArg1().retrieve(context, self, currDynScope, temp); return value1 == UndefinedValue.UNDEFINED ? getJumpTarget().getTargetPC() : ipc; }
public static BranchInstr create(Operand v1, Operand v2, Label jmpTarget) { if (v2 instanceof BooleanLiteral) { return ((BooleanLiteral) v2).isTrue() ? new BTrueInstr(v1, jmpTarget) : new BFalseInstr(v1, jmpTarget); } if (v2 instanceof Nil) return new BNilInstr(v1, jmpTarget); if (v2 == UndefinedValue.UNDEFINED) return new BUndefInstr(v1, jmpTarget); return new BEQInstr(v1, v2, jmpTarget); }
@Override public Instr clone(CloneInfo ii) { return new BUndefInstr(ii.getRenamedLabel(getJumpTarget()), getArg1().cloneForInlining(ii)); }
@Override public int interpretAndGetNewIPC(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, int ipc) { Object value1 = getArg1().retrieve(context, self, currDynScope, temp); return value1 == UndefinedValue.UNDEFINED ? getJumpTarget().getTargetPC() : ipc; }
public static BranchInstr create(Operand v1, Operand v2, Label jmpTarget) { if (v2 instanceof BooleanLiteral) { return ((BooleanLiteral) v2).isTrue() ? new BTrueInstr(v1, jmpTarget) : new BFalseInstr(v1, jmpTarget); } if (v2 instanceof Nil) return new BNilInstr(v1, jmpTarget); if (v2 == UndefinedValue.UNDEFINED) return new BUndefInstr(v1, jmpTarget); return new BEQInstr(v1, v2, jmpTarget); }
@Override public Instr cloneForInlinedScope(InlinerInfo ii) { return new BUndefInstr(getArg1().cloneForInlining(ii), ii.getRenamedLabel(getJumpTarget())); }
@Override public void BUndefInstr(BUndefInstr bundefinstr) { visit(bundefinstr.getArg1()); jvm.method().pushUndefined(); jvm.method().adapter.if_acmpeq(getJVMLabel(bundefinstr.getJumpTarget())); }
return new JumpInstr(jmpTarget); } else { return new BUndefInstr(jmpTarget, v1);
@Override public Instr cloneForInlinedScope(InlinerInfo ii) { return new BUndefInstr(getArg1().cloneForInlining(ii), ii.getRenamedLabel(getJumpTarget())); }
@Override public void BUndefInstr(BUndefInstr bundefinstr) { visit(bundefinstr.getArg1()); jvmMethod().pushUndefined(); jvmAdapter().if_acmpeq(getJVMLabel(bundefinstr.getJumpTarget())); }
return new JumpInstr(jmpTarget); } else { return new BUndefInstr(jmpTarget, v1);
@Override public Instr clone(CloneInfo ii) { return new BUndefInstr(ii.getRenamedLabel(getJumpTarget()), getArg1().cloneForInlining(ii)); }