public void emitVariable(Variable variable) { // System.out.println("variable: " + variable); int index = getJVMLocalVarIndex(variable); // System.out.println("index: " + index); jvm.method().loadLocal(index); }
public void emitVariable(Variable variable) { // System.out.println("variable: " + variable); int index = getJVMLocalVarIndex(variable); // System.out.println("index: " + index); jvm.method().loadLocal(index); }
private void jvmStoreLocal(String specialVar) { jvmMethod().storeLocal(getJVMLocalVarIndex(specialVar)); }
private void jvmLoadLocal(Variable variable) { if (variable instanceof TemporaryLocalVariable) { switch (((TemporaryLocalVariable)variable).getType()) { case FLOAT: jvmAdapter().dload(getJVMLocalVarIndex(variable)); break; case FIXNUM: jvmAdapter().lload(getJVMLocalVarIndex(variable)); break; case BOOLEAN: jvmAdapter().iload(getJVMLocalVarIndex(variable)); break; default: jvmMethod().loadLocal(getJVMLocalVarIndex(variable)); break; } } else { jvmMethod().loadLocal(getJVMLocalVarIndex(variable)); } }
private void jvmLoadLocal(Variable variable) { if (variable instanceof TemporaryLocalVariable) { switch (((TemporaryLocalVariable)variable).getType()) { case FLOAT: jvmAdapter().dload(getJVMLocalVarIndex(variable)); break; case FIXNUM: jvmAdapter().lload(getJVMLocalVarIndex(variable)); break; case BOOLEAN: jvmAdapter().iload(getJVMLocalVarIndex(variable)); break; default: jvmMethod().loadLocal(getJVMLocalVarIndex(variable)); break; } } else { jvmMethod().loadLocal(getJVMLocalVarIndex(variable)); } }
private void jvmLoadLocal(String specialVar) { jvm.method().loadLocal(getJVMLocalVarIndex(specialVar)); }
private void jvmStoreLocal(Variable variable) { jvm.method().storeLocal(getJVMLocalVarIndex(variable)); }
private void jvmStoreLocal(String specialVar) { jvmMethod().storeLocal(getJVMLocalVarIndex(specialVar)); }
private void jvmStoreLocal(Variable variable) { jvm.method().storeLocal(getJVMLocalVarIndex(variable)); }
private void jvmStoreLocal(String specialVar) { jvm.method().storeLocal(getJVMLocalVarIndex(specialVar)); }
private void jvmLoadLocal(String specialVar) { jvmMethod().loadLocal(getJVMLocalVarIndex(specialVar)); }
private void jvmStoreLocal(String specialVar) { jvm.method().storeLocal(getJVMLocalVarIndex(specialVar)); }
private void jvmLoadLocal(Variable variable) { jvm.method().loadLocal(getJVMLocalVarIndex(variable)); }
private void jvmLoadLocal(String specialVar) { jvm.method().loadLocal(getJVMLocalVarIndex(specialVar)); }
@Override public void CopyInstr(CopyInstr copyinstr) { int index = getJVMLocalVarIndex(copyinstr.getResult()); visit(copyinstr.getSource()); jvm.method().storeLocal(index); }
@Override public void CopyInstr(CopyInstr copyinstr) { int index = getJVMLocalVarIndex(copyinstr.getResult()); visit(copyinstr.getSource()); jvm.method().storeLocal(index); }
@Override public void ReceivePreReqdArgInstr(ReceivePreReqdArgInstr instr) { int index = getJVMLocalVarIndex(instr.getResult()); jvm.method().loadLocal(3 + instr.getArgIndex()); jvm.method().storeLocal(index); }
@Override public void ReceivePreReqdArgInstr(ReceivePreReqdArgInstr instr) { int index = getJVMLocalVarIndex(instr.getResult()); jvm.method().loadLocal(3 + instr.getArgIndex()); jvm.method().storeLocal(index); }
@Override public void AliasInstr(AliasInstr aliasInstr) { IRBytecodeAdapter m = jvm.method(); m.loadLocal(0); m.loadLocal(getJVMLocalVarIndex(aliasInstr.getReceiver())); m.adapter.ldc(((StringLiteral) aliasInstr.getNewName()).string); m.adapter.ldc(((StringLiteral) aliasInstr.getOldName()).string); m.invokeHelper("defineAlias", IRubyObject.class, ThreadContext.class, IRubyObject.class, Object.class, Object.class); m.adapter.pop(); }
@Override public void AliasInstr(AliasInstr aliasInstr) { IRBytecodeAdapter m = jvm.method(); m.loadLocal(0); m.loadLocal(getJVMLocalVarIndex(aliasInstr.getReceiver())); m.adapter.ldc(((StringLiteral) aliasInstr.getNewName()).string); m.adapter.ldc(((StringLiteral) aliasInstr.getOldName()).string); m.invokeHelper("defineAlias", IRubyObject.class, ThreadContext.class, IRubyObject.class, Object.class, Object.class); m.adapter.pop(); }