final IntItem idx = vstack.popInt(); final RefItem ref = vstack.popRef();  idx.loadIf(eContext, ~Item.Kind.CONSTANT); ref.load(eContext); final Register resultr = requestRegister(JvmType.INT);  final Register refr = ref.getRegister(); checkBounds(ref, idx); if (idx.isConstant()) { final int i = idx.getValue(); os.writeMOV(INTSIZE, resultr, refr, (i * 4) + arrayDataOffset); } else { final Register idxr = idx.getRegister(); os.writeMOV(INTSIZE, resultr, refr, idxr, 4, arrayDataOffset * 4); }   idx.release(eContext); ref.release(eContext);   final IntItem result = IntItem.createReg(resultr); eContext.getPool().transferOwnerTo(resultr, result); vstack.push(result);
waload(JvmType.INT);
	public final void visit_iaload() {		final IntItem idx = vstack.popInt();		final RefItem ref = vstack.popRef();		idx.loadIf(eContext, ~Item.Kind.CONSTANT);		ref.load(eContext);		final Register resultr = requestRegister(JvmType.INT);		final Register refr = ref.getRegister();		checkBounds(ref, idx);		if (idx.isConstant()) {			final int i = idx.getValue();			os.writeMOV(INTSIZE, resultr, refr, (i * 4) + arrayDataOffset);		} else {			final Register idxr = idx.getRegister();			os.writeMOV(INTSIZE, resultr, refr, idxr, 4, arrayDataOffset * 4);		}		// Release		idx.release(eContext);		ref.release(eContext);		// Push result		final IntItem result = IntItem.createReg(resultr);		eContext.getPool().transferOwnerTo(resultr, result);		vstack.push(result);	}