protected void initializeState(EmulatorTestRunner testRunner, Program program)
			throws Exception {
		Address addr = testRunner.getTestGroup().functionEntryPtr;
		addr = PseudoDisassembler.getNormalizedDisassemblyAddress(program, addr);
		ProgramContext programContext = program.getProgramContext();
		for (Register reg : programContext.getRegisters()) {
			if (reg.isProcessorContext() || reg.isProgramCounter()) {
				continue;
			}
			RegisterValue value = programContext.getRegisterValue(reg, addr);
			if (value != null && value.hasValue()) {
				log(testRunner.getTestGroup(),
					"Initialized register " + reg.getName() + "=0x" +
						value.getUnsignedValue().toString(16) + " using context at " +
						addr.toString(true));
				testRunner.setRegister(reg.getName(), value.getUnsignedValue());
			}
		}
	}
Invoked for each program immediately prior to executing a test group.
By default this method will initialize the register states based upon the 
specific register values/context stored at the test group function entry point.
Such register values may have been established via the processor specification,
loader or analyzers.  A specific test may override or extend
this behavior for other registers as needed.
@param testRunner emulator group test runner/facilitator
@param program
@throws Exception if initialization criteria has not been satisfied
Ghidra/Features/Base/src/main/java/ghidra/test/processors/support/ProcessorEmulatorTestAdapter.java