private void jvmStoreLocal(Runnable source, Variable variable) { if (variable instanceof LocalVariable) { jvmLoadLocal(DYNAMIC_SCOPE); source.run(); genSetValue((LocalVariable) variable); } else if (variable instanceof TemporaryLocalVariable) { source.run(); switch (((TemporaryLocalVariable)variable).getType()) { case FLOAT: jvmAdapter().dstore(getJVMLocalVarIndex(variable)); break; case FIXNUM: jvmAdapter().lstore(getJVMLocalVarIndex(variable)); break; case BOOLEAN: jvmAdapter().istore(getJVMLocalVarIndex(variable)); break; default: jvmMethod().storeLocal(getJVMLocalVarIndex(variable)); break; } } else { source.run(); jvmMethod().storeLocal(getJVMLocalVarIndex(variable)); } }
private void jvmStoreLocal(Runnable source, Variable variable) { if (variable instanceof LocalVariable) { jvmLoadLocal(DYNAMIC_SCOPE); source.run(); genSetValue((LocalVariable) variable); } else if (variable instanceof TemporaryLocalVariable) { source.run(); switch (((TemporaryLocalVariable)variable).getType()) { case FLOAT: jvmAdapter().dstore(getJVMLocalVarIndex(variable)); break; case FIXNUM: jvmAdapter().lstore(getJVMLocalVarIndex(variable)); break; case BOOLEAN: jvmAdapter().istore(getJVMLocalVarIndex(variable)); break; default: jvmMethod().storeLocal(getJVMLocalVarIndex(variable)); break; } } else { source.run(); jvmMethod().storeLocal(getJVMLocalVarIndex(variable)); } }
private void jvmStoreLocal(Variable variable) { if (variable instanceof LocalVariable) { jvmLoadLocal(DYNAMIC_SCOPE); jvmAdapter().swap(); genSetValue((LocalVariable) variable); } else if (variable instanceof TemporaryLocalVariable) { switch (((TemporaryLocalVariable)variable).getType()) { case FLOAT: jvmAdapter().dstore(getJVMLocalVarIndex(variable)); break; case FIXNUM: jvmAdapter().lstore(getJVMLocalVarIndex(variable)); break; case BOOLEAN: jvmAdapter().istore(getJVMLocalVarIndex(variable)); break; default: jvmMethod().storeLocal(getJVMLocalVarIndex(variable)); break; } } else { jvmMethod().storeLocal(getJVMLocalVarIndex(variable)); } }
private void jvmStoreLocal(Variable variable) { if (variable instanceof LocalVariable) { jvmLoadLocal(DYNAMIC_SCOPE); jvmAdapter().swap(); genSetValue((LocalVariable) variable); } else if (variable instanceof TemporaryLocalVariable) { switch (((TemporaryLocalVariable)variable).getType()) { case FLOAT: jvmAdapter().dstore(getJVMLocalVarIndex(variable)); break; case FIXNUM: jvmAdapter().lstore(getJVMLocalVarIndex(variable)); break; case BOOLEAN: jvmAdapter().istore(getJVMLocalVarIndex(variable)); break; default: jvmMethod().storeLocal(getJVMLocalVarIndex(variable)); break; } } else { jvmMethod().storeLocal(getJVMLocalVarIndex(variable)); } }