3:09:08hayleyIt would definitely work. We could probably remove one layer of indirection by having, say, INITIALIZE-RETURN-VALUES cache the vector of additional return values in a location.
3:18:52beachWhat I was thinking was that we could create an initial system that allows only as many return values as there are registers for it, and leave the named call as an unconditional jump that, if taken, will fail.
3:20:28beachWe could even use the registers that used to be callee-saves for more return values so that it would be even less likely that we would bump into that limitation.
3:22:17hayleyInteresting idea. I wouldn't know if all systems in SICL (or the subset you want to test with) only use five or fewer return values, but some profiling of the HIR evaluator could provide how many return values are actually used.