FPUHelper.fxch(os, stack.fpuStack, this);
	final void loadTo(EmitterContext ec, Register reg) {		assertCondition(reg != null, "Reg != null");		final AbstractX86Stream os = ec.getStream();		final X86RegisterPool pool = ec.getPool();		final VirtualStack stack = ec.getVStack();		assertCondition(!pool.isFree(reg), "reg not free");		switch (kind) {		case Kind.REGISTER:			if (this.reg != reg) {				os.writeMOV(INTSIZE, reg, this.reg);				release(ec);			}			break;		case Kind.LOCAL:			os.writeMOV(INTSIZE, reg, FP, getOffsetToFP());			break;		case Kind.CONSTANT:			loadToConstant(ec, os, reg);			break;		case Kind.FPUSTACK:			// Make sure this item is on top of the FPU stack			stack.fpuStack.pop(this);			// Convert & move to new space on normal stack			os.writeLEA(SP, SP, 4);			popFromFPU(os, SP, 0);			os.writePOP(reg);			break;		case Kind.STACK:			//TODO: make sure this is on top os stack			if (VirtualStack.checkOperandStack) {				stack.operandStack.pop(this);			}			os.writePOP(reg);			break;		default:			throw new IllegalArgumentException("Invalid item kind");		}		kind = Kind.REGISTER;		this.reg = reg;	}