protected DBTraceCodePrototypeEntry doRecordPrototype(InstructionPrototype prototype,
			DBTraceGuestLanguage guest, MemBuffer memBuffer, ProcessorContextView context) {
		DBTraceCodePrototypeEntry protoEnt = protoStore.create();
		byte[] bytes = new byte[prototype.getLength()];
		if (memBuffer.getBytes(bytes, 0) != bytes.length) {
			throw new AssertionError("Insufficient bytes for prototype");
		}
		byte[] ctx;
		Register baseCtxReg = context.getBaseContextRegister();
		if (baseCtxReg == null) {
			ctx = null;
		}
		else {
			RegisterValue value = context.getRegisterValue(baseCtxReg);
			ctx = value == null ? null : valueBytes(value);
		}
		protoEnt.set(guest, bytes, ctx, memBuffer.getAddress(), prototype.isInDelaySlot());
		return protoEnt;
	}
A prototype entry

<p>
Version history:
<ul>
<li>1: Change {@link #address} to 10-byte fixed encoding</li>
<li>0: Initial version and previous unversioned implementation</li>
</ul>
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/listing/DBTraceCodeManager.java