@Override
	public MaskedLong getValue(OperandValue ov, Map<String, Long> vals,
			AssemblyResolvedPatterns cur) throws NeedsBackfillException {
		Constructor cons = ov.getConstructor();
		OperandSymbol sym = cons.getOperand(ov.getIndex());
		PatternExpression patexp = getDefiningExpression(sym);
		if (patexp == null) {
			return MaskedLong.ZERO;
		}
		int shamt = AssemblyTreeResolver.computeOffset(sym, cons);
		cur = cur == null ? null : cur.truncate(shamt);
		MaskedLong result = solver.getValue(patexp, vals, cur);
		return result;
	}
Obtains the "defining expression"

<p>
This is either the symbol's assigned defining expression, or the expression associated with
its defining symbol.

@return the defining expression, or null if neither is available
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/expr/OperandValueSolver.java