protected <T extends PatternExpression> MaskedLong getValue(T exp, Map<String, Long> vals,
			AssemblyResolvedPatterns cur) throws NeedsBackfillException {
		MaskedLong value = getRegistered(exp.getClass()).getValue(exp, vals, cur);
		DBG.println("Expression: " + value + " =: " + exp);
		return value;
	}
Attempt to fold a given expression (or sub-expression) into a single constant.

@param exp the (sub-)expression to fold
@param vals any defined symbols (usually {@code inst_start}, and {@code inst_next})
@return the masked solution
@throws NeedsBackfillException it may be folded, but a required symbol is missing
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/expr/RecursiveDescentSolver.java