varreturnquad.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 72 行
JAVA
72 行
/*
* $Id: VarReturnQuad.java,v 1.3 2004/02/10 20:40:25 msiddalingaiah Exp $
*
* mailto:madhu@madhu.com
*/
package org.jnode.vm.compiler.ir.quad;
import org.jnode.util.BootableHashMap;
import org.jnode.vm.compiler.ir.CodeGenerator;
import org.jnode.vm.compiler.ir.IRBasicBlock;
import org.jnode.vm.compiler.ir.Operand;
import org.jnode.vm.compiler.ir.Variable;
/**
* @author Madhu Siddalingaiah
*
*/
public class VarReturnQuad extends Quad {
private Operand operand;
private Operand refs[];
/**
* @param address
*/
public VarReturnQuad(int address, IRBasicBlock block, int varIndex) {
super(address, block);
this.operand = getOperand(varIndex);
refs = new Operand[] { operand };
}
/**
* @see org.jnode.vm.compiler.ir.quad.Quad#getDefinedOp()
*/
public Operand getDefinedOp() {
return null;
}
/**
* @see org.jnode.vm.compiler.ir.quad.Quad#getReferencedOps()
*/
public Operand[] getReferencedOps() {
return refs;
}
public Operand getOperand() {
return operand;
}
public String toString() {
return getAddress() + ": return " + operand;
}
/* (non-Javadoc)
* @see org.jnode.vm.compiler.ir.Quad#doPass2(org.jnode.util.BootableHashMap)
*/
public void doPass2(BootableHashMap liveVariables) {
operand = operand.simplify();
if (operand instanceof Variable) {
Variable v = (Variable) operand;
v.setLastUseAddress(this.getAddress());
liveVariables.put(v, v);
}
}
/* (non-Javadoc)
* @see org.jnode.vm.compiler.ir.Quad#generateCode(org.jnode.vm.compiler.ir.CodeGenerator)
*/
public void generateCode(CodeGenerator cg) {
cg.generateCodeFor(this);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?