@Override
			public boolean evaluateContext(VarnodeContext context, Instruction instr) {
				String loc = instr.getMinAddress().toString();
				Varnode registerVarnode;
				Long constVal;
				boolean isBad = false;

				switch(loc) {
				case "00001010":
					// gp should be 0x14 + t9 offset space
					registerVarnode = regValue(context,"gp");
					assertTrue("symbolic value", context.isSymbol(registerVarnode));
					assertEquals("(t9, 0x13b334, 4)", registerVarnode.toString());
					// S3 should be S3 at entry
					registerVarnode = regValue(context,"s3");
					assertTrue("register s3", context.isRegister(registerVarnode));
					assertEquals("s3", context.getRegister(registerVarnode).getName());
					break;
				case "0000102c":
					// s1 restored from space 0x10(s0) space
					registerVarnode = regValue(context,"s1");
					assertTrue("constant value", registerVarnode.isConstant());
					assertEquals("(const, 0xa0b0c0d, 4)", registerVarnode.toString());
					break;
				case "00001030":
					// s1 restored from space 0x10(a1) space
					registerVarnode = regValue(context,"s1");
					assertTrue("symbolic value", registerVarnode.isConstant());
					assertEquals("(const, 0x12344567, 4)", registerVarnode.toString());
					break;
				case "00001034":
					// s1 restored from space 0x10(sp) space
					registerVarnode = regValue(context,"s1");
					assertTrue("symbolic value", context.isSymbol(registerVarnode));
					assertEquals("(t9, 0x13b334, 4)", registerVarnode.toString());
					break;
				case "00001038":
					// s1 restored from space 0x10(s2) space
					registerVarnode = regValue(context,"s1");
					//assertTrue("Still s1", registerVarnode.isRegister());
					constVal = context.getConstant(registerVarnode, null);
					isBad = constVal == null;
					assertTrue("Can get constant value", isBad);
					break;
				case "00001040":
					// s1 restored from space 0x10(s2) space - stored a3
					registerVarnode = regValue(context,"s1");
					assertTrue("register s3", registerVarnode.isRegister());
					assertEquals("s3", context.getRegister(registerVarnode).getName());
					
					Address lastSetLocation = context.getLastSetLocation(context.getRegisterVarnode(context.getRegister("s2")), null);
					assertEquals("s2 last set", null, lastSetLocation);
					break;
				case "00001048":
					// s1 restored from space 0x10(s2) after s2 has been set again
					// it should no longer be s3 that was stored in another s2 relative space
					registerVarnode = regValue(context,"s1");
					//assertTrue("Still s1", registerVarnode.isRegister());
					constVal = context.getConstant(registerVarnode, null);
					isBad = constVal == null;
					assertTrue("Can get constant value", isBad);
					break;
				case "0000104c":
					// s1 restored from space 0x10(s2) after s2 has been set again
					// it should no longer be s3 that was stored in another s2 relative space
					registerVarnode = regValue(context,"s2");
					//assertTrue("Still s2", registerVarnode.isRegister());
					constVal = context.getConstant(registerVarnode, null);
					isBad = constVal == null;					
					assertTrue("Can get constant value", isBad);
					lastSetLocation = context.getLastSetLocation(context.getRegisterVarnode(context.getRegister("s2")), null);
					assertEquals("s2 last set", 0x104cL, lastSetLocation.getOffset());
					break;
				case "00001054":
					// s1 restored from space 0x10(s2) after s2 has been set again
					// it should no longer be s3 that was stored in another s2 relative space
					registerVarnode = regValue(context,"s1");
					//assertTrue("Still s1", registerVarnode.isRegister());
					//assertEquals(context.getRegister(registerVarnode).getName(),"s1");
					constVal = context.getConstant(registerVarnode, null);
					isBad = constVal == null;
					assertTrue("Can get constant value", isBad);
					break;
				}
				return super.evaluateContext(context, instr);
			}
quick and dirty test of the ProgramContextImpl just to see
if the values are being set for specified address range.
The ProgramContextPlugin will be a more complete test
program, with a gui interface to specify the values and
select/highlight an address range.
Ghidra/Features/Base/src/test/java/ghidra/program/util/ConstantPropogationReferenceTest.java