IntItem shift = vstack.popInt(); if (shift.getKind() != Item.Kind.CONSTANT) { requestRegister(ECX, shift); shift.loadTo(eContext, ECX); } IntItem value = vstack.popInt();  value.load(eContext);  Register v = value.getRegister();  if (shift.getKind() == Item.Kind.CONSTANT) { int offset = shift.getValue(); os.writeSAR(v, offset); } else { os.writeSAR_CL(v); } shift.release(eContext); vstack.push(value);
ishift(X86Operation.SAR);
	public final void visit_ishr() {		IntItem shift = vstack.popInt();		if (shift.getKind() != Item.Kind.CONSTANT) {			requestRegister(ECX, shift);			shift.loadTo(eContext, ECX);		}		IntItem value = vstack.popInt();		value.load(eContext);		Register v = value.getRegister();		if (shift.getKind() == Item.Kind.CONSTANT) {			int offset = shift.getValue();			os.writeSAR(v, offset);		} else {			os.writeSAR_CL(v);		}		shift.release(eContext);		vstack.push(value);	}