public List<Variable> getDuffzeroParams(Program program) {
		if (duffzeroDestParam == null) {
			return List.of();
		}
		try {
			ProgramBasedDataTypeManager dtm = program.getDataTypeManager();
			DataType voidPtr = dtm.getPointer(VoidDataType.dataType);

			List<Variable> params = new ArrayList<>();

			params.add(new ParameterImpl("dest", Parameter.UNASSIGNED_ORDINAL, voidPtr,
				getStorageForReg(program, duffzeroDestParam, voidPtr.getLength()), true, program,
				SourceType.ANALYSIS));
			if (duffzeroZeroParam != null && duffzeroZeroParamType != null) {
				int regSize = duffzeroZeroParam.getMinimumByteSize();
				DataType dt = switch (duffzeroZeroParamType) {
					case FLOAT -> AbstractFloatDataType.getFloatDataType(regSize, dtm);
					case INT -> AbstractIntegerDataType.getUnsignedDataType(regSize, dtm);
				};
				params.add(new ParameterImpl("zeroValue", Parameter.UNASSIGNED_ORDINAL, dt,
					getStorageForReg(program, duffzeroZeroParam, regSize), true, program,
					SourceType.ANALYSIS));
			}

			return params;
		}
		catch (InvalidInputException e) {
			return List.of();
		}
	}
Immutable information about registers, alignment sizes, etc needed to allocate storage
for parameters during a function call.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GoRegisterInfo.java