Stack: ..., value.word1, value.word2 -> ...
1811181218131814181518161817181818191820
} else if (type == Type.CHAR) { return new ISTORE(index); } else if (type == Type.FLOAT) { return new FSTORE(index); } else if (type == Type.DOUBLE) { return new DSTORE(index); } else { return new ASTORE(index); } }
169170171172173174175176177178179
// Store real into a local variable il.append(DUP2); local = methodGen.addLocalVariable("real_to_boolean_tmp", com.sun.org.apache.bcel.internal.generic.Type.DOUBLE, null, null); local.setStart(il.append(new DSTORE(local.getIndex()))); // Compare it to 0.0 il.append(DCONST_0); il.append(DCMPG); flowlist.add(il.append(new IFEQ(null)));
324325326327328329330
public Instruction LOAD(int slot) { return new DLOAD(slot); } public Instruction STORE(int slot) { return new DSTORE(slot); }
165166167168169170171172173174175
// Store real into a local variable il.append(DUP2); local = methodGen.addLocalVariable("real_to_boolean_tmp", com.sun.org.apache.bcel.internal.generic.Type.DOUBLE, il.getEnd(), null); il.append(new DSTORE(local.getIndex())); // Compare it to 0.0 il.append(DCONST_0); il.append(DCMPG); flowlist.add(il.append(new IFEQ(null)));
320321322323324325326
956957958959960961962963964965966
case CHAR: case BYTE: case SHORT: case INT: ilc.add(new ISTORE(index)); return; case FLOAT: ilc.add(new FSTORE(index)); return; case DOUBLE: ilc.add(new DSTORE(index)); return; case LONG: ilc.add(new LSTORE(index)); return; case ARRAY: case OBJECT: ilc.add(new ASTORE(index)); return; default: throw new IllegalArgumentException("Invalid type " + type); }