private void debugPatternMatch(SleighDebugLogger debug, ParserWalker walker, boolean match) {
		if (debug == null) {
			return;
		}
		debug.append("byte pattern: ");
		if (alwaysTrue()) {
			debug.append("always-Matched\n");
		}
		else if (alwaysFalse()) {
			debug.append("always-Failed\n");
		}
		else {
			MemBuffer memBuf = walker.getParserContext().getMemBuffer();
			int offset = walker.getOffset(-1) + maskvalue.offset;
			int byteCnt = maskvalue.maskvec.length * 4;
			byte[] bytes = new byte[byteCnt];
			memBuf.getBytes(bytes, offset);

			if (match) {
				debug.addInstructionPattern(offset, maskvalue);
			}

			if (debug.isVerboseEnabled()) {
				debug.append("mask=");
				debug.append(maskvalue.maskvec, -1, 0);
				debug.append("\n");
				int endoffset = offset + bytes.length - 1;
				String leader = "bytes[" + offset + "-" + endoffset + "]=";
				debug.append(StringUtilities.pad(leader, ' ', 19));
				debug.append(bytes, -1, 0);
				debug.append("\n");
				debug.append("       match-value=");
				debug.append(maskvalue.valvec, -1, 0);
				debug.append(" " + (match ? "Matched" : "Failed") + "\n");
			}
		}
	}
Matches against the actual instruction bit stream
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/pattern/InstructionPattern.java