@Override
	public boolean isEquivalent(InjectPayload obj) {
		if (getClass() != obj.getClass()) {
			return false;
		}
		InjectPayloadSleigh op2 = (InjectPayloadSleigh) obj;
		if (!name.equals(op2.name)) {
			return false;
		}
		if (inputlist.length != op2.inputlist.length) {
			return false;
		}
		for (int i = 0; i < inputlist.length; ++i) {
			if (!inputlist[i].isEquivalent(op2.inputlist[i])) {
				return false;
			}
		}
		if (output.length != op2.output.length) {
			return false;
		}
		for (int i = 0; i < output.length; ++i) {
			if (!output[i].isEquivalent(op2.output[i])) {
				return false;
			}
		}
		if (incidentalCopy != op2.incidentalCopy) {
			return false;
		}
		// Cannot compare isfallthru as it is a product of the p-code templates
//		if (isfallthru != op2.isfallthru) {
//			return false;
//		}
		if (paramShift != op2.paramShift) {
			return false;
		}
		if (type != op2.type || subType != op2.subType) {
			return false;
		}
		// We are NOT checking parseString and pcodeTemplate
		return true;
	}
Set-up operands in the parser state so that they pick up storage locations from InjectContext
@param con is the InjectContext containing storage locations
@param walker is the sleigh parser state object
@throws UnknownInstructionException if there are too many parameters for the parser
@throws NotFoundException for expected aspects of the context that are not present
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/InjectPayloadSleigh.java