public void visitMethodInsn(final int opcode, final String owner,
			final String name, final String desc) {
		checkStartCode();
		checkEndCode();
		checkOpcode(opcode, 5);
		checkMethodIdentifier(version, name, "name");
		checkInternalName(owner, "owner");
		checkMethodDesc(desc);
		if (opcode == Opcodes.INVOKEDYNAMIC
				&& owner != Opcodes.INVOKEDYNAMIC_OWNER) {
			throw new IllegalArgumentException(
					"INVOKEDYNAMIC cannot be used with another owner than INVOKEDYNAMIC_OWNER");
		}
		mv.visitMethodInsn(opcode, owner, name, desc);
	}