+
+ if (arg_marshal == GSHAREDVT_ARG_BYREF_TO_BYVAL && dst_info->byte_arg_size) {
+ /* Have to load less than 4 bytes */
+ // FIXME: Signed types
+ switch (dst_info->byte_arg_size) {
+ case 1:
+ arg_marshal = GSHAREDVT_ARG_BYREF_TO_BYVAL_U1;
+ break;
+ case 2:
+ arg_marshal = GSHAREDVT_ARG_BYREF_TO_BYVAL_U2;
+ break;
+ default:
+ arg_marshal = GSHAREDVT_ARG_BYREF_TO_BYVAL_U4;
+ break;
+ }
+ }
+