Move the creation of gsharedvt wrappers/trampolines to a new helper function mini_get_gsharedvt_wrapper (), and use that everywhere. Add caching to avoid running out of gsharedvt arg trampolines.