break; case LCMP:
	public void sawOpcode(int seen) {		// System.out.println(getPC() + " " + OPCODE_NAMES[seen] + " " + whichRegister + " " + registerLoadCount);		stack.mergeJumps(this);		switch (seen) {		case FCMPG:		case LCMP:		case DCMPG:		case DCMPL:		case FCMPL:		case IF_ACMPEQ:		case IF_ACMPNE:		case IF_ICMPNE:		case IF_ICMPEQ:		case IF_ICMPGT:		case IF_ICMPLE:		case IF_ICMPLT:		case IF_ICMPGE: {			OpcodeStack.Item item0 = stack.getStackItem(0);			OpcodeStack.Item item1 = stack.getStackItem(1);			if (item0.getSignature().equals("D")					|| item0.getSignature().equals("F"))				break;			if (item1.getSignature().equals("D")					|| item1.getSignature().equals("F"))				break;			FieldAnnotation field0 = item0.getField();			FieldAnnotation field1 = item1.getField();			int fr0 = item0.getFieldLoadedFromRegister();			int fr1 = item1.getFieldLoadedFromRegister();			if (field0 != null && field0.equals(field1) && fr0 != -1 && fr0 == fr1)				bugReporter.reportBug(new BugInstance(this,						"SA_FIELD_SELF_COMPARISON", NORMAL_PRIORITY)						.addClassAndMethod(this).add(field0)						.addSourceLine(this));			else if (registerLoadCount >= 2) {					bugReporter.reportBug(new BugInstance(this,							"SA_LOCAL_SELF_COMPARISON", NORMAL_PRIORITY)							.addClassAndMethod(this).add(									LocalVariableAnnotation											.getLocalVariableAnnotation(													getMethod(), whichRegister, getPC(),													getPC() - 1))							.addSourceLine(this));			}		}		}		stack.sawOpcode(this, seen);		if (isRegisterLoad() && seen != IINC) {			if (getRegisterOperand() == whichRegister) registerLoadCount++;			else {				whichRegister = getRegisterOperand();				registerLoadCount = 1;			}		} else {			whichRegister = -1;			registerLoadCount = 0;		}	}