requestRegister(ECX, cnt);
L1AHelper.requestRegister(eContext, ECX, cnt);
	public final void visit_lshr() {		final IntItem cnt = vstack.popInt();		final LongItem val = vstack.popLong();		final X86RegisterPool pool = eContext.getPool();		// Get cnt into ECX		if (!cnt.uses(ECX)) {			val.spillIfUsing(eContext, ECX);			requestRegister(ECX, cnt);			cnt.loadTo(eContext, ECX);		}		// Load val		val.load(eContext);		final Register lsb = val.getLsbRegister();		final Register msb = val.getMsbRegister();		// Calculate		os.writeAND(ECX, 63);		os.writeCMP_Const(ECX, 32);		final Label gt32Label = new Label(curInstrLabel + "gt32");		final Label endLabel = new Label(curInstrLabel + "end");		os.writeJCC(gt32Label, X86Constants.JAE); // JAE		/** ECX < 32 */		os.writeSHRD_CL(lsb, msb);		os.writeSAR_CL(msb);		os.writeJMP(endLabel);		/** ECX >= 32 */		os.setObjectRef(gt32Label);		os.writeMOV(INTSIZE, lsb, msb);		os.writeSAR(msb, 31);		os.writeSAR_CL(lsb);		os.setObjectRef(endLabel);		// Push		final LongItem result = LongItem.createReg(lsb, msb);		pool.transferOwnerTo(lsb, result);		pool.transferOwnerTo(msb, result);		vstack.push(result);		// Release		cnt.release(eContext);	}