Stack: ..., value -> ...
18091810181118121813181418151816181718181819
} else if (type == Type.BYTE) { return new ISTORE(index); } 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); }
955956957958959960961962963964965
case BOOLEAN: 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);
18071808180918101811181218131814181518161817
848849850851852853854
@SuppressWarnings("unused") // Called using reflection private Instruction createInstructionFstore(Element inst) throws IllegalXMLVMException { int idx= Integer.parseInt(inst.getAttributeValue("index")); return new FSTORE(idx); }
417418419420421422423424425426427
/* 663 */ else if (type.equals(Float.TYPE.getName())) /* */ { /* 665 */ int x = cp.addClass("java.lang.Float"); /* 666 */ int constrIndex = cp.addMethodref("java.lang.Float", "<init>", "(F)V"); /* */ /* 668 */ il.append(new FSTORE(4)); /* 669 */ il.append(new NEW(x)); /* 670 */ il.append(new ASTORE(5)); /* 671 */ il.append(new ALOAD(5)); /* 672 */ il.append(new FLOAD(4)); /* 673 */ il.append(new INVOKESPECIAL(constrIndex));