- // FIXME: VFP
- if (cinfo->ret.size == 4)
- info->ret_marshal = GSHAREDVT_RET_IREG;
- else
- info->ret_marshal = GSHAREDVT_RET_IREGS;
+ if (mono_arm_is_hard_float ()) {
+ if (cinfo->ret.size == 4)
+ info->ret_marshal = GSHAREDVT_RET_VFP_R4;
+ else
+ info->ret_marshal = GSHAREDVT_RET_VFP_R8;
+ } else {
+ if (cinfo->ret.size == 4)
+ info->ret_marshal = GSHAREDVT_RET_IREG;
+ else
+ info->ret_marshal = GSHAREDVT_RET_IREGS;
+ }