IntItem idx = vstack.popInt(); RefItem ref = vstack.popRef();  idx.loadIf(eContext, ~Item.Kind.CONSTANT); ref.load(eContext); final Register r = ref.getRegister(); checkBounds(ref, idx); if (idx.getKind() == Item.Kind.CONSTANT) { final int offset = idx.getValue(); os.writeMOV(BYTESIZE, r, r, offset + VmArray.DATA_OFFSET * 4); } else { final Register i = idx.getRegister(); os.writeMOV(BYTESIZE, r, r, i, 1, VmArray.DATA_OFFSET * 4); idx.release(eContext); } os.writeMOVSX(r, r, BYTESIZE);  final IntItem result = IntItem.createReg(r); eContext.getPool().transferOwnerTo(r, result); vstack.push(result);
waload(JvmType.BYTE);
	public final void visit_baload() {		IntItem idx = vstack.popInt();		RefItem ref = vstack.popRef();		idx.loadIf(eContext, ~Item.Kind.CONSTANT);		ref.load(eContext);		final Register r = ref.getRegister();		checkBounds(ref, idx);		if (idx.getKind() == Item.Kind.CONSTANT) {			final int offset = idx.getValue();			os.writeMOV(BYTESIZE, r, r, offset + VmArray.DATA_OFFSET * 4);		} else {			final Register i = idx.getRegister();			os.writeMOV(BYTESIZE, r, r, i, 1, VmArray.DATA_OFFSET * 4);			idx.release(eContext);		}		os.writeMOVSX(r, r, BYTESIZE);		final IntItem result = IntItem.createReg(r);		eContext.getPool().transferOwnerTo(r, result);		vstack.push(result);	}