public void visit_dup_x2(final Instruction inst) {
		// Top value on stack must be category 1.
		final Set top1 = atDepth(0);

		checkCategory(top1, 1);

		final Set top2 = atDepth(1);

		final int category = checkCategory(top2);

		if (category == 1) {
			final Set top3 = atDepth(2);
			checkCategory(top3, 1);

			// Form 1: Dup top value and put three down

			currStack.add(currStack.size() - 3, new HashSet(top1));

		} else {
			// Form 2: Dup top value and put two down

			currStack.add(currStack.size() - 2, new HashSet(top1));
		}
	}