@@ -163,6 +163,7 @@ get_arg_slots (ArgInfo *ainfo, int **out_slots, gboolean is_source_argument)
163
163
break ;
164
164
case ArgInDoubleSSEReg :
165
165
case ArgInFloatSSEReg :
166
+ case ArgSIMDInSSEReg :
166
167
nsrc = 1 ;
167
168
src = g_malloc (nsrc * sizeof (int ));
168
169
src [0 ] = map_freg (sreg );
@@ -224,20 +225,21 @@ static void
224
225
handle_marshal_when_dst_gsharedvt (ArgInfo * src_info , int * arg_marshal )
225
226
{
226
227
switch (src_info -> storage ) {
227
- case ArgInIReg :
228
- case ArgInDoubleSSEReg :
229
- case ArgInFloatSSEReg :
230
- case ArgValuetypeInReg :
231
- case ArgOnStack :
232
- * arg_marshal = GSHAREDVT_ARG_BYVAL_TO_BYREF ;
233
- break ;
234
- case ArgValuetypeAddrInIReg :
235
- case ArgValuetypeAddrOnStack :
236
- * arg_marshal = GSHAREDVT_ARG_NONE ;
237
- break ;
238
- default :
239
- NOT_IMPLEMENTED ; // See above
240
- break ;
228
+ case ArgInIReg :
229
+ case ArgInDoubleSSEReg :
230
+ case ArgInFloatSSEReg :
231
+ case ArgSIMDInSSEReg :
232
+ case ArgValuetypeInReg :
233
+ case ArgOnStack :
234
+ * arg_marshal = GSHAREDVT_ARG_BYVAL_TO_BYREF ;
235
+ break ;
236
+ case ArgValuetypeAddrInIReg :
237
+ case ArgValuetypeAddrOnStack :
238
+ * arg_marshal = GSHAREDVT_ARG_NONE ;
239
+ break ;
240
+ default :
241
+ NOT_IMPLEMENTED ; // See above
242
+ break ;
241
243
}
242
244
}
243
245
@@ -331,6 +333,7 @@ mono_arch_get_gsharedvt_call_info (MonoMemoryManager *mem_manager, gpointer addr
331
333
case ArgInIReg :
332
334
case ArgInDoubleSSEReg :
333
335
case ArgInFloatSSEReg :
336
+ case ArgSIMDInSSEReg :
334
337
case ArgValuetypeInReg :
335
338
case ArgOnStack :
336
339
nsrc = get_arg_slots (src_info , & src , TRUE);
@@ -500,6 +503,9 @@ mono_arch_get_gsharedvt_call_info (MonoMemoryManager *mem_manager, gpointer addr
500
503
case ArgInFloatSSEReg :
501
504
info -> ret_marshal = GSHAREDVT_RET_R8 ;
502
505
break ;
506
+ case ArgSIMDInSSEReg :
507
+ info -> ret_marshal = GSHAREDVT_RET_SIMD ;
508
+ break ;
503
509
case ArgValuetypeAddrInIReg :
504
510
break ;
505
511
default :
0 commit comments