private List<JvmLocal> genFreeLocals(String name, List<SimpleJitType> types,
			VarDesc desc) {
		JvmLocal[] result = new JvmLocal[types.size()];
		Iterable<SimpleJitType> it = language.isBigEndian()
				? types
				: () -> new ReverseListIterator<SimpleJitType>(types);
		long offset = desc.offset;
		int i = 0;
		for (SimpleJitType t : it) {
			VarDesc d = new VarDesc(desc.spaceId, offset, t.size(), t, language);
			result[i] = genFreeLocal(name + "_" + i, t, d);
			offset += t.size();
			i++;
		}
		return List.of(result);
	}
Reserve (allocate) several locals for the given p-code variable

@param name a prefix to name each JVM local
@param types a p-code type that describes what each local stores
@param desc the (whole) variable's descriptor
@return the allocated JVM locals from most to least significant
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/jit/analysis/JitAllocationModel.java