@Override public Instr cloneForBlockCloning(InlinerInfo ii) { return new ReceiveRestArgInstr(ii.getRenamedVariable(result), numUsedArgs, argIndex); }
@Override public String[] toStringNonOperandArgs() { return new String[] { "index: " + getArgIndex(), "req: " + required }; }
@Override public String toString() { return (isDead() ? "[DEAD]" : "") + (hasUnusedResult() ? "[DEAD-RESULT]" : "") + getResult() + " = " + getOperation() + "(" + numUsedArgs + ", " + argIndex + ")"; }
@Override public void ReceiveRestArgInstr(ReceiveRestArgInstr instr) { jvmMethod().loadContext(); jvmMethod().loadArgs(); jvmAdapter().pushInt(instr.required); jvmAdapter().pushInt(instr.getArgIndex()); jvmAdapter().ldc(jvm.methodData().scope.receivesKeywordArgs()); jvmMethod().invokeIRHelper("receiveRestArg", sig(IRubyObject.class, ThreadContext.class, Object[].class, int.class, int.class, boolean.class)); jvmStoreLocal(instr.getResult()); }
@Override public void addInstr(Instr i) { // Accumulate block arguments if (i instanceof ReceiveRestArgInstr) blockArgs.add(new Splat(((ReceiveRestArgInstr)i).getResult())); else if (i instanceof ReceiveArgBase) blockArgs.add(((ReceiveArgBase) i).getResult()); super.addInstr(i); }
break; case RECV_REST_ARG: result = ((ReceiveRestArgInstr)instr).receiveRestArg(context.runtime, args, kwArgHashCount); break; case RECV_KW_ARG:
case RECV_POST_REQD_ARG: return ReceivePostReqdArgInstr.decode(this); case RECV_PRE_REQD_ARG: return ReceivePreReqdArgInstr.decode(this); case RECV_REST_ARG: return ReceiveRestArgInstr.decode(this); case RECV_SELF: return ReceiveSelfInstr.decode(this); case RESCUE_EQQ: return RescueEQQInstr.decode(this);
@Override public void ReceiveRestArgInstr(ReceiveRestArgInstr instr) { jvmMethod().loadContext(); jvmMethod().loadArgs(); jvmAdapter().pushInt(instr.required); jvmAdapter().pushInt(instr.getArgIndex()); jvmAdapter().ldc(jvm.methodData().scope.receivesKeywordArgs()); jvmMethod().invokeIRHelper("receiveRestArg", sig(IRubyObject.class, ThreadContext.class, Object[].class, int.class, int.class, boolean.class)); jvmStoreLocal(instr.getResult()); }
@Override public void addInstr(Instr i) { // Accumulate block arguments if (i instanceof ReceiveRestArgInstr) blockArgs.add(new Splat(((ReceiveRestArgInstr)i).getResult())); else if (i instanceof ReceiveArgBase) blockArgs.add(((ReceiveArgBase) i).getResult()); super.addInstr(i); }
break; case RECV_REST_ARG: result = ((ReceiveRestArgInstr)instr).receiveRestArg(context.runtime, args, kwArgHashCount); break; case RECV_KW_ARG:
case RECV_POST_REQD_ARG: return ReceivePostReqdArgInstr.decode(this); case RECV_PRE_REQD_ARG: return ReceivePreReqdArgInstr.decode(this); case RECV_REST_ARG: return ReceiveRestArgInstr.decode(this); case RECV_SELF: return ReceiveSelfInstr.decode(this); case RESCUE_EQQ: return RescueEQQInstr.decode(this);
@Override public Instr cloneForBlockCloning(InlinerInfo ii) { return new ReceiveRestArgInstr(ii.getRenamedVariable(result), numUsedArgs, argIndex); }
@Override public String toString() { return (isDead() ? "[DEAD]" : "") + (hasUnusedResult() ? "[DEAD-RESULT]" : "") + getResult() + " = " + getOperation() + "(" + numUsedArgs + ", " + argIndex + ")"; }
@Override public String[] toStringNonOperandArgs() { return new String[] { "index: " + getArgIndex(), "req: " + required }; }
@Override public void addInstr(Instr i) { // Accumulate call arguments if (i instanceof ReceiveRestArgInstr) callArgs.add(new Splat(((ReceiveRestArgInstr)i).getResult())); else if (i instanceof ReceiveArgBase) callArgs.add(((ReceiveArgBase) i).getResult()); super.addInstr(i); }
public static ReceiveRestArgInstr decode(IRReaderDecoder d) { return new ReceiveRestArgInstr(d.decodeVariable(), d.decodeInt(), d.decodeInt()); }
@Override public void encode(IRWriterEncoder e) { super.encode(e); e.encode(required); e.encode(getArgIndex()); }
@Override public void addInstr(Instr i) { // Accumulate call arguments if (i instanceof ReceiveRestArgInstr) callArgs.add(new Splat(((ReceiveRestArgInstr)i).getResult())); else if (i instanceof ReceiveArgBase) callArgs.add(((ReceiveArgBase) i).getResult()); super.addInstr(i); }
public static ReceiveRestArgInstr decode(IRReaderDecoder d) { return new ReceiveRestArgInstr(d.decodeVariable(), d.decodeInt(), d.decodeInt()); }
@Override public void encode(IRWriterEncoder e) { super.encode(e); e.encode(required); e.encode(getArgIndex()); }