@Override public Operand cloneForInlining(InlinerInfo ii) { return hasKnownValue() ? this : new SValue(array.cloneForInlining(ii)); }
public void SValue(SValue svalue) { visit(svalue.getArray()); } public void Symbol(Symbol symbol) { print(symbol.getBytes()); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.elts.length == 1) ? a.elts[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
case STANDARD_ERROR: return new StandardError(); case STRING_LITERAL: return StringLiteral.decode(this); case SVALUE: return SValue.decode(this); case SYMBOL: return Symbol.decode(this); case SYMBOL_PROC: return SymbolProc.decode(this);
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.elts.length == 1) ? a.elts[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
case STANDARD_ERROR: return new StandardError(); case STRING_LITERAL: return StringLiteral.decode(this); case SVALUE: return SValue.decode(this); case SYMBOL: return Symbol.decode(this); case SYMBOL_PROC: return SymbolProc.decode(this);
@Override public Operand cloneForInlining(CloneInfo ii) { return hasKnownValue() ? this : new SValue(array.cloneForInlining(ii)); }
public static SValue decode(IRReaderDecoder d) { return new SValue(d.decodeOperand()); }
public void SValue(SValue svalue) { visit(svalue.getArray()); } public void Symbol(Symbol symbol) { print(symbol.getBytes()); }
@Override public Operand cloneForInlining(CloneInfo ii) { return hasKnownValue() ? this : new SValue(array.cloneForInlining(ii)); }
public static SValue decode(IRReaderDecoder d) { return new SValue(d.decodeOperand()); }
@Override public void encode(IRWriterEncoder e) { super.encode(e); e.encode(getArray()); }
@Override public Operand cloneForInlining(InlinerInfo ii) { return hasKnownValue() ? this : new SValue(array.cloneForInlining(ii)); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.getElts().length == 1) ? a.getElts()[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
@Override public void encode(IRWriterEncoder e) { super.encode(e); e.encode(getArray()); }
public Operand buildSValue(SValueNode node, IRScope s) { // SSS FIXME: Required? Verify with Tom/Charlie return copyAndReturnValue(s, new SValue(build(node.getValue(), s))); }
@Override public void SValue(SValue svalue) { visit(svalue.getArray()); jvmAdapter().dup(); jvmAdapter().instance_of(p(RubyArray.class)); org.objectweb.asm.Label after = new org.objectweb.asm.Label(); jvmAdapter().iftrue(after); jvmAdapter().pop(); jvmMethod().pushNil(); jvmAdapter().label(after); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.getElts().length == 1) ? a.getElts()[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
@Override public void SValue(SValue svalue) { visit(svalue.getArray()); jvmAdapter().dup(); jvmAdapter().instance_of(p(RubyArray.class)); org.objectweb.asm.Label after = new org.objectweb.asm.Label(); jvmAdapter().iftrue(after); jvmAdapter().pop(); jvmMethod().pushNil(); jvmAdapter().label(after); }
public Operand buildSValue(SValueNode node) { // SSS FIXME: Required? Verify with Tom/Charlie return copyAndReturnValue(new SValue(build(node.getValue()))); }