@Override public Instr cloneForBlockCloning(InlinerInfo ii) { return new BNilInstr(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 == context.nil ? getJumpTarget().getTargetPC() : ipc; } }
public static BNilInstr decode(IRReaderDecoder d) { return new BNilInstr(d.decodeLabel(), d.decodeOperand()); }
case ATTR_ASSIGN: return AttrAssignInstr.decode(this); case B_FALSE: return BFalseInstr.decode(this); case B_NIL: return BNilInstr.decode(this); case B_SWITCH: return BSwitchInstr.decode(this); case B_TRUE: return BTrueInstr.decode(this);
@Override public int interpretAndGetNewIPC(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, int ipc) { Object value1 = getArg1().retrieve(context, self, currDynScope, temp); return value1 == context.nil ? getJumpTarget().getTargetPC() : ipc; } }
public static BNilInstr decode(IRReaderDecoder d) { return new BNilInstr(d.decodeLabel(), d.decodeOperand()); }
case ATTR_ASSIGN: return AttrAssignInstr.decode(this); case B_FALSE: return BFalseInstr.decode(this); case B_NIL: return BNilInstr.decode(this); case B_SWITCH: return BSwitchInstr.decode(this); case B_TRUE: return BTrueInstr.decode(this);
@Override public Instr cloneForBlockCloning(InlinerInfo ii) { return new BNilInstr(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 == context.nil ? 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 BNilInstr(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 == context.nil ? 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 BNilInstr(getArg1().cloneForInlining(ii), ii.getRenamedLabel(getJumpTarget())); }
@Override public void BNilInstr(BNilInstr bnilinstr) { visit(bnilinstr.getArg1()); jvmMethod().branchIfNil(getJVMLabel(bnilinstr.getJumpTarget())); }
return new JumpInstr(jmpTarget); } else { return new BNilInstr(jmpTarget, v1);
@Override public Instr clone(CloneInfo ii) { return new BNilInstr(ii.getRenamedLabel(getJumpTarget()), getArg1().cloneForInlining(ii)); }
@Override public void BNilInstr(BNilInstr bnilinstr) { visit(bnilinstr.getArg1()); jvmMethod().branchIfNil(getJVMLabel(bnilinstr.getJumpTarget())); }
return new JumpInstr(jmpTarget); } else { return new BNilInstr(jmpTarget, v1);
@Override public Instr cloneForInlinedScope(InlinerInfo ii) { return new BNilInstr(getArg1().cloneForInlining(ii), ii.getRenamedLabel(getJumpTarget())); }