public VarnodeTpl addressOf(VarnodeTpl var, int size) {
		entry("addressOf", var, size);
		if (size == 0) { // If no size specified
			if (var.getSpace().getType() == ConstTpl.const_type.spaceid) {
				AddrSpace spc = var.getSpace().getSpace(); // Look to the
				// particular space
				size = spc.getAddrSize(); // to see if it has a standard
				// address size
			}
		}
		VarnodeTpl res;
		if ((var.getOffset().getType() == ConstTpl.const_type.real) &&
			(var.getSpace().getType() == ConstTpl.const_type.spaceid)) {
			AddrSpace spc = var.getSpace().getSpace();
			res = new VarnodeTpl(var.location, new ConstTpl(getConstantSpace()),
				new ConstTpl(ConstTpl.const_type.real, var.getOffset().getReal() >> spc.getScale()),
				new ConstTpl(ConstTpl.const_type.real, size));
		}
		else {
			res = new VarnodeTpl(var.location, new ConstTpl(getConstantSpace()), var.getOffset(),
				new ConstTpl(ConstTpl.const_type.real, size));
		}
		return res;
	}
Handle a sleigh 'macro' invocation, returning the resulting p-code op templates (OpTpl)

@param location is the file/line where the macro is invoked
@param sym MacroSymbol is the macro symbol
@param param is the parsed list of operand expressions
@return a list of p-code op templates
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/slgh_compile/PcodeCompile.java