public StackLocalInfo dup(int count, int depth) {
			ConstValue[] newStack = new ConstValue[stack.length + count];
			ConstValue[] newLocals = (ConstValue[]) locals.clone();
			if (depth == 0)
				System.arraycopy(stack, 0, newStack, 0, stack.length);
			else {
				int pos = stack.length - count - depth;
				System.arraycopy(stack, 0, newStack, 0, pos);
				for (int i = 0; i < count; i++)
					newStack[pos++] = copy(stack[stack.length - count + i]);
				for (int i = 0; i < depth; i++)
					newStack[pos++] = copy(stack[stack.length - count - depth
							+ i]);
			}
			for (int i = 0; i < count; i++)
				newStack[stack.length + i] = copy(stack[stack.length - count
						+ i]);
			return new StackLocalInfo(newStack, newLocals, notifyQueue);
		}